@font-face {
  font-family: "Quattrocento Sans";
  src: url("../fonts/quattrocento-sans-regular.ttf") format("truetype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: "Quattrocento Sans";
  src: url("../fonts/quattrocento-sans-bold.ttf") format("truetype");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}
@font-face {
  font-family: "Cormorant";
  src: url("../fonts/cormorant-regular.ttf") format("truetype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

:root {
  --burgundy: #790d1c;
  --burgundy-deep: #3d0710;
  --cream: #f7f1e9;
  --paper: #fffaf4;
  --gold: #c8a35d;
  --brown: #62483d;
  --ink: #281c19;
  --line: rgba(98, 72, 61, .22);
  --shadow: 0 24px 65px rgba(61, 7, 16, .12);
  --serif: Georgia, "Times New Roman", serif;
  --sans: "Quattrocento Sans", ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--cream);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 17px;
  line-height: 1.65;
}
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: .2em; }
a:hover { text-decoration-color: var(--gold); }
button, a { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid var(--gold); outline-offset: 4px; }
.skip-link { position: fixed; left: 1rem; top: -5rem; z-index: 100; background: var(--paper); color: var(--burgundy); padding: .7rem 1rem; border-radius: 99px; }
.skip-link:focus { top: 1rem; }
.shell { width: min(1180px, calc(100% - 40px)); margin-inline: auto; }

.site-header { position: relative; z-index: 20; background: var(--burgundy-deep); color: var(--paper); border-bottom: 1px solid rgba(255,255,255,.12); }
.nav-wrap { min-height: 84px; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; }
.brand { display: inline-flex; align-items: center; gap: .7rem; text-decoration: none; flex: 0 0 auto; }
.brand img { width: 40px; height: 54px; object-fit: contain; filter: brightness(0) invert(1) drop-shadow(0 2px 8px rgba(0,0,0,.16)); }
.site-header .brand { gap: .85rem; }
.site-header .brand-copy strong { text-shadow: 0 1px 12px rgba(255,250,244,.1); }
.brand-copy { display: grid; line-height: 1; }
.brand-copy strong { font-family: var(--serif); font-size: 1.3rem; font-weight: 500; }
.brand-copy span { margin-top: .25rem; color: var(--gold); font-size: .58rem; letter-spacing: .22em; text-transform: uppercase; }
.nav-toggle { display: none; padding: .55rem .75rem; color: inherit; background: transparent; border: 1px solid rgba(255,255,255,.4); border-radius: 99px; font: inherit; }
.site-nav { display: flex; align-items: center; gap: 1.35rem; font-size: .78rem; letter-spacing: .04em; }
.site-nav a { text-decoration: none; }
.site-nav a:not(.button):hover, .site-nav a[aria-current="page"] { color: var(--gold); }
.button { display: inline-flex; align-items: center; justify-content: center; gap: .55rem; min-height: 48px; padding: .7rem 1.2rem; border: 1px solid transparent; border-radius: 999px; background: var(--burgundy); color: #fff; font-size: .79rem; font-weight: 700; letter-spacing: .06em; line-height: 1.2; text-decoration: none; text-transform: uppercase; }
.button:hover { background: var(--burgundy-deep); }
.button-light { background: var(--paper); color: var(--burgundy-deep); }
.button-light:hover { background: var(--gold); color: var(--burgundy-deep); }
.button-outline { background: transparent; color: var(--paper); border-color: rgba(255,255,255,.55); }
.text-link { color: var(--burgundy); font-size: .82rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }

.eyebrow { margin: 0 0 1rem; color: var(--gold); font-size: .72rem; font-weight: 700; letter-spacing: .17em; text-transform: uppercase; }
h1, h2, h3 { margin-top: 0; font-family: var(--sans); font-weight: 400; line-height: 1.08; letter-spacing: -.018em; }
h1 { max-width: 18ch; font-size: clamp(2.25rem, 4.5vw, 4rem); line-height: 1.12; }
h2 { font-size: clamp(1.75rem, 3vw, 2.5rem); line-height: 1.2; }
h3 { font-size: clamp(1.2rem, 1.8vw, 1.5rem); line-height: 1.3; }
p { margin-top: 0; }
.lede { max-width: 65ch; font-size: clamp(1.05rem, 1.5vw, 1.26rem); }
.actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin-top: 2rem; }

.hero { position: relative; overflow: hidden; background: var(--burgundy-deep); color: var(--paper); }
.hero::after { content: ""; position: absolute; width: 42vw; height: 42vw; right: -8vw; top: -22vw; border: 1px solid rgba(200,163,93,.35); border-radius: 50%; box-shadow: 0 0 0 70px rgba(200,163,93,.05), 0 0 0 140px rgba(200,163,93,.035); }
.hero-grid { position: relative; z-index: 1; min-height: 680px; display: grid; grid-template-columns: 1.12fr .88fr; align-items: stretch; }
.hero-copy { display: flex; flex-direction: column; justify-content: center; padding: 7rem 6rem 8rem 0; }
.hero-copy h1 { margin-bottom: 1.6rem; }
.hero-copy .lede { color: rgba(255,250,244,.8); }
.hero-art { min-height: 580px; position: relative; align-self: end; margin: 5rem 0 0; border: 1px solid rgba(200,163,93,.55); border-bottom: 0; border-radius: 220px 220px 0 0; background: radial-gradient(circle at 50% 38%, #fffaf4 0%, #f7f1e9 45%, #e9d8c5 100%); box-shadow: inset 0 0 100px rgba(200,163,93,.1); overflow: hidden; }
.hero-art::before { content: "SJ"; position: absolute; inset: auto 0 5%; text-align: center; color: rgba(121,13,28,.06); font: 11rem/1 var(--serif); }
.hero-art::after { content: ""; position: absolute; width: 75%; aspect-ratio: 1; left: 12%; top: 13%; border: 1px solid rgba(121,13,28,.24); border-radius: 50%; box-shadow: 0 0 0 55px rgba(200,163,93,.08), inset 0 0 80px rgba(200,163,93,.08); }
.monogram-large { position: absolute; z-index: 2; left: 50%; top: 48%; width: auto; height: 65%; max-width: 52%; object-fit: contain; transform: translate(-50%, -50%); filter: drop-shadow(0 18px 22px rgba(61,7,16,.14)); }

@keyframes rise-in {
  from { opacity: 0; transform: translateY(24px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes art-in {
  from { opacity: 0; transform: translateY(35px) scale(.97); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes logo-drift {
  0%, 100% { transform: translate(-50%, -50%) translateY(0); }
  50% { transform: translate(-50%, -50%) translateY(-9px); }
}
.motion-ready .hero-copy > * { opacity: 0; animation: rise-in .75s cubic-bezier(.2,.7,.2,1) forwards; }
.motion-ready .hero-copy > :nth-child(2) { animation-delay: .09s; }
.motion-ready .hero-copy > :nth-child(3) { animation-delay: .18s; }
.motion-ready .hero-copy > :nth-child(4) { animation-delay: .27s; }
.motion-ready .hero-art { animation: art-in .9s .12s cubic-bezier(.2,.7,.2,1) both; }
.motion-ready .monogram-large { animation: logo-drift 5.5s 1.1s ease-in-out infinite; }
.motion-ready .reveal { opacity: 0; transform: translateY(28px); transition: opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1); }
.motion-ready .reveal.is-visible { opacity: 1; transform: translateY(0); }
.motion-ready .service-card:nth-child(2) { transition-delay: .08s; }
.motion-ready .service-card:nth-child(3) { transition-delay: .16s; }
.motion-ready .service-card:nth-child(4) { transition-delay: .24s; }

.service-overlap { position: relative; z-index: 4; margin-top: -74px; }
.service-panel { display: grid; grid-template-columns: repeat(4, 1fr); background: var(--paper); border: 1px solid var(--line); border-radius: 30px; box-shadow: var(--shadow); overflow: hidden; }
.service-card { min-height: 270px; padding: 2rem; text-decoration: none; border-right: 1px solid var(--line); }
.service-card:last-child { border-right: 0; }
.service-card span { display: block; margin-bottom: 2.5rem; color: var(--gold); font: 1.6rem/1 var(--serif); }
.service-card h2 { font-size: 1.4rem; }
.service-card p { color: var(--brown); font-size: .91rem; }
.service-card strong { color: var(--burgundy); font-size: .74rem; letter-spacing: .08em; text-transform: uppercase; }
.service-card:hover { background: #f3e7dc; }

.section { padding: clamp(5rem, 9vw, 9rem) 0; }
.section-tight { padding: 5rem 0; }
.split { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(3rem, 8vw, 8rem); align-items: start; }
.split-balanced { grid-template-columns: 1fr 1fr; }
.section h2 { max-width: 22ch; }
.copy-stack { max-width: 680px; }
.copy-stack p { color: var(--brown); }
.feature-note { padding: 2.2rem; background: var(--paper); border-left: 4px solid var(--gold); border-radius: 0 20px 20px 0; }
.band { overflow: hidden; background: var(--burgundy); color: var(--paper); }
.band .copy-stack p, .band .muted { color: rgba(255,250,244,.76); }
.band-lines { position: relative; }
.band-lines::after { content: ""; position: absolute; width: 460px; height: 460px; right: -180px; bottom: -310px; border: 1px solid rgba(200,163,93,.4); border-radius: 50%; box-shadow: 0 0 0 42px rgba(200,163,93,.07), 0 0 0 84px rgba(200,163,93,.05); }
.steps { counter-reset: step; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: 24px; overflow: hidden; }
.step { counter-increment: step; padding: 2rem; background: var(--paper); }
.step::before { content: "0" counter(step); display: block; margin-bottom: 2rem; color: var(--gold); font: 1.2rem/1 var(--serif); }
.step h3 { font-size: 1.25rem; }
.step p { color: var(--brown); font-size: .93rem; }
.detail-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.2rem; }
.detail-card { padding: clamp(1.6rem, 3vw, 2.6rem); background: var(--paper); border: 1px solid var(--line); border-radius: 22px; }
.detail-card p:last-child { margin-bottom: 0; }
.check-list { list-style: none; padding: 0; margin: 2rem 0; display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .9rem 2rem; }
.check-list li { position: relative; padding-left: 1.6rem; color: var(--brown); }
.band .check-list li { color: var(--paper); }
.check-list li::before { content: "•"; position: absolute; left: 0; color: var(--gold); font-size: 1.6rem; line-height: 1; }

.page-hero { position: relative; overflow: hidden; padding: clamp(5rem, 10vw, 9rem) 0; background: var(--burgundy-deep); color: var(--paper); }
.page-hero::after { content: ""; position: absolute; right: -120px; bottom: -240px; width: 480px; height: 480px; border: 1px solid rgba(200,163,93,.35); border-radius: 50%; box-shadow: 0 0 0 60px rgba(200,163,93,.05); }
.page-hero .shell { position: relative; z-index: 1; }
.page-hero h1 { max-width: 20ch; font-size: clamp(2.25rem, 4.5vw, 4rem); }
.page-hero .lede { color: rgba(255,250,244,.8); }

.location { display: grid; grid-template-columns: 1.15fr .85fr; background: var(--paper); border: 1px solid var(--line); border-radius: 28px; overflow: hidden; }
.location-copy { padding: clamp(2rem, 5vw, 4rem); }
.location-art { position: relative; min-height: 370px; background: var(--burgundy); }
.location-art::before, .location-art::after { content: ""; position: absolute; border: 1px solid rgba(200,163,93,.55); border-radius: 50%; }
.location-art::before { width: 280px; height: 280px; left: 50%; top: 50%; transform: translate(-50%,-50%); }
.location-art::after { width: 150px; height: 150px; left: 50%; top: 50%; transform: translate(-50%,-50%); }
.location-pin { position: absolute; z-index: 2; left: 50%; top: 50%; transform: translate(-50%,-50%); color: var(--paper); text-align: center; }
.location-pin strong { display: block; font: 3rem/1 var(--serif); }
.location-pin span { font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; }

.article-wrap { width: min(780px, calc(100% - 40px)); margin-inline: auto; }
.article-wrap h2 { max-width: none; margin-top: 3rem; font-size: clamp(1.65rem, 2.8vw, 2.25rem); }
.article-wrap h3 { margin-top: 2.8rem; }
.article-wrap p, .article-wrap li { color: var(--brown); }
.article-wrap blockquote { margin: 2.2rem 0; padding: 1.5rem 1.8rem; background: var(--paper); border-left: 4px solid var(--gold); font-family: var(--serif); font-size: 1.25rem; }
.article-wrap blockquote p { color: var(--ink); }
.article-wrap .template { display: grid; gap: .7rem; padding: 2rem; background: var(--burgundy-deep); color: var(--paper); border-radius: 20px; }
.article-wrap .template p { margin: 0; color: rgba(255,250,244,.86); }
.article-meta { margin-bottom: 2rem; color: var(--gold); font-size: .74rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.sources { margin-top: 5rem; padding-top: 2rem; border-top: 1px solid var(--line); font-size: .88rem; }

.contact-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; }
.contact-card { display: flex; flex-direction: column; min-height: 250px; padding: 2rem; background: var(--paper); border: 1px solid var(--line); border-radius: 22px; }
.contact-card h2 { font-size: 1.5rem; }
.contact-card p { color: var(--brown); }
.contact-card .text-link { margin-top: auto; }
.notice { padding: 1rem 1.2rem; background: #f2e4d5; border-radius: 12px; color: var(--brown); font-size: .88rem; }

.site-footer { background: var(--burgundy-deep); color: var(--paper); }
.footer-grid { display: grid; grid-template-columns: 1.3fr .8fr 1fr; gap: 4rem; padding: 5rem 0 3rem; }
.footer-grid p, .footer-grid address { color: rgba(255,250,244,.68); font-style: normal; font-size: .88rem; }
.footer-grid h2 { font-size: 1rem; font-family: var(--sans); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.footer-links { display: grid; gap: .65rem; }
.footer-links a { width: fit-content; text-decoration: none; font-size: .9rem; }
.footer-bottom { display: flex; justify-content: space-between; gap: 2rem; padding: 1.3rem 0; border-top: 1px solid rgba(255,255,255,.12); color: rgba(255,250,244,.55); font-size: .72rem; }

/* Homepage: wide editorial sequence inspired by the owner's new layout reference. */
.home-page { background: var(--paper); }
.home-announcement { min-height: 34px; display: grid; place-items: center; padding: .35rem 1rem; background: var(--gold); color: var(--burgundy-deep); font-size: .65rem; font-weight: 700; letter-spacing: .16em; line-height: 1.35; text-align: center; text-transform: uppercase; }
.home-header { background: var(--paper); color: var(--burgundy-deep); border-bottom: 1px solid var(--line); }
.home-nav-wrap { min-height: 132px; flex-direction: column; justify-content: center; gap: .8rem; padding-block: .9rem .8rem; }
.home-header .brand { gap: .75rem; }
.home-header .brand img { width: 43px; height: 58px; filter: none; }
.home-header .brand-copy strong { font-size: 1.55rem; text-shadow: none; }
.home-header .brand-copy span { color: var(--burgundy); }
.home-header .site-nav { gap: 1.8rem; font-size: .75rem; }
.home-header .site-nav a[aria-current="page"] { color: var(--burgundy); }
.home-header .site-nav .button { min-height: 34px; padding: .4rem .95rem; background: var(--burgundy-deep); color: var(--paper); font-size: .68rem; }
.home-header .site-nav .button:hover { background: var(--burgundy); }

.home-hero { position: relative; isolation: isolate; min-height: min(720px, 78vw); display: grid; align-items: center; overflow: hidden; background: radial-gradient(circle at 88% 22%, #6a1726, transparent 35%), linear-gradient(135deg, #3d0710, #530d1a 55%, #2b050c); color: var(--paper); }
.home-hero::before { content: ""; position: absolute; z-index: -1; width: 58vw; height: 58vw; max-width: 800px; max-height: 800px; top: -32%; right: -10%; border: 1px solid rgba(200,163,93,.22); border-radius: 50%; box-shadow: 0 0 0 70px rgba(200,163,93,.035), 0 0 0 140px rgba(200,163,93,.03); }
.home-hero::after { content: ""; position: absolute; z-index: -1; width: 50vw; height: 50vw; max-width: 650px; max-height: 650px; left: -19%; bottom: -66%; border: 1px solid rgba(200,163,93,.14); border-radius: 50%; }
.home-hero-line { position: absolute; z-index: -1; top: 51%; left: 50%; width: 100%; transform: translate(-50%, -50%) rotate(-8deg); color: rgba(200,163,93,.13); font: italic clamp(9rem, 24vw, 25rem)/1 var(--serif); letter-spacing: -.08em; text-align: center; white-space: nowrap; pointer-events: none; user-select: none; }
.home-hero-inner { padding-block: 7rem 8rem; text-align: center; }
.home-hero .eyebrow { color: #e5c886; }
.home-hero h1 { max-width: 13ch; margin: 0 auto 1.7rem; font-size: clamp(4.5rem, 9vw, 9rem); line-height: .95; }
.home-hero-inner > p:not(.eyebrow) { max-width: 58ch; margin-inline: auto; color: rgba(255,250,244,.84); font-size: clamp(1rem, 1.35vw, 1.15rem); }
.home-hero-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 1.6rem; margin-top: 2.3rem; }
.home-hero-actions .button { min-height: 50px; }
.home-hero-secondary { color: var(--paper); font-size: .74rem; font-weight: 700; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }
.home-hero-secondary span { margin-left: .3rem; font-size: 1rem; }
.home-hero-bottom { position: absolute; inset: auto 3.5% 2rem; display: flex; justify-content: space-between; gap: 1rem; color: rgba(255,250,244,.65); font-size: .66rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }

.home-occasion { background: var(--paper); }
.home-section-heading { max-width: 720px; margin: 0 auto 3.7rem; text-align: center; }
.home-section-heading .eyebrow { color: var(--burgundy); }
.home-section-heading h2 { max-width: none; margin-bottom: 1.2rem; font-size: clamp(3rem, 6vw, 5.8rem); }
.home-section-heading > p:last-child { max-width: 55ch; margin-inline: auto; color: var(--brown); }
.home-routes { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1rem; }
.home-route { position: relative; display: flex; flex-direction: column; min-height: 430px; padding: clamp(1.5rem, 3vw, 2.3rem); overflow: hidden; color: var(--paper); text-decoration: none; isolation: isolate; }
.home-route::before { content: ""; position: absolute; z-index: -1; width: 70%; aspect-ratio: 1; top: 13%; left: 15%; border: 1px solid rgba(255,250,244,.22); border-radius: 50%; transition: transform .5s ease; }
.home-route:hover::before, .home-route:focus-visible::before { transform: scale(1.13); }
.home-route-one { background: #6d1929; }
.home-route-two { background: #4f372e; }
.home-route-three { background: #8b604d; }
.home-route-number { font-size: .67rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.home-route-symbol { margin: auto; align-self: center; color: rgba(255,250,244,.65); font: 7rem/1 var(--serif); }
.home-route-content { display: grid; gap: .75rem; }
.home-route-content strong { max-width: 12ch; font: 2.3rem/1.04 var(--serif); letter-spacing: -.025em; }
.home-route-content small { max-width: 30ch; font-size: .9rem; line-height: 1.5; }
.home-route-content em { margin-top: .5rem; font-size: .7rem; font-style: normal; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }

.home-editorial { position: relative; overflow: hidden; background: var(--burgundy); color: var(--paper); }
.home-editorial::before { content: ""; position: absolute; width: 60vw; height: 60vw; top: -38vw; right: -12vw; border: 1px solid rgba(200,163,93,.26); border-radius: 50%; }
.home-editorial-inner { position: relative; z-index: 1; max-width: 920px; padding-block: clamp(6rem, 11vw, 11rem); text-align: center; }
.home-editorial h2 { max-width: 15ch; margin-inline: auto; font-size: clamp(3.2rem, 6.7vw, 6.7rem); }
.home-editorial p:not(.eyebrow) { max-width: 55ch; margin: 0 auto 2rem; color: rgba(255,250,244,.82); }

.home-what { background: var(--cream); }
.home-what .home-section-heading { margin-bottom: 4rem; }
.home-what-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.home-what-card { display: flex; flex-direction: column; min-height: 315px; padding: 2rem 2.2rem; border-right: 1px solid var(--line); }
.home-what-card:first-child { padding-left: 0; }
.home-what-card:last-child { border-right: 0; padding-right: 0; }
.home-what-card > span { margin-bottom: 3rem; color: var(--burgundy); font-size: .72rem; font-weight: 700; letter-spacing: .12em; }
.home-what-card h3 { max-width: 14ch; margin-bottom: 1rem; font-size: clamp(1.7rem, 2.5vw, 2.6rem); }
.home-what-card p { max-width: 32ch; color: var(--brown); font-size: .94rem; }
.home-what-card a { margin-top: auto; color: var(--burgundy); font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }

.home-visit { padding-block: clamp(5rem, 9vw, 9rem); background: var(--paper); }
.home-visit-grid { display: grid; grid-template-columns: 1.3fr .7fr; gap: clamp(3rem, 10vw, 9rem); }
.home-visit h2 { max-width: 22ch; font-size: clamp(1.75rem, 3vw, 2.5rem); }
.home-visit-grid > div:first-child > p:not(.eyebrow) { max-width: 48ch; color: var(--brown); }
.home-visit-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1.4rem; margin-top: 2rem; }
.home-visit-details { padding: 2rem 0 2rem 2.5rem; border-left: 1px solid var(--line); }
.home-visit-details address { margin-bottom: 2rem; font: 1.6rem/1.3 var(--serif); }
.home-visit-details p:not(.eyebrow) { color: var(--brown); font-size: .9rem; }

.motion-ready .home-hero-inner > * { animation: rise-in .8s cubic-bezier(.2,.7,.2,1) both; }
.motion-ready .home-hero-inner > :nth-child(2) { animation-delay: .1s; }
.motion-ready .home-hero-inner > :nth-child(3) { animation-delay: .2s; }
.motion-ready .home-hero-inner > :nth-child(4) { animation-delay: .3s; }
.motion-ready .home-route { transition: transform .4s ease; }
.motion-ready .home-route:hover { transform: translateY(-7px); }

/* Closer reference rhythm: quieter type, light mood tiles and an open four-column showcase. */
.home-page { background: #faf9f6; }
.home-announcement { min-height: 38px; background: #e3c8cb; color: #301820; font: 400 13px/1.3 "Cormorant", var(--serif); letter-spacing: .08em; text-transform: uppercase; }
.home-header { background: #faf9f6; }
.home-hero { min-height: 920px; background: linear-gradient(90deg, rgba(28,5,11,.85), rgba(42,8,16,.55) 48%, rgba(20,4,8,.06) 100%), url("../images/home-wine-table-hero.webp") center center / cover no-repeat; }
.home-hero::before, .home-hero::after, .home-hero-line { display: none; }
.home-hero-inner { text-align: left; }
.home-hero h1 { max-width: none; margin-left: 0; margin-bottom: 1.5rem; font-family: "Cormorant", var(--serif); font-size: clamp(2.5rem, 4.6vw, 3.75rem); font-weight: 400; line-height: 1.05; letter-spacing: -.02em; }
.home-hero-inner > p:not(.eyebrow) { margin-left: 0; }
.home-hero-actions { justify-content: flex-start; }
.home-hero-inner > p:not(.eyebrow) { max-width: 58ch; font-size: 1rem; line-height: 1.6; }
.home-banner { min-height: 620px; display: grid; align-items: center; background: linear-gradient(rgba(21,10,10,.5),rgba(21,10,10,.5)), url("../images/home-dining-banner.webp") center center / cover no-repeat; color: var(--paper); text-align: center; }
.home-banner-inner { padding-block: 5rem; }
.home-banner img { width: 58px; height: 126px; object-fit: contain; margin: 0 auto 1rem; filter: brightness(0) invert(1); }
.home-banner .eyebrow { color: #f1ddbb; }
.home-banner h2 { max-width: 24ch; margin: 0 auto 1.25rem; font-family: "Cormorant", var(--serif); font-size: clamp(2rem, 3.75vw, 3rem); line-height: 1.15; }
.home-banner p:last-child { max-width: 42ch; margin-inline: auto; }
.home-narrow { width: min(1000px, calc(100% - 40px)); margin-inline: auto; }
.home-occasion { padding: 56px 0 48px; background: #faf9f6; }
.home-occasion > .shell { width: min(1000px, calc(100% - 40px)); }
.home-section-heading { margin-bottom: 32px; }
.home-section-heading .eyebrow { margin-bottom: .45rem; font-size: .68rem; }
.home-section-heading h2, .home-what .home-section-heading h2 { font: 400 24px/1.3 var(--sans); letter-spacing: 0; }
.home-section-heading > p:last-child { font-size: .93rem; line-height: 1.5; }
.home-routes { gap: 20px; }
.home-route { min-height: 170px; padding: 20px; border-radius: 8px; color: #1e1e1e; }
.home-route::before { display: none; }
.home-route-one { background: #f4f1e8; }
.home-route-two { background: #e3c8cb; }
.home-route-three { background: #c9c1b8; }
.home-route-number { margin-bottom: 1.3rem; color: #584044; font-size: .59rem; }
.home-route-symbol { display: none; }
.home-route-content { gap: .35rem; }
.home-route-content strong { max-width: none; font: 700 14px/1.5 var(--sans); letter-spacing: 0; }
.home-route-content small { max-width: none; font: 400 16px/1.4 var(--sans); }
.home-route-content em { margin-top: .35rem; color: var(--burgundy); font-size: .62rem; }
.motion-ready .home-route:hover { transform: translateY(-3px); }

.home-featured { padding: 52px 0 70px; background: #faf9f6; }
.home-featured-heading { display: flex; justify-content: space-between; align-items: end; gap: 1rem; margin-bottom: 1.7rem; }
.home-featured-heading .eyebrow { margin: 0; color: var(--brown); font-size: .68rem; }
.home-featured-heading h2 { margin: 0; font: 400 24px/1.3 var(--sans); }
.home-featured-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 20px; }
.home-feature { display: flex; flex-direction: column; color: #1e1e1e; text-decoration: none; }
.home-feature-art { position: relative; display: block; width: 100%; aspect-ratio: 1.02; overflow: hidden; border-radius: 6px; background-position: center; background-size: cover; transition: filter .3s ease, transform .3s ease; }
.home-feature:hover .home-feature-art { filter: brightness(.9); transform: translateY(-3px); }
.home-feature-art span { display: none; }
.home-feature-art-one { background-image: url("../images/home-recommendations.webp"); }
.home-feature-art-two { background-image: url("../images/home-corporate-gifts-lafite-clean.webp"); }
.home-feature-art-three { background-image: url("../images/home-private-tasting.webp"); }
.home-feature-art-four { background-image: url("../images/home-horeca.webp"); }
.home-feature strong { margin-top: 1rem; font: 700 14px/1.4 var(--sans); }
.home-feature small { margin-top: .3rem; color: #49403c; font: 400 16px/1.35 var(--sans); }
.home-feature em { margin-top: .75rem; color: var(--burgundy); font-size: .65rem; font-style: normal; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }

.home-editorial { min-height: 570px; display: grid; align-items: center; background: radial-gradient(circle at 18% 18%, #9b4655, transparent 35%), linear-gradient(110deg, #390610, #7d2633 58%, #420814); }
.home-editorial-inner { padding-block: 5rem; }
.home-editorial h2 { max-width: 28ch; font: 400 clamp(2rem, 3.75vw, 3rem)/1.15 "Cormorant", var(--serif); }
.home-social { display: grid; place-items: center; min-height: 92px; background: #f4f1e8; }
.home-social a { color: var(--burgundy-deep); font-size: 16px; text-decoration: none; }
.home-social strong { font-weight: 700; }
.home-what { padding: 58px 0 72px; background: #faf9f6; }
.home-what .home-section-heading { margin-bottom: 50px; }
.home-what-grid { grid-template-columns: repeat(3, minmax(0,1fr)); gap: 20px; border: 0; }
.home-what-card, .home-what-card:first-child, .home-what-card:last-child { align-items: center; min-height: 295px; padding: 0 15px 20px; border: 0; text-align: center; }
.home-what-thumb { width: 95px; height: 116px; margin-bottom: 24px; overflow: hidden; border-radius: 6px; background-position: center; background-size: cover; }
.home-what-thumb span { display: none; }
.home-what-thumb-one { background-image: url("../images/home-recommendations.webp"); }
.home-what-thumb-two { background-image: url("../images/home-corporate-gifts-lafite-clean.webp"); }
.home-what-thumb-three { background-image: url("../images/home-private-tasting.webp"); }
.home-what-card h3 { max-width: none; margin-bottom: .55rem; font: 700 14px/1.5 var(--sans); letter-spacing: 0; text-transform: uppercase; }
.home-what-card p { max-width: 30ch; margin-inline: auto; color: #2e2b29; font: 400 16px/1.6 var(--sans); }
.home-what-card a { margin-top: .35rem; font-size: .62rem; }

@media (max-width: 980px) {
  .nav-toggle { display: inline-flex; }
  .site-nav { display: none; position: absolute; inset: 84px 20px auto; padding: 1.2rem; background: var(--burgundy); border: 1px solid rgba(255,255,255,.15); border-radius: 18px; box-shadow: var(--shadow); flex-direction: column; align-items: stretch; font-size: .9rem; }
  .site-nav[data-open="true"] { display: flex; }
  .site-nav .button { margin-top: .3rem; }
  .hero-grid { min-height: auto; grid-template-columns: 1fr; }
  .hero-copy { padding: 6rem 0 3rem; }
  .hero-art { width: 75%; min-height: 440px; margin: 0 0 4rem auto; }
  .service-panel { grid-template-columns: repeat(2, 1fr); }
  .service-card:nth-child(2) { border-right: 0; }
  .service-card:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .split, .location { grid-template-columns: 1fr; }
  .contact-grid { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-grid > :first-child { grid-column: 1 / -1; }
  .home-nav-wrap { min-height: 86px; flex-direction: row; justify-content: space-between; padding-block: .5rem; }
  .home-header .nav-toggle { color: var(--burgundy-deep); border-color: var(--line); }
  .home-header .site-nav { inset: 86px 20px auto; background: var(--paper); color: var(--burgundy-deep); border-color: var(--line); }
  .home-header .site-nav .button { background: var(--burgundy); color: var(--paper); }
  .home-hero { min-height: 680px; }
  .home-routes { gap: .7rem; }
  .home-route { min-height: 185px; }
  .home-featured-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}

@media (max-width: 640px) {
  body { font-size: 16px; }
  .shell, .article-wrap { width: min(100% - 28px, 1180px); }
  .nav-wrap { min-height: 72px; }
  .site-nav { inset: 72px 14px auto; }
  .brand img { width: 34px; height: 46px; }
  .hero-copy { padding-top: 4.5rem; }
  .hero-art { width: 88%; min-height: 360px; }
  .service-overlap { margin-top: -34px; }
  .service-panel { grid-template-columns: 1fr; border-radius: 22px; }
  .service-card, .service-card:nth-child(2) { min-height: auto; border-right: 0; border-bottom: 1px solid var(--line); }
  .service-card:last-child { border-bottom: 0; }
  .service-card span { margin-bottom: 1.2rem; }
  .split, .split-balanced, .detail-grid, .steps, .check-list, .footer-grid { grid-template-columns: 1fr; }
  .steps { gap: 1px; }
  .location-art { min-height: 290px; order: -1; }
  .footer-grid > :first-child { grid-column: auto; }
  .footer-bottom { flex-direction: column; }
  .actions { align-items: stretch; }
  .actions .button { width: 100%; }
  .home-announcement { min-height: 36px; font-size: 12px; letter-spacing: .04em; }
  .home-nav-wrap { min-height: 74px; }
  .home-header .brand img { width: 32px; height: 45px; }
  .home-header .brand-copy strong { font-size: 1.1rem; }
  .home-header .brand-copy span { font-size: .5rem; letter-spacing: .12em; }
  .home-header .site-nav { inset: 74px 14px auto; }
  .home-hero { min-height: 640px; }
  .home-hero { background-image: linear-gradient(90deg, rgba(28,5,11,.85), rgba(42,8,16,.62)), url("../images/home-wine-table-hero.webp"); background-position: 62% center; }
  .home-hero-inner { padding-block: 6rem 7rem; }
  .home-hero h1 { font-size: clamp(2.5rem, 10.5vw, 3.25rem); }
  .home-hero-line { font-size: 12rem; transform: translate(-50%, -50%) rotate(-12deg); }
  .home-hero-actions { flex-direction: column; gap: 1.2rem; }
  .home-hero-actions .button { width: 100%; }
  .home-hero-bottom { inset-inline: 14px; font-size: .52rem; letter-spacing: .08em; }
  .home-section-heading { margin-bottom: 2.4rem; }
  .home-routes, .home-what-grid, .home-visit-grid { grid-template-columns: 1fr; }
  .home-banner { min-height: 460px; }
  .home-banner h2 { font-size: clamp(2rem, 8vw, 2.5rem); }
  .home-route { min-height: 165px; }
  .home-featured { padding-block: 3rem 4rem; }
  .home-featured-heading { display: block; }
  .home-featured-heading .eyebrow { margin-bottom: .4rem; }
  .home-featured-grid { display: flex; overflow-x: auto; padding-bottom: 1rem; scroll-snap-type: x mandatory; }
  .home-feature { flex: 0 0 min(74vw, 270px); scroll-snap-align: start; }
  .home-what-card, .home-what-card:first-child, .home-what-card:last-child { min-height: 280px; padding: 1.6rem 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .home-what-card:last-child { border-bottom: 0; }
  .home-visit-details { padding: 1.8rem 0 0; border-left: 0; border-top: 1px solid var(--line); }
}

.wine-lead { scroll-margin-top: 1.5rem; background: var(--cream); color: var(--ink); }
.wine-lead .eyebrow { color: var(--burgundy); }
.wine-lead[hidden] { display: none; }
.wine-lead .shell { max-width: 950px; }
.wine-lead h2 { max-width: none; }
.wine-lead-selection { margin-block: 1.5rem; }
.wine-lead-selection label { display: block; margin-bottom: .5rem; font-weight: 700; }
.wine-lead-selection select { width: min(100%, 320px); padding: .8rem; border: 1px solid var(--brown); border-radius: 4px; background: var(--paper); color: var(--ink); font: inherit; }
.wine-lead-selection p, .wine-lead-note { margin-top: .7rem; font-size: .9rem; color: var(--brown); }
.catalogue-feature { display: grid; grid-template-columns: 170px 1fr; align-items: center; gap: 2rem; }
.catalogue-feature img { width: 170px; height: 220px; object-fit: contain; background: #f4f1e8; }
.catalogue-feature h2 { max-width: none; }
.band .catalogue-feature .text-link { color: var(--paper); }
@media (max-width: 640px) { .catalogue-feature { grid-template-columns: 1fr; } }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
  .motion-ready .reveal, .motion-ready .hero-copy > * { opacity: 1; transform: none; }
  .motion-ready .monogram-large { transform: translate(-50%, -50%); }
  .motion-ready .home-hero-inner > * { opacity: 1; transform: none; }
  .motion-ready .home-route:hover { transform: none; }
}
