@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;500;600&family=Noto+Serif+JP:wght@400;500;600&display=swap");

:root {
  --ink: #101b20;
  --ink-soft: #18272d;
  --paper: #f3efe6;
  --paper-deep: #e7dfd0;
  --gold: #b58a54;
  --gold-light: #d3b17f;
  --rust: #8d3d2c;
  --line: rgba(16, 27, 32, 0.18);
  --serif: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
  --sans: "Noto Sans JP", "Yu Gothic", sans-serif;
  --content: min(1180px, calc(100vw - 96px));
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: var(--sans);
  font-weight: 300;
  line-height: 1.9;
  letter-spacing: 0.055em;
  -webkit-font-smoothing: antialiased;
}
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
::selection { color: var(--paper); background: var(--rust); }
.skip-link {
  position: fixed; left: 16px; top: -100px; z-index: 1000;
  padding: 10px 16px; color: white; background: var(--ink);
}
.skip-link:focus { top: 16px; }
.site-header {
  position: fixed; inset: 0 0 auto; z-index: 100;
  height: 92px; padding: 0 48px;
  display: grid; grid-template-columns: 1fr auto 1fr; align-items: center;
  color: var(--paper); transition: background .3s, height .3s, box-shadow .3s;
}
.site-header.is-scrolled {
  height: 72px; background: rgba(16, 27, 32, .96);
  box-shadow: 0 1px 0 rgba(255,255,255,.08);
  backdrop-filter: blur(12px);
}
.wordmark { width: fit-content; display: flex; flex-direction: column; line-height: 1; }
.wordmark span { font: 500 26px/1.1 var(--serif); letter-spacing: .16em; }
.wordmark small { margin-top: 6px; font: 500 7px/1 var(--sans); letter-spacing: .35em; opacity: .75; }
.desktop-nav { display: flex; gap: 36px; font-size: 12px; }
.desktop-nav a { position: relative; }
.desktop-nav a::after {
  content: ""; position: absolute; left: 0; right: 100%; bottom: -8px;
  height: 1px; background: var(--gold-light); transition: right .25s;
}
.desktop-nav a:hover::after, .desktop-nav a:focus-visible::after { right: 0; }
.header-actions { justify-self: end; display: flex; align-items: center; gap: 20px; }
.header-phone { font-size: 12px; letter-spacing: .12em; }
.button {
  min-height: 54px; padding: 0 28px;
  display: inline-flex; align-items: center; justify-content: center;
  color: var(--paper); background: var(--ink);
  border: 1px solid var(--ink); font-size: 12px; letter-spacing: .14em;
  transition: color .25s, background .25s, border-color .25s, transform .25s;
}
.button:hover { color: var(--ink); background: transparent; transform: translateY(-2px); }
.button-small { min-height: 42px; padding: 0 22px; background: transparent; border-color: rgba(255,255,255,.55); }
.button-small:hover { color: var(--ink); background: var(--paper); }
.menu-toggle { display: none; width: 44px; height: 44px; padding: 0; border: 0; color: inherit; background: transparent; }
.menu-toggle span { display: block; width: 24px; height: 1px; margin: 7px auto; background: currentColor; transition: transform .25s; }
.menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(4px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-4px) rotate(-45deg); }
.mobile-menu { position: fixed; inset: 72px 0 0; padding: 48px 28px; color: var(--paper); background: var(--ink); }
.mobile-menu nav { display: grid; }
.mobile-menu nav a { padding: 18px 0; border-bottom: 1px solid rgba(255,255,255,.14); font: 400 24px var(--serif); }
.mobile-menu nav span { float: right; padding-top: 8px; font: 400 9px var(--sans); letter-spacing: .2em; opacity: .5; }
.mobile-menu p { margin-top: 42px; font-size: 11px; opacity: .65; }

