:root {
  color-scheme: light;
  --paper: #f3f0e9;
  --paper-2: #e8e2d8;
  --surface: #fffdf8;
  --ink: #171714;
  --muted: #67645e;
  --line: #d3cec4;
  --wine: #78172d;
  --forest: #17231f;
  --gold: #aa8950;
  --night: #101514;
  --serif: Georgia, "Times New Roman", serif;
  --sans: "Segoe UI", Arial, sans-serif;
  --pad: 6vw;
  --header: 82px;
}

html[data-theme="dark"] {
  color-scheme: dark;
  --paper: #111715;
  --paper-2: #1b211e;
  --surface: #212723;
  --ink: #f2eee5;
  --muted: #afa99e;
  --line: #3b403b;
  --forest: #0c1210;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: var(--header); }
body { margin: 0; min-width: 320px; overflow-x: hidden; background: var(--paper); color: var(--ink); font-family: var(--sans); font-size: 16px; line-height: 1.55; letter-spacing: 0; -webkit-font-smoothing: antialiased; }
body.menu-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { color: inherit; font: inherit; letter-spacing: 0; }
button { cursor: pointer; }
h1, h2, h3, p, figure, blockquote, ul { margin: 0; }
ul { padding: 0; }
[hidden] { display: none !important; }
::selection { background: var(--wine); color: #fff; }

.skip-link { position: fixed; z-index: 4000; top: 12px; left: 12px; padding: 10px 14px; background: #fff; color: #111; transform: translateY(-160%); }
.skip-link:focus { transform: translateY(0); }

.site-header { position: fixed; z-index: 1500; top: 0; right: 0; left: 0; display: grid; grid-template-columns: minmax(260px, 1fr) auto minmax(260px, 1fr); align-items: center; height: var(--header); padding: 0 var(--pad); border-bottom: 1px solid rgba(255,255,255,.2); color: #fff; transition: background 180ms ease, color 180ms ease, border-color 180ms ease; }
.site-header.scrolled, body.menu-open .site-header { border-color: var(--line); background: color-mix(in srgb, var(--paper) 96%, transparent); color: var(--ink); backdrop-filter: blur(14px); }
.brand { display: flex; align-items: center; gap: 14px; width: max-content; }
.brand img { width: 58px; height: 49px; object-fit: contain; filter: brightness(0) invert(1); }
.site-header.scrolled .brand img, body.menu-open .brand img { filter: none; }
html[data-theme="dark"] .site-header.scrolled .brand img, html[data-theme="dark"] body.menu-open .brand img { filter: brightness(0) invert(1); }
.brand > span { display: grid; line-height: 1.05; }
.brand strong { font-family: var(--serif); font-size: 1.2rem; font-weight: 400; }
.brand small { margin-top: 6px; font-size: .47rem; font-weight: 700; text-transform: uppercase; }
.desktop-nav { display: flex; gap: 34px; }
.desktop-nav a { position: relative; font-size: .7rem; font-weight: 650; }
.desktop-nav a::after { position: absolute; right: 0; bottom: -10px; left: 0; height: 1px; background: var(--gold); content: ""; transform: scaleX(0); transform-origin: right; transition: transform 180ms ease; }
.desktop-nav a:hover::after, .desktop-nav a:focus-visible::after, .desktop-nav a[aria-current="true"]::after { transform: scaleX(1); transform-origin: left; }
.header-actions { display: flex; justify-content: flex-end; align-items: center; gap: 10px; }
.theme-toggle { position: relative; width: 40px; height: 40px; padding: 0; border: 1px solid currentColor; border-radius: 50%; background: transparent; }
.theme-toggle span { position: absolute; top: 10px; left: 11px; width: 15px; height: 15px; border: 2px solid currentColor; border-radius: 50%; }
.theme-toggle span::after { position: absolute; top: -4px; left: 5px; width: 8px; height: 18px; background: var(--paper); content: ""; transform: rotate(34deg); }
.site-header:not(.scrolled) .theme-toggle span::after { background: transparent; }
.header-cta { display: flex; gap: 34px; align-items: center; min-height: 42px; padding: 0 18px; border: 1px solid var(--gold); font-size: .7rem; font-weight: 700; }
.header-cta span { font-size: 1rem; }
.menu-toggle { display: none; }
.mobile-menu { display: none; }

.hero { position: relative; display: flex; align-items: center; min-height: 780px; height: 100svh; overflow: hidden; background: #111; color: #fff; }
.hero-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.hero-overlay { position: absolute; inset: 0; background: rgba(10, 10, 9, .34); }
.hero-copy { position: relative; z-index: 1; width: 54%; padding: 120px 0 70px var(--pad); }
.hero-eyebrow { margin-bottom: 28px; color: #d2b980; font-size: .68rem; font-weight: 800; text-transform: uppercase; }
.hero h1 { font-family: var(--serif); font-size: 5.2rem; font-weight: 400; line-height: .94; }
.hero h1 em { color: #eadfd3; font-weight: 400; }
.hero-intro { max-width: 540px; margin-top: 30px; color: rgba(255,255,255,.84); font-size: 1.05rem; }
.primary-button { display: inline-flex; align-items: center; justify-content: space-between; min-width: 220px; margin-top: 34px; padding: 17px 20px; background: var(--wine); color: #fff; font-size: .76rem; font-weight: 700; transition: background 180ms ease; }
.primary-button:hover, .primary-button:focus-visible { background: #5e1022; }
.hero-audience { display: flex; gap: 0; margin-top: 36px; }
.hero-audience span { padding: 0 18px; border-right: 1px solid rgba(255,255,255,.4); font-size: .58rem; font-weight: 800; text-transform: uppercase; }
.hero-audience span:first-child { padding-left: 0; }
.hero-quote { position: absolute; z-index: 1; right: var(--pad); top: 32%; max-width: 260px; padding-left: 25px; border-left: 1px solid rgba(255,255,255,.5); }
.hero-quote p { font-family: var(--serif); font-size: 1.6rem; font-style: italic; line-height: 1.18; }
.hero-quote cite { display: block; margin-top: 28px; font-size: .62rem; font-style: normal; font-weight: 800; text-transform: uppercase; }
.hero-quote cite span { color: rgba(255,255,255,.62); font-size: .54rem; }

.section-kicker { display: flex; align-items: center; gap: 16px; color: var(--wine); font-size: .66rem; font-weight: 800; text-transform: uppercase; }
.section-kicker span { width: 34px; height: 1px; background: var(--gold); }
.section-kicker.light { color: #d5c095; }

.manifesto { display: grid; grid-template-columns: 33% 36% 31%; min-height: 620px; background: var(--paper); }
.manifesto-title { display: flex; flex-direction: column; justify-content: center; padding: 80px 3vw 80px var(--pad); }
.manifesto-title h2 { margin-top: 45px; font-family: var(--serif); font-size: 4rem; font-weight: 400; line-height: 1.02; }
.manifesto-title em { color: var(--wine); font-weight: 400; }
.manifesto-copy { display: flex; flex-direction: column; justify-content: center; gap: 26px; padding: 80px 4vw; color: var(--muted); }
.manifesto-copy strong { margin-top: 18px; padding-top: 24px; border-top: 1px solid var(--gold); color: var(--ink); font-size: .68rem; text-transform: uppercase; }
.manifesto-image { position: relative; min-height: 620px; overflow: hidden; }
.manifesto-image img { width: 100%; height: 100%; object-fit: cover; }
.manifesto-image figcaption { position: absolute; inset: auto 0 0; display: grid; gap: 8px; padding: 34px; background: rgba(15,21,18,.84); color: #fff; }
.manifesto-image figcaption span { font-family: var(--serif); font-size: 1.4rem; }
.manifesto-image figcaption small { color: #d5c095; font-size: .58rem; font-weight: 800; text-transform: uppercase; }

.expertise { position: relative; overflow: hidden; padding: 105px var(--pad) 0; background: var(--forest); color: #fff; }
.expertise-backdrop { position: absolute; inset: 0; background: url("../images/advisory-table-premium-v2.webp") center/cover no-repeat; opacity: .07; }
.expertise-head, .expertise-list { position: relative; z-index: 1; }
.expertise-head { display: grid; grid-template-columns: 55% 45%; align-items: end; gap: 5vw; }
.expertise-head h2 { margin-top: 34px; font-family: var(--serif); font-size: 4.2rem; font-weight: 400; line-height: 1.02; }
.expertise-intro { max-width: 520px; color: rgba(255,255,255,.72); }
.expertise-intro a { display: flex; justify-content: space-between; margin-top: 30px; padding: 16px 0; border-top: 1px solid rgba(255,255,255,.4); border-bottom: 1px solid rgba(255,255,255,.4); color: #fff; font-size: .68rem; font-weight: 800; text-transform: uppercase; }
.expertise-list { display: grid; grid-template-columns: repeat(5, 1fr); margin: 90px calc(var(--pad) * -1) 0; border-top: 1px solid rgba(255,255,255,.24); }
.expertise-list details { min-width: 0; min-height: 235px; border-right: 1px solid rgba(255,255,255,.24); }
.expertise-list summary { display: grid; align-content: center; min-height: 235px; padding: 28px; list-style: none; cursor: pointer; }
.expertise-list summary::-webkit-details-marker { display: none; }
.expertise-list summary > span { color: #d5c095; font-family: var(--serif); font-size: 1.1rem; }
.expertise-list summary div { margin-top: 48px; }
.expertise-list strong { display: block; font-size: .76rem; font-weight: 800; text-transform: uppercase; }
.expertise-list small { display: block; margin-top: 10px; color: rgba(255,255,255,.62); font-size: .7rem; }
.expertise-list summary i { display: none; }
.expertise-list details > p { padding: 0 28px 28px; color: rgba(255,255,255,.72); font-size: .74rem; }
.expertise-list details[open] { background: rgba(255,255,255,.06); }

.team { padding: 125px var(--pad) 140px; background: var(--surface); }
.team-heading { display: grid; grid-template-columns: 65% 35%; align-items: end; }
.team-heading h2 { margin-top: 38px; font-family: var(--serif); font-size: 4.3rem; font-weight: 400; line-height: 1.02; }
.team-heading em { color: var(--wine); font-weight: 400; }
.team-heading > p { max-width: 430px; padding-bottom: 8px; color: var(--muted); }
.team-grid { display: grid; grid-template-columns: repeat(3, 1fr) .72fr; margin-top: 80px; border-top: 1px solid var(--line); }
.team-grid article { border-right: 1px solid var(--line); }
.team-grid article > a { display: block; overflow: hidden; }
.team-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; object-position: center 22%; filter: saturate(.78); transition: filter 240ms ease, transform 450ms ease; }
.team-grid article:hover img { filter: saturate(1); transform: scale(1.02); }
.team-grid article > div { padding: 24px 18px 28px 0; }
.team-grid h3 { font-family: var(--serif); font-size: 1.4rem; font-weight: 400; }
.team-grid article p { margin-top: 7px; color: var(--muted); font-size: .72rem; }
.team-grid article div > a { display: inline-flex; gap: 18px; margin-top: 22px; padding-bottom: 4px; border-bottom: 1px solid var(--gold); font-size: .64rem; font-weight: 800; }
.team-grid blockquote { display: flex; flex-direction: column; justify-content: center; padding: 34px; background: var(--wine); color: #fff; }
.team-grid blockquote span { font-family: var(--serif); font-size: 3rem; color: #d8bd91; }
.team-grid blockquote p { margin-top: 16px; font-family: var(--serif); font-size: 1.7rem; font-style: italic; line-height: 1.2; }

.cabinet { display: grid; grid-template-columns: 36% 42% 22%; min-height: 460px; background: var(--paper-2); }
.cabinet-image { position: relative; min-height: 460px; overflow: hidden; }
.cabinet-image img { width: 100%; height: 100%; object-fit: cover; filter: brightness(.48) saturate(.75); }
.cabinet-image > div { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: center; align-items: center; color: #fff; text-align: center; }
.cabinet-image strong { color: #d7b97c; font-family: var(--serif); font-size: 4rem; font-weight: 400; }
.cabinet-image span { font-family: var(--serif); font-size: 2rem; }
.cabinet-image small { margin-top: 38px; color: #d7b97c; font-size: .62rem; font-weight: 800; text-transform: uppercase; }
.cabinet-copy { display: flex; flex-direction: column; justify-content: center; padding: 70px 5vw; }
.cabinet-copy h2 { margin-top: 32px; font-family: var(--serif); font-size: 3.6rem; font-weight: 400; line-height: 1.05; }
.cabinet-copy > p:not(.section-kicker) { max-width: 610px; margin-top: 22px; color: var(--muted); }
.cabinet-copy .primary-button { width: max-content; }
.cabinet-facts { display: flex; flex-direction: column; justify-content: center; gap: 26px; padding: 60px 3vw; list-style: none; }
.cabinet-facts li { display: grid; grid-template-columns: 30px 1fr; gap: 12px; color: var(--muted); font-size: .72rem; }
.cabinet-facts span { color: var(--gold); font-family: var(--serif); }

.booking { padding: 125px var(--pad) 140px; background: var(--paper); }
.booking-heading { display: grid; grid-template-columns: 20% 48% 32%; align-items: end; }
.booking-heading h2 { font-family: var(--serif); font-size: 4rem; font-weight: 400; line-height: 1.02; }
.booking-heading > p:last-child { color: var(--muted); }
.booking-types { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 80px; border: 1px solid var(--line); }
.booking-types button { min-height: 88px; padding: 16px; border: 0; border-right: 1px solid var(--line); background: var(--surface); font-size: .72rem; font-weight: 750; }
.booking-types button:last-child { border-right: 0; }
.booking-types button.active { background: var(--wine); color: #fff; }
.booking-workspace { display: grid; grid-template-columns: 1fr .72fr; border: 1px solid var(--line); border-top: 0; background: var(--surface); }
.date-picker, .slots-panel, .booking-form { padding: 38px; }
.slots-panel { border-left: 1px solid var(--line); }
.booking-form { grid-column: 1/-1; display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; border-top: 1px solid var(--line); }
.picker-head { display: flex; justify-content: space-between; align-items: flex-start; min-height: 72px; }
.picker-head span, .form-title span { color: var(--wine); font-size: .62rem; font-weight: 800; text-transform: uppercase; }
.picker-head h3, .form-title h3 { margin-top: 5px; font-family: var(--serif); font-size: 1.85rem; font-weight: 400; }
.picker-head > div:last-child { display: flex; }
.picker-head button { width: 40px; height: 40px; border: 1px solid var(--line); background: transparent; }
.picker-head button + button { border-left: 0; }
.weekdays, .calendar { display: grid; grid-template-columns: repeat(7, 1fr); }
.weekdays { margin: 24px 0 8px; color: var(--muted); font-size: .58rem; font-weight: 800; text-align: center; text-transform: uppercase; }
.calendar { gap: 6px; }
.calendar-day, .calendar-spacer { aspect-ratio: 1; }
.calendar-day { position: relative; border: 1px solid var(--line); background: transparent; font-size: .74rem; }
.calendar-day small { position: absolute; right: 5px; bottom: 3px; color: var(--wine); font-size: .48rem; }
.calendar-day:disabled { border-color: transparent; color: color-mix(in srgb, var(--muted) 30%, transparent); cursor: default; }
.calendar-day.has-slots:hover, .calendar-day.has-slots:focus-visible, .calendar-day[aria-selected="true"] { border-color: var(--wine); background: var(--wine); color: #fff; }
.calendar-day[aria-selected="true"] small { color: #fff; }
.slots { display: grid; gap: 10px; margin-top: 24px; }
.slot-button { display: flex; justify-content: space-between; align-items: center; min-height: 58px; padding: 12px 16px; border: 1px solid var(--line); background: transparent; text-align: left; }
.slot-button strong { max-width: 70%; font-size: .7rem; }
.slot-button span { color: var(--wine); font-family: var(--serif); font-size: 1.1rem; }
.slot-button[aria-selected="true"] { border-color: var(--wine); background: var(--wine); color: #fff; }
.slot-button[aria-selected="true"] span { color: #fff; }
.form-title { grid-column: 1/-1; margin-bottom: 8px; }
.booking-form label { display: grid; gap: 8px; color: var(--muted); font-size: .62rem; font-weight: 800; text-transform: uppercase; }
.booking-form input, .booking-form textarea { width: 100%; padding: 13px 0; border: 0; border-bottom: 1px solid var(--line); outline: 0; background: transparent; color: var(--ink); font-size: .9rem; font-weight: 400; text-transform: none; resize: vertical; }
.booking-form input:focus, .booking-form textarea:focus { border-color: var(--wine); }
.booking-form .wide { grid-column: 1/-1; }
.booking-summary, .form-status { color: var(--muted); font-size: .74rem; }
.booking-form button.wide { min-height: 62px; border: 0; background: var(--wine); color: #fff; font-weight: 750; }
.booking-form button.wide span { margin-left: 24px; }

.footer { display: grid; grid-template-columns: 1.2fr 1fr 1fr .8fr; align-items: start; gap: 50px; min-height: 290px; padding: 70px var(--pad) 50px; background: var(--night); color: #fff; }
.footer-brand { display: grid; gap: 9px; }
.footer-brand strong { font-family: var(--serif); font-size: 2rem; font-weight: 400; }
.footer-brand span { color: #d0b77f; font-size: .55rem; font-weight: 800; text-transform: uppercase; }
.footer > div:nth-child(2), .footer > div:nth-child(3) { padding-top: 12px; color: rgba(255,255,255,.7); font-size: .75rem; }
.footer > div:nth-child(3) { display: grid; gap: 5px; }
.footer-claim { font-family: var(--serif); font-size: 1.4rem; line-height: 1.15; }
.footer small { grid-column: 1/-1; align-self: end; color: rgba(255,255,255,.45); font-size: .6rem; }
.whatsapp { position: fixed; z-index: 1300; right: 22px; bottom: 22px; display: grid; place-items: center; width: 54px; height: 54px; border: 1px solid rgba(255,255,255,.5); border-radius: 50%; background: #158a55; color: #fff; box-shadow: 0 10px 30px rgba(0,0,0,.18); }
.whatsapp svg { width: 21px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }

.reveal { opacity: 0; transform: translateY(26px); transition: opacity 620ms ease, transform 620ms ease; transition-delay: var(--delay, 0ms); }
.reveal.visible { opacity: 1; transform: translateY(0); }

@media (max-width: 1180px) {
  .site-header { grid-template-columns: minmax(220px, 1fr) auto minmax(220px, 1fr); }
  .desktop-nav { gap: 22px; }
  .hero h1 { font-size: 4.5rem; }
  .hero-quote { max-width: 220px; }
  .manifesto { grid-template-columns: 1fr 1fr; }
  .manifesto-title h2 { font-size: 3.4rem; }
  .manifesto-image { grid-column: 1/-1; min-height: 500px; }
  .expertise-list { grid-template-columns: repeat(3, 1fr); }
  .expertise-list details:nth-child(3) { border-right: 0; }
  .expertise-list details:nth-child(-n+3) { border-bottom: 1px solid rgba(255,255,255,.24); }
  .team-heading { grid-template-columns: 60% 40%; }
  .team-grid { grid-template-columns: repeat(3, 1fr); }
  .team-grid blockquote { grid-column: 1/-1; min-height: 240px; }
  .cabinet { grid-template-columns: 40% 60%; }
  .cabinet-facts { grid-column: 1/-1; display: grid; grid-template-columns: repeat(3, 1fr); }
  .booking-heading { grid-template-columns: 1fr 2fr; }
  .booking-heading > p:last-child { grid-column: 2; margin-top: 18px; }
}

@media (max-width: 860px) {
  :root { --pad: 26px; --header: 72px; }
  .site-header { grid-template-columns: 1fr auto; background: var(--paper); color: var(--ink); border-color: var(--line); }
  .brand img { width: 45px; height: 38px; filter: none; }
  html[data-theme="dark"] .brand img { filter: brightness(0) invert(1); }
  .brand strong { font-size: .92rem; }
  .brand small, .desktop-nav, .header-cta { display: none; }
  .theme-toggle span::after, .site-header:not(.scrolled) .theme-toggle span::after { background: var(--paper); }
  .menu-toggle { display: grid; place-items: center; align-content: center; gap: 6px; width: 40px; height: 40px; padding: 0; border: 1px solid currentColor; background: transparent; }
  .menu-toggle i { width: 18px; height: 1px; background: currentColor; transition: transform 180ms ease; }
  body.menu-open .menu-toggle i:first-child { transform: translateY(3.5px) rotate(45deg); }
  body.menu-open .menu-toggle i:last-child { transform: translateY(-3.5px) rotate(-45deg); }
  .mobile-menu { position: fixed; z-index: 1400; inset: 0; display: flex; flex-direction: column; justify-content: center; padding: 95px var(--pad) 38px; background: var(--paper); visibility: hidden; opacity: 0; transform: translateY(-14px); transition: opacity 180ms ease, transform 180ms ease, visibility 180ms ease; }
  body.menu-open .mobile-menu { visibility: visible; opacity: 1; transform: translateY(0); }
  .mobile-menu nav { display: grid; }
  .mobile-menu nav a { display: grid; grid-template-columns: 36px 1fr; align-items: center; min-height: 80px; border-bottom: 1px solid var(--line); font-family: var(--serif); font-size: 2rem; }
  .mobile-menu nav span { color: var(--wine); font-family: var(--sans); font-size: .6rem; }
  .mobile-menu > a { display: flex; justify-content: space-between; margin-top: auto; padding: 20px; background: var(--wine); color: #fff; font-size: .76rem; font-weight: 750; }
  .hero { min-height: 780px; height: 100svh; align-items: end; }
  .hero-image { object-position: 58% center; }
  .hero-overlay { background: rgba(10,10,9,.48); }
  .hero-copy { width: 100%; padding: 120px var(--pad) 52px; }
  .hero h1 { font-size: 3.5rem; }
  .hero-intro { max-width: 440px; }
  .hero-quote { display: none; }
  .manifesto { grid-template-columns: 1fr; }
  .manifesto-title, .manifesto-copy { padding: 100px var(--pad) 0; }
  .manifesto-copy { padding-top: 60px; padding-bottom: 100px; }
  .manifesto-image { grid-column: 1; min-height: 520px; }
  .expertise { padding: 100px var(--pad) 0; }
  .expertise-head { grid-template-columns: 1fr; }
  .expertise-head h2 { font-size: 3.3rem; }
  .expertise-intro { margin-top: 50px; }
  .expertise-list { grid-template-columns: 1fr; margin-top: 70px; }
  .expertise-list details, .expertise-list details:nth-child(3) { min-height: 0; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.24); }
  .expertise-list summary { position: relative; min-height: 118px; padding: 22px var(--pad); grid-template-columns: 34px 1fr 28px; align-items: center; }
  .expertise-list summary div { margin-top: 0; }
  .expertise-list summary i { display: block; font-style: normal; font-size: 1.2rem; }
  .expertise-list details > p { padding: 0 var(--pad) 28px 60px; }
  .team { padding: 100px var(--pad); }
  .team-heading { grid-template-columns: 1fr; }
  .team-heading h2 { font-size: 3.4rem; }
  .team-heading > p { margin-top: 28px; }
  .team-grid { grid-template-columns: 1fr; }
  .team-grid article { border-right: 0; border-bottom: 1px solid var(--line); }
  .team-grid img { aspect-ratio: 5/4; }
  .team-grid blockquote { grid-column: 1; }
  .cabinet { grid-template-columns: 1fr; }
  .cabinet-image { min-height: 560px; }
  .cabinet-copy { padding: 90px var(--pad); }
  .cabinet-copy h2 { font-size: 3.2rem; }
  .cabinet-facts { grid-column: 1; grid-template-columns: 1fr; padding: 60px var(--pad); }
  .booking { padding: 100px var(--pad); }
  .booking-heading { grid-template-columns: 1fr; }
  .booking-heading h2 { margin-top: 45px; font-size: 3.2rem; }
  .booking-heading > p:last-child { grid-column: 1; }
  .booking-types { grid-template-columns: repeat(2, 1fr); }
  .booking-types button:nth-child(2) { border-right: 0; }
  .booking-types button:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .booking-workspace { grid-template-columns: 1fr; }
  .slots-panel { border-top: 1px solid var(--line); border-left: 0; }
  .booking-form { grid-template-columns: 1fr; }
  .booking-form .wide, .form-title { grid-column: 1; }
  .footer { grid-template-columns: repeat(2, 1fr); }
  .footer small { grid-column: 1/-1; }
}

@media (max-width: 540px) {
  :root { --pad: 19px; }
  body { font-size: 15px; }
  .site-header { padding: 0 var(--pad); }
  .header-actions { gap: 8px; }
  .theme-toggle, .menu-toggle { width: 38px; height: 38px; }
  .hero { min-height: 740px; }
  .hero-image { object-position: 63% center; }
  .hero-copy { padding-bottom: 38px; }
  .hero h1 { font-size: 3.05rem; }
  .hero-intro { font-size: .9rem; }
  .hero-audience { flex-wrap: wrap; gap: 10px 0; }
  .manifesto-title h2 { font-size: 3.1rem; }
  .manifesto-image { min-height: 470px; }
  .expertise-head h2, .team-heading h2, .booking-heading h2 { font-size: 2.9rem; }
  .team-grid img { aspect-ratio: 4/5; }
  .cabinet-image { min-height: 500px; }
  .cabinet-copy h2 { font-size: 2.9rem; }
  .booking { padding-right: 0; padding-left: 0; }
  .booking-heading { padding: 0 var(--pad); }
  .booking-types { margin-top: 60px; }
  .booking-types button { min-height: 76px; padding: 12px 8px; font-size: .65rem; }
  .date-picker, .slots-panel, .booking-form { padding: 26px 18px; }
  .footer { grid-template-columns: 1fr; padding: 65px var(--pad); }
  .footer small { grid-column: 1; }
  .whatsapp { right: 14px; bottom: 14px; width: 48px; height: 48px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
}