.hero {
  position: relative; min-height: 790px; height: 100svh; overflow: hidden;
  color: var(--paper); background: var(--ink);
}
.hero::after {
  content: ""; position: absolute; inset: 0;
  background: radial-gradient(circle at 70% 44%, rgba(181,138,84,.16), transparent 32%),
    linear-gradient(90deg, rgba(16,27,32,.1), rgba(16,27,32,.65));
}
.hero-pattern {
  position: absolute; inset: 0; opacity: .09;
  background-image: linear-gradient(30deg, transparent 48%, var(--paper) 49%, var(--paper) 51%, transparent 52%);
  background-size: 110px 190px;
}
.hero-copy { position: absolute; z-index: 2; left: max(48px, calc((100vw - 1180px)/2)); top: 50%; transform: translateY(-46%); }
.eyebrow { margin: 0 0 24px; color: var(--gold); font: 500 10px/1.4 var(--sans); letter-spacing: .28em; }
.hero h1 {
  margin: 0; font: 500 clamp(54px, 6.5vw, 100px)/1.25 var(--serif);
  letter-spacing: .12em; text-shadow: 0 4px 40px rgba(0,0,0,.16);
}
.hero-lead { margin: 30px 0 0 8px; font: 300 15px/2.15 var(--serif); letter-spacing: .14em; }
.hero-links { margin-top: 42px; display: flex; align-items: center; gap: 34px; }
.hero .button { color: var(--ink); background: var(--paper); border-color: var(--paper); }
.hero .button:hover { color: var(--paper); background: transparent; }
.text-link { display: inline-flex; gap: 28px; align-items: center; padding-bottom: 7px; border-bottom: 1px solid currentColor; font-size: 11px; letter-spacing: .12em; }
.text-link span { transition: transform .2s; }
.text-link:hover span { transform: translate(3px, 3px); }
.hero-art { position: absolute; z-index: 1; right: 7vw; top: 0; width: 38vw; min-width: 460px; height: 100%; }
.noren {
  position: absolute; top: 13%; left: 18%; width: 52%; height: 55%;
  padding: 54px 18px; display: flex; justify-content: center; gap: 6px;
  color: white; background: #101b2e;
  box-shadow: 0 40px 100px rgba(0,0,0,.3);
  clip-path: polygon(0 0,100% 0,100% 93%,76% 96%,52% 92%,28% 97%,0 93%);
}
.noren::before {
  content: ""; position: absolute; inset: 0;
  opacity: .14; background-image: repeating-linear-gradient(90deg,transparent 0 3px,rgba(255,255,255,.16) 4px);
}
.noren span { position: relative; font: 400 34px/1 var(--serif); writing-mode: vertical-rl; letter-spacing: .15em; }
.lantern {
  position: absolute; right: 9%; bottom: 13%; width: 78px; height: 190px;
  display: grid; place-items: center; color: #54271e;
  border: 3px solid #5f311f; background: #d8a263;
  box-shadow: 0 0 80px rgba(218,157,85,.34);
  clip-path: polygon(20% 0,80% 0,100% 13%,92% 87%,75% 100%,25% 100%,8% 87%,0 13%);
}
.lantern span { font: 500 22px var(--serif); writing-mode: vertical-rl; }
.hero-note { position: absolute; z-index: 2; right: 48px; top: 50%; margin: 0; font-size: 9px; letter-spacing: .3em; writing-mode: vertical-rl; }
.scroll-cue { position: absolute; z-index: 2; left: 48px; bottom: 35px; display: flex; align-items: center; gap: 14px; font-size: 8px; letter-spacing: .25em; }
.scroll-cue i { width: 72px; height: 1px; background: rgba(255,255,255,.45); }
.section { position: relative; }
.intro { width: var(--content); padding: 150px 0 140px; display: grid; grid-template-columns: 1fr 1fr; gap: 12%; }
.section-index { position: absolute; top: 145px; left: -52px; color: var(--gold); font-size: 9px; writing-mode: vertical-rl; }
.intro h2, .season h2, .space h2, .reservation h2 {
  margin: 0; font: 500 clamp(34px,4vw,58px)/1.55 var(--serif); letter-spacing: .09em;
}
.intro-body { padding-top: 58px; }
.intro-body > p { margin: 0 0 26px; font-size: 14px; line-height: 2.25; }
.feature-list { margin: 52px 0 0; display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); }
.feature-list div { padding: 22px 12px 0 0; }
.feature-list dt { font: 400 27px var(--serif); color: var(--rust); }
.feature-list dd { margin: 5px 0 0; font-size: 9px; letter-spacing: .08em; }
.season { padding: 0 48px 140px; }
.season-card { position: relative; min-height: 660px; overflow: hidden; color: var(--paper); background: var(--ink-soft); }
.vertical-label { position: absolute; left: 28px; top: 40px; z-index: 2; margin: 0; color: var(--gold-light); font-size: 8px; letter-spacing: .25em; writing-mode: vertical-rl; }
.plate-art { position: absolute; inset: 0 50% 0 0; overflow: hidden; background: linear-gradient(135deg,#202d31,#111a1e); }
.plate-art::before {
  content: ""; position: absolute; width: 520px; height: 520px; left: 50%; top: 50%;
  transform: translate(-50%,-50%); border-radius: 50%;
  background: radial-gradient(circle at 45% 40%, #36464b 0 8%, #1d292e 9% 37%, #0d161a 38% 42%, #26363b 43% 48%, #10191c 49%);
  box-shadow: 0 40px 80px rgba(0,0,0,.35);
}
.plate-ring { position: absolute; z-index: 2; left: 50%; top: 50%; width: 280px; height: 280px; transform: translate(-50%,-50%); border: 1px solid rgba(211,177,127,.38); border-radius: 50%; }
.brush { position: absolute; z-index: 3; left: 50%; top: 50%; height: 28px; border-radius: 50%; background: #c7a562; filter: drop-shadow(0 10px 10px rgba(0,0,0,.4)); }
.brush-one { width: 150px; transform: translate(-65%,-70%) rotate(-25deg); }
.brush-two { width: 110px; height: 19px; background: #ece5d6; transform: translate(-5%,45%) rotate(36deg); }
.garnish { position: absolute; z-index: 4; left: 44%; top: 39%; width: 90px; height: 120px; border-left: 2px solid #63845d; border-radius: 50%; transform: rotate(30deg); }
.garnish::before, .garnish::after { content: ""; position: absolute; width: 34px; height: 13px; border-radius: 100% 0 100% 0; background: #627a58; }
.garnish::before { left: -6px; top: 28px; transform: rotate(-40deg); }
.garnish::after { left: -2px; top: 64px; transform: rotate(18deg); }
.season-copy { margin-left: 50%; padding: 130px 9%; }
.season-copy > p:last-child { max-width: 450px; margin: 36px 0 0; color: rgba(243,239,230,.68); font-size: 13px; line-height: 2.2; }
.menu { width: var(--content); padding: 145px 0; }
.menu-head { display: flex; justify-content: space-between; align-items: end; }
.menu-head h2, .access-copy h2, .news h2 { margin: 0; font: 500 clamp(38px,4vw,56px) var(--serif); letter-spacing: .12em; }
.menu-head > p { max-width: 430px; margin: 0; padding-bottom: 9px; color: rgba(16,27,32,.62); font-size: 10px; }
.menu-layout { margin-top: 72px; display: grid; grid-template-columns: 1fr 1fr .8fr; border-top: 1px solid var(--line); }
.menu-group { padding: 42px 46px 20px 0; }
.menu-group + .menu-group { padding-left: 46px; border-left: 1px solid var(--line); }
.menu-group header { display: flex; align-items: center; gap: 18px; margin-bottom: 32px; }
.menu-group header > span { width: 42px; height: 42px; display: grid; place-items: center; color: var(--paper); background: var(--rust); border-radius: 50%; font-family: var(--serif); }
.menu-group header p { margin: 0; font: 500 18px var(--serif); }
.menu-group header small { display: block; margin-top: 3px; color: rgba(16,27,32,.5); font-size: 8px; letter-spacing: .2em; }
.menu-group ul { margin: 0; padding: 0; list-style: none; }
.menu-group li { padding: 15px 0; display: flex; justify-content: space-between; gap: 20px; border-bottom: 1px dotted rgba(16,27,32,.24); font-size: 12px; }
.menu-group b { flex: 0 0 auto; font-weight: 400; }
.menu-feature { margin-top: -1px; padding: 45px 40px; color: var(--paper); background: var(--ink); }
.menu-feature h3 { margin: 0; font: 500 24px var(--serif); }
.menu-feature > p:not(.eyebrow,.menu-price) { color: rgba(243,239,230,.62); font-size: 11px; line-height: 2; }
.menu-price { display: flex; align-items: center; gap: 12px; margin: 30px 0; }
.menu-price strong { font: 400 42px var(--serif); letter-spacing: .02em; }
.menu-price span { font-size: 9px; line-height: 1.6; }
.text-link.light { margin-top: 25px; color: var(--gold-light); }
.space { min-height: 700px; display: grid; grid-template-columns: 42% 58%; color: var(--paper); background: #131d21; }
.space-copy { padding: 130px max(48px, calc((100vw - 1180px)/2)); padding-right: 8%; }
.space-copy > p:not(.eyebrow) { margin: 38px 0; color: rgba(243,239,230,.66); font-size: 13px; line-height: 2.25; }
.seat-info { margin-top: 48px; border-top: 1px solid rgba(255,255,255,.18); }
.seat-info div { padding: 17px 0; display: flex; justify-content: space-between; border-bottom: 1px solid rgba(255,255,255,.18); }
.seat-info strong { color: var(--gold-light); font-size: 8px; letter-spacing: .2em; }
.seat-info span { font: 400 13px var(--serif); }
.space-art { position: relative; overflow: hidden; background: linear-gradient(#202b2d 0 18%,#b39975 18% 20%,#3b2b21 20% 61%,#201a17 61%); }
.space-art::before { content: ""; position: absolute; inset: 20% 10% 39%; background: repeating-linear-gradient(90deg,rgba(0,0,0,.25) 0 2px,transparent 2px 72px); }
.counter-line { position: absolute; left: 3%; right: 3%; top: 60%; height: 55px; background: linear-gradient(#b69064,#765233); transform: perspective(600px) rotateX(52deg); box-shadow: 0 25px 40px rgba(0,0,0,.5); }
.light { position: absolute; top: 13%; width: 90px; height: 110px; border-radius: 50%; background: radial-gradient(ellipse,rgba(255,220,158,.9),rgba(218,162,99,.25) 50%,transparent 70%); filter: blur(2px); }
.light::before { content: ""; position: absolute; left: 44px; bottom: 75px; width: 1px; height: 120px; background: #28211d; }
.light-a { left: 16%; } .light-b { left: 47%; } .light-c { left: 78%; }
.chair { position: absolute; bottom: 10%; width: 80px; height: 120px; border: 10px solid #171313; border-bottom: 0; }
.chair::after { content: ""; position: absolute; left: -10px; right: -10px; top: 48px; height: 12px; background: #171313; }
.chair-a { left: 18%; } .chair-b { left: 47%; } .chair-c { left: 76%; }
.news { width: var(--content); padding: 120px 0; display: grid; grid-template-columns: 1fr 1fr; align-items: center; }
.news-body > p { max-width: 460px; margin: 0 0 35px; font-size: 13px; }
.instagram-link { padding: 20px 0; display: flex; align-items: center; gap: 18px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); font-size: 13px; }
.instagram-link span { font-size: 23px; }
.instagram-link i { margin-left: auto; font-style: normal; }
.access { min-height: 710px; display: grid; grid-template-columns: 55% 45%; background: var(--paper-deep); }
.access-map { position: relative; min-height: 600px; overflow: hidden; background: #d8cfbd; }
.map-grid { position: absolute; inset: -20%; transform: rotate(-11deg); opacity: .55; background-image: linear-gradient(rgba(16,27,32,.15) 1px,transparent 1px),linear-gradient(90deg,rgba(16,27,32,.15) 1px,transparent 1px); background-size: 75px 75px; }
.map-grid::after { content: ""; position: absolute; inset: 44% -10% auto; height: 32px; background: rgba(141,61,44,.17); border-top: 2px solid rgba(141,61,44,.4); border-bottom: 2px solid rgba(141,61,44,.4); }
.station { position: absolute; left: 19%; top: 35%; font: 500 16px/1.4 var(--serif); }
.station small { font: 400 9px var(--sans); }
.route { position: absolute; height: 3px; transform-origin: left; background: var(--rust); }
.route-a { left: 28%; top: 42%; width: 32%; transform: rotate(15deg); }
.route-b { left: 57%; top: 50%; width: 16%; transform: rotate(-43deg); }
.map-pin { position: absolute; left: 70%; top: 35%; width: 58px; height: 58px; display: grid; place-items: center; color: white; background: var(--ink); border-radius: 50% 50% 50% 0; transform: rotate(-45deg); box-shadow: 0 15px 35px rgba(16,27,32,.25); }
.map-pin span { transform: rotate(45deg); font: 500 20px var(--serif); }
.river { position: absolute; left: -3%; right: -3%; bottom: 13%; height: 70px; padding: 22px 28%; color: rgba(16,27,32,.38); background: rgba(86,135,147,.18); transform: rotate(-6deg); font-size: 9px; letter-spacing: .3em; }
.access-copy { padding: 100px 13% 80px; }
.access-copy dl { margin: 45px 0 34px; }
.access-copy dl > div { padding: 15px 0; display: grid; grid-template-columns: 92px 1fr; border-bottom: 1px solid var(--line); }
.access-copy dt { color: rgba(16,27,32,.55); font-size: 9px; }
.access-copy dd { margin: 0; font: 400 12px/1.9 var(--serif); }
.access-copy dd small { color: rgba(16,27,32,.55); font: 300 9px var(--sans); }
.reservation { padding: 110px 48px; color: var(--paper); background: var(--rust); text-align: center; }
.reservation-inner { max-width: 800px; margin: auto; }
.reservation .eyebrow { color: var(--gold-light); }
.reservation h2 { font-size: clamp(38px,5vw,64px); }
.reservation-inner > p:not(.eyebrow) { margin: 30px 0 40px; font-size: 12px; }
.reservation-actions { display: grid; grid-template-columns: 1fr 230px; gap: 14px; }
.phone-card { padding: 20px 30px; display: grid; color: var(--ink); background: var(--paper); text-align: left; }
.phone-card small { font-size: 8px; }
.phone-card strong { font: 400 28px var(--serif); letter-spacing: .05em; }
.phone-card span { font-size: 8px; color: rgba(16,27,32,.55); }
.button-light { height: 100%; color: var(--paper); background: transparent; border-color: rgba(255,255,255,.7); }
.button-light:hover { color: var(--rust); background: var(--paper); }
.reservation-note { display: block; margin-top: 22px; opacity: .65; font-size: 8px; }
.site-footer { padding: 80px max(48px, calc((100vw - 1180px)/2)) 28px; color: var(--paper); background: #0b1317; }
.footer-brand { display: flex; justify-content: space-between; }
.wordmark-footer span { font-size: 36px; }
.footer-brand p { margin: 0; color: rgba(243,239,230,.5); font-size: 11px; }
.footer-links { margin-top: 80px; display: grid; grid-template-columns: 1fr 1fr; gap: 10%; }
.footer-links > div { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 20px; padding: 25px 0; border-top: 1px solid rgba(255,255,255,.16); }
.footer-links strong { color: var(--gold-light); font-size: 8px; letter-spacing: .2em; }
.footer-links a { font-size: 10px; opacity: .68; }
.footer-bottom { margin-top: 70px; padding-top: 22px; display: grid; grid-template-columns: 1fr auto auto; gap: 42px; border-top: 1px solid rgba(255,255,255,.1); font-size: 8px; opacity: .52; }
.footer-bottom p { margin: 0; }
.mobile-cta { display: none; }
.reveal { opacity: 0; transform: translateY(28px); transition: opacity .8s ease, transform .8s ease; }
.reveal.is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}

@media (max-width: 980px) {
  :root { --content: min(100% - 56px, 760px); }
  .site-header { height: 72px; padding: 0 28px; grid-template-columns: 1fr auto; }
  .desktop-nav, .header-phone, .header-actions .button { display: none; }
  .menu-toggle { display: block; }
  .hero { min-height: 720px; }
  .hero-copy { left: 7vw; }
  .hero-art { right: -10vw; opacity: .78; }
  .hero-note { right: 24px; }
  .scroll-cue { left: 28px; }
  .intro { padding: 110px 0; gap: 7%; }
  .section-index { display: none; }
  .season { padding: 0 28px 110px; }
  .season-card { min-height: 580px; }
  .plate-art { inset: 0 45% 0 0; }
  .season-copy { margin-left: 55%; padding: 90px 6%; }
  .menu { padding: 110px 0; }
  .menu-layout { grid-template-columns: 1fr 1fr; }
  .menu-feature { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr auto; align-items: center; column-gap: 40px; }
  .menu-feature .eyebrow { grid-column: 1; }
  .menu-feature h3 { grid-column: 1; }
  .menu-feature .menu-price { grid-column: 2; grid-row: 1 / 3; }
  .space { grid-template-columns: 1fr; }
  .space-copy { padding: 100px max(28px, calc((100vw - 760px)/2)); }
  .space-art { min-height: 520px; }
  .access { grid-template-columns: 1fr; }
  .access-map { min-height: 500px; }
  .access-copy { padding: 90px max(28px, calc((100vw - 760px)/2)); }
}

@media (max-width: 640px) {
  :root { --content: calc(100% - 40px); }
  body { padding-bottom: 66px; }
  .site-header { padding: 0 20px; }
  .wordmark span { font-size: 22px; }
  .hero { min-height: 680px; height: 100svh; }
  .hero-copy { left: 24px; right: 24px; top: 49%; }
  .hero h1 { font-size: clamp(48px,15vw,66px); line-height: 1.28; }
  .hero-lead { font-size: 12px; }
  .hero-links { align-items: flex-start; flex-direction: column; gap: 22px; margin-top: 32px; }
  .hero .button { min-height: 50px; }
  .hero-art { right: -180px; width: 470px; min-width: 0; opacity: .43; }
  .noren { top: 10%; }
  .lantern { right: 25%; bottom: 10%; }
  .hero-note { display: none; }
  .scroll-cue { bottom: 22px; }
  .intro { padding: 88px 0; display: block; }
  .intro h2, .season h2, .space h2 { font-size: 34px; }
  .intro-body { padding-top: 44px; }
  .intro-body > p { font-size: 13px; }
  .feature-list dt { font-size: 24px; }
  .feature-list dd { font-size: 8px; }
  .season { padding: 0 0 88px; }
  .season-card { min-height: 810px; }
  .vertical-label { left: 14px; top: 24px; }
  .plate-art { inset: 0 0 50% 0; }
  .plate-art::before { width: 360px; height: 360px; }
  .plate-ring { width: 220px; height: 220px; }
  .season-copy { position: absolute; inset: 50% 0 0; margin: 0; padding: 60px 28px; }
  .season-copy > p:last-child { font-size: 12px; }
  .menu { padding: 88px 0; }
  .menu-head { display: block; }
  .menu-head > p { margin-top: 25px; }
  .menu-layout { margin-top: 45px; display: block; }
  .menu-group { padding: 36px 0; }
  .menu-group + .menu-group { padding-left: 0; border-left: 0; border-top: 1px solid var(--line); }
  .menu-feature { margin: 15px 0 0; padding: 36px 28px; display: block; }
  .menu-price strong { font-size: 36px; }
  .space-copy { padding: 80px 24px; }
  .space-art { min-height: 390px; }
  .chair { width: 55px; height: 90px; }
  .light { width: 65px; }
  .news { padding: 80px 0; display: block; }
  .news-body { margin-top: 35px; }
  .access-map { min-height: 380px; }
  .access-copy { padding: 75px 24px; }
  .access-copy dl > div { grid-template-columns: 74px 1fr; }
  .reservation { padding: 80px 20px; }
  .reservation h2 { font-size: 38px; }
  .reservation-actions { display: block; }
  .button-light { width: 100%; height: 56px; margin-top: 12px; }
  .site-footer { padding: 65px 24px 25px; }
  .footer-brand { display: block; }
  .footer-brand p { margin-top: 28px; }
  .footer-links { margin-top: 55px; display: block; }
  .footer-links > div { grid-template-columns: 1.2fr 1fr; }
  .footer-links > div + div { margin-top: 15px; }
  .footer-links a:last-child { grid-column: 2; }
  .footer-bottom { margin-top: 45px; grid-template-columns: 1fr auto; gap: 20px; }
  .footer-bottom a:last-child { grid-column: 2; grid-row: 1; }
  .mobile-cta { position: fixed; z-index: 90; left: 0; right: 0; bottom: 0; height: 66px; display: grid; grid-template-columns: 1.4fr 1fr; color: var(--paper); background: var(--ink); box-shadow: 0 -5px 30px rgba(0,0,0,.18); }
  .mobile-cta a { display: flex; align-items: center; justify-content: center; flex-direction: column; font-size: 10px; }
  .mobile-cta a:first-child { border-right: 1px solid rgba(255,255,255,.14); }
  .mobile-cta strong { font: 400 14px var(--serif); }
  .mobile-cta a:last-child { color: white; background: var(--rust); font-size: 12px; }
}
