/* =====================================================================
   THE GRACE VENUE — Sections & Pages
   ===================================================================== */

/* ---------- HOME HERO ---------- */
.hero{position:relative;height:100svh;min-height:640px;overflow:hidden;background:var(--ivory)}
.hero-media{
  --ct:50svh;--cx:calc(50vw - min(14vw,210px));--cr:min(14vw,210px);
  position:absolute;inset:0;z-index:1;overflow:hidden;
  clip-path:inset(var(--ct) var(--cx) 0 var(--cx) round var(--cr) var(--cr) 0 0);
  will-change:clip-path;
}
.hero-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 30%;transform:scale(1.25);transform-origin:50% 60%}
.hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(42,9,16,.05) 30%,rgba(42,9,16,.72));opacity:var(--shade,0)}
.hero-canvas{position:absolute;inset:0;z-index:2;pointer-events:none;width:100%;height:100%}
.hero-title{
  position:absolute;z-index:3;left:0;right:0;top:calc(var(--nav-h) + 6svh);
  text-align:center;padding-inline:var(--gutter);
}
.hero-title .hl{display:block}
.hero-kicker{position:absolute;z-index:3;left:0;right:0;top:calc(var(--nav-h) + 1.2svh);display:flex;justify-content:center}
.hero-float{position:absolute;z-index:2;overflow:hidden;border-radius:14px;box-shadow:0 30px 60px -25px rgba(42,9,16,.45)}
.hero-float img{width:100%;height:100%;object-fit:cover}
.hero-float.f1{left:6vw;bottom:9svh;width:clamp(140px,15vw,230px);aspect-ratio:3/4}
.hero-float.f2{right:6.5vw;bottom:20svh;width:clamp(120px,12.5vw,200px);aspect-ratio:4/5;border-radius:999px 999px 14px 14px}
.hero-float .tag{position:absolute;left:.7rem;bottom:.7rem;font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ivory);background:rgba(42,9,16,.55);backdrop-filter:blur(6px);padding:.4rem .6rem;border-radius:99px}
.hero-meta{
  position:absolute;z-index:3;left:0;right:0;bottom:2.8rem;
  display:flex;justify-content:space-between;align-items:flex-end;padding-inline:var(--gutter);
  font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-soft);pointer-events:none
}
.hero-meta strong{display:block;font-family:var(--serif);font-weight:400;font-size:2rem;letter-spacing:0;text-transform:none;color:var(--wine);line-height:1}
.hero-meta .right{text-align:right}
.scroll-cue{display:grid;justify-items:center;gap:.7rem;color:var(--ivory)}
.scroll-cue i{position:relative;width:1px;height:48px;background:rgba(245,239,230,.35);overflow:hidden}
.scroll-cue i::after{content:"";position:absolute;left:0;top:-50%;width:100%;height:50%;background:var(--ivory);animation:cue 2s var(--ease-io) infinite}
@keyframes cue{to{top:110%}}
.hero-caption{position:absolute;z-index:3;left:0;right:0;bottom:12svh;text-align:center;color:var(--ivory);opacity:0;padding-inline:var(--gutter)}
.hero-caption p{font-family:var(--serif);font-size:clamp(2.2rem,5.4vw,5.2rem);line-height:1}
.hero-caption p em{color:var(--gold-light)}
.hero-caption span{display:block;margin-top:1rem;font-size:.75rem;letter-spacing:.3em;text-transform:uppercase;color:rgba(245,239,230,.8)}
@media (max-width:900px){
  .hero{min-height:600px}
  .hero-media{--ct:46svh;--cx:12vw;--cr:38vw}
  .hero-title{top:calc(var(--nav-h) + 7svh)}
  .hero-kicker{top:calc(var(--nav-h) + 1svh)}
  .hero-kicker .eyebrow{font-size:.6rem;letter-spacing:.2em}
  .hero-float{display:none}
  .hero-meta{display:none}
}

/* ---------- INTRO / ABOUT ---------- */
.statement{font-family:var(--serif);font-size:clamp(1.9rem,4.1vw,3.9rem);line-height:1.12;letter-spacing:-.01em;max-width:22ch;margin-top:2rem}
.statement em{font-style:italic;color:var(--wine)}
.statement .w{opacity:.14;transition:none}
.intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(3rem,7vw,7rem);align-items:center;margin-top:clamp(4rem,8vw,7rem)}
.intro-media{position:relative;height:clamp(520px,62vw,760px)}
.im-a{position:absolute;left:0;top:0;width:66%;height:84%}
.im-b{position:absolute;right:0;bottom:0;width:48%;height:46%;box-shadow:0 40px 70px -30px rgba(42,9,16,.45);border:6px solid var(--ivory)}
.intro-media .badge{position:absolute;right:6%;top:6%;color:var(--wine)}
.intro-copy p+p{margin-top:1.1rem}
.intro-copy>p{color:var(--ink-soft);max-width:48ch}
.stats{display:grid;grid-template-columns:repeat(3,1fr);margin-block:2.6rem;border-block:1px solid var(--line)}
.stat{padding:1.6rem 0 1.4rem;text-align:left}
.stat+.stat{padding-left:1.4rem;border-left:1px solid var(--line)}
.stat b{display:block;font-family:var(--serif);font-weight:400;font-size:clamp(2.4rem,4vw,3.6rem);line-height:1;color:var(--wine)}
.stat span{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.layout-chips{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:2.4rem}
.layout-chips li{padding:.6rem 1rem;border:1px solid var(--line);border-radius:99px;font-size:.86rem}
.layout-chips b{font-weight:500;color:var(--wine)}
@media (max-width:900px){
  .intro-grid{grid-template-columns:1fr}
  .intro-media{height:clamp(420px,110vw,620px)}
}

/* ---------- FLOOR PLAN ---------- */
.fp-tabs{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem;margin-bottom:3rem}
.fp-tab{
  position:relative;display:grid;gap:.15rem;text-align:left;padding:1rem 1.5rem;border-radius:16px;
  border:1px solid var(--line-light);color:rgba(245,239,230,.7);min-width:210px;transition:color .4s,border-color .4s,background .4s;
}
.fp-tab b{font-family:var(--serif);font-weight:400;font-size:1.45rem;color:var(--ivory)}
.fp-tab small{font-size:.68rem;letter-spacing:.22em;text-transform:uppercase}
.fp-tab.is-active{background:var(--ivory);color:var(--wine);border-color:var(--ivory)}
.fp-tab.is-active b{color:var(--wine-deep)}
.fp-stage{display:grid;grid-template-columns:1.45fr 1fr;gap:1.5rem}
.fp-plan{background:var(--wine-mid);border:1px solid var(--line-light);border-radius:var(--radius);padding:1.3rem;display:grid;gap:1rem}
.fp-plan-head{display:flex;justify-content:space-between;gap:1rem;font-size:.64rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-light)}
.fp-plan-head span:last-child{color:rgba(245,239,230,.5)}
.fp-svg{width:100%;height:auto}
.fp-svg text{font-family:var(--sans)}
.fp-layout{display:none}
.fp-layout.is-active{display:inline}
.fp-legend{display:flex;flex-wrap:wrap;gap:.6rem 1.4rem;font-size:.72rem;color:rgba(245,239,230,.65)}
.fp-legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:.45rem;vertical-align:-1px}
.fp-card{background:var(--ivory);color:var(--ink);border-radius:var(--radius);overflow:hidden;display:grid;grid-template-rows:auto 1fr}
.fp-photo{position:relative;aspect-ratio:16/10;overflow:hidden}
.fp-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.fp-photo .pill{position:absolute;left:1rem;bottom:1rem;background:var(--wine);color:var(--ivory);font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;padding:.5rem .85rem;border-radius:99px}
.fp-body{padding:1.8rem;display:grid;gap:1rem;align-content:start}
.fp-body .h3{color:var(--wine-deep)}
.fp-body p{color:var(--ink-soft);font-size:.98rem}
.fp-specs li{display:flex;gap:.7rem;padding:.55rem 0;border-bottom:1px solid var(--line);font-size:.92rem}
.fp-specs li b{font-weight:500;min-width:84px;color:var(--wine)}
@media (max-width:980px){.fp-stage{grid-template-columns:1fr}.fp-tab{min-width:0;flex:1 1 180px}}

/* ---------- EVENTS LIST (hover reveal) ---------- */
.event-list{border-top:1px solid var(--line)}
.event-row{
  position:relative;display:grid;grid-template-columns:4rem 1fr auto auto 3rem;align-items:center;gap:1.5rem;
  padding:1.8rem .6rem;border-bottom:1px solid var(--line);overflow:hidden;isolation:isolate;
  transition:color .5s var(--ease);
}
.event-row::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--wine);transform:scaleY(0);transform-origin:bottom;transition:transform .6s var(--ease)}
.event-row:hover{color:var(--ivory)}
.event-row:hover::before{transform:scaleY(1)}
.er-num{font-size:.72rem;letter-spacing:.22em;color:var(--gold)}
.er-name{font-family:var(--serif);font-size:clamp(2rem,4.4vw,4rem);line-height:1;transition:transform .6s var(--ease)}
.er-name em{font-style:italic}
.event-row:hover .er-name{transform:translateX(1.2rem)}
.er-meta{font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);transition:color .5s}
.event-row:hover .er-meta{color:rgba(245,239,230,.7)}
.er-price{font-family:var(--serif);font-size:1.6rem;color:var(--wine);transition:color .5s;text-align:right;min-width:7.5ch}
.event-row:hover .er-price{color:var(--gold-light)}
.er-arrow{width:3rem;height:3rem;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;transition:transform .6s var(--ease),border-color .5s,background .5s}
.er-arrow svg{width:16px;height:16px}
.event-row:hover .er-arrow{transform:rotate(-45deg);border-color:var(--gold-light);background:var(--gold-light);color:var(--wine-deep)}
.er-thumb{display:none}
.event-preview{position:fixed;left:0;top:0;z-index:60;width:280px;aspect-ratio:3/4;pointer-events:none;border-radius:16px;overflow:hidden;opacity:0;transform:scale(.6);box-shadow:0 40px 70px -25px rgba(42,9,16,.6)}
.event-preview img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
@media (max-width:900px){
  .event-row{grid-template-columns:auto 1fr auto;gap:.4rem 1rem;padding:1.3rem 0}
  .er-num{display:none}
  .er-thumb{display:block;width:64px;height:80px;border-radius:10px;overflow:hidden;grid-row:span 2}
  .er-thumb img{width:100%;height:100%;object-fit:cover}
  .er-meta{grid-column:2;grid-row:2;font-size:.64rem}
  .er-price{grid-column:3;grid-row:1/3;font-size:1.3rem}
  .er-arrow{display:none}
  .event-preview{display:none}
}

/* ---------- HORIZONTAL DIFFERENCE ---------- */
.hs{position:relative;overflow:hidden}
.hs-pin{height:100svh;display:flex;align-items:center}
.hs-track{display:flex;gap:1.5rem;padding-inline:var(--gutter);will-change:transform}
.hs-intro{flex:0 0 min(560px,86vw);padding-right:3rem;display:grid;gap:1.6rem;align-content:center}
.hs-progress{height:1px;background:var(--line-light);width:220px;position:relative;margin-top:1rem}
.hs-progress i{position:absolute;inset:0;background:var(--gold);transform-origin:left;transform:scaleX(0)}
.diff-card{
  flex:0 0 clamp(300px,28vw,400px);height:min(62svh,520px);border:1px solid var(--line-light);border-radius:var(--radius);
  padding:2.2rem;display:flex;flex-direction:column;justify-content:space-between;gap:2rem;position:relative;overflow:hidden;
  background:linear-gradient(160deg,rgba(245,239,230,.04),rgba(245,239,230,0));
  transition:border-color .5s,background .6s var(--ease);
}
.diff-card:hover{border-color:rgba(221,197,155,.5);background:linear-gradient(160deg,rgba(221,197,155,.12),rgba(245,239,230,0))}
.dc-top{display:flex;justify-content:space-between;align-items:flex-start}
.dc-num{font-family:var(--serif);font-size:4.6rem;line-height:.8;color:rgba(221,197,155,.28)}
.diff-card svg{width:56px;height:56px;color:var(--gold-light)}
.diff-card svg *{fill:none;stroke:currentColor;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}
.diff-card h3{margin-bottom:.8rem}
.diff-card p{color:rgba(245,239,230,.72);font-size:.98rem}
.diff-card--img{padding:0;border:0}
.diff-card--img img{width:100%;height:100%;object-fit:cover}
@media (max-width:900px){
  .hs-pin{height:auto;display:block;padding-block:5rem}
  .hs-track{flex-direction:column}
  .hs-intro{flex:none;padding:0 0 1rem}
  .hs-progress{display:none}
  .diff-card{flex:none;height:auto;min-height:0}
  .diff-card--img{height:60vw}
}

/* ---------- GALLERY TEASER (column parallax) ---------- */
.cols{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;align-items:start}
.col{display:grid;gap:1.4rem}
.col:nth-child(2){margin-top:12vh}
.g-item{position:relative;display:block;border-radius:var(--radius);overflow:hidden}
.g-item img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease),filter .8s}
.g-item:hover img{transform:scale(1.06)}
.g-item .cap{position:absolute;left:1rem;right:1rem;bottom:1rem;display:flex;justify-content:space-between;align-items:center;color:var(--ivory);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;opacity:0;transform:translateY(10px);transition:all .6s var(--ease)}
.g-item::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(42,9,16,.7));opacity:0;transition:opacity .6s}
.g-item:hover::after{opacity:1}
.g-item:hover .cap{opacity:1;transform:none}
.g-item .cap{z-index:2}
.ratio-tall{aspect-ratio:3/4}
.ratio-sq{aspect-ratio:1}
.ratio-wide{aspect-ratio:4/3}
@media (max-width:760px){
  .cols{grid-template-columns:1fr 1fr;gap:.8rem}
  .col{gap:.8rem}
  .col:nth-child(3){display:none}
  .col:nth-child(2){margin-top:3rem}
}

/* ---------- BANNER (parallax) ---------- */
.banner{position:relative;min-height:110svh;display:grid;place-items:center;overflow:hidden;color:var(--ivory);text-align:center}
.banner-media{position:absolute;inset:-12% 0;z-index:0}
.banner-media img{width:100%;height:100%;object-fit:cover}
.banner::before{content:"";position:absolute;inset:0;z-index:1;background:radial-gradient(ellipse at center,rgba(42,9,16,.45),rgba(42,9,16,.82))}
.banner-content{position:relative;z-index:2;display:grid;justify-items:center;gap:2rem;padding:var(--gutter)}
.banner .display em{color:var(--gold-light)}
.banner--short{min-height:80svh}

/* ---------- PRICING ---------- */
.rates{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}
.rate-card{background:var(--ivory);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(1.6rem,3vw,2.6rem);transition:transform .6s var(--ease),box-shadow .6s var(--ease)}
.rate-card:hover{transform:translateY(-6px);box-shadow:0 40px 60px -40px rgba(42,9,16,.4)}
.rate-card .h3{margin-bottom:.4rem}
.rate-card>p{color:var(--muted);font-size:.95rem;margin-bottom:1.6rem}
.rate-group{font-size:.66rem;letter-spacing:.26em;text-transform:uppercase;color:var(--gold);margin:1.4rem 0 .2rem}
.rate-row{display:flex;align-items:baseline;gap:.8rem;padding:.85rem 0;border-bottom:1px solid var(--line)}
.rate-row:last-child{border-bottom:0}
.rate-row span{white-space:nowrap}
.rate-row span small{color:var(--muted);font-size:.8rem;margin-left:.3rem}
.rate-row i{flex:1;border-bottom:1px dotted rgba(31,22,19,.25);transform:translateY(-.3em)}
.rate-row strong{font-family:var(--serif);font-weight:400;font-size:1.55rem;color:var(--wine);white-space:nowrap}
.rate-row.is-peak{background:linear-gradient(90deg,rgba(184,146,90,.14),transparent);margin-inline:-1rem;padding-inline:1rem;border-radius:10px}
.rate-row .tag{font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;background:var(--wine);color:var(--ivory);padding:.3rem .55rem;border-radius:99px;margin-left:.5rem;vertical-align:.2em}
@media (max-width:860px){.rates{grid-template-columns:1fr}}
@media (max-width:420px){.rate-row span small{display:block;margin:0}}

/* Estimator */
.est{margin-top:clamp(3rem,6vw,5rem);display:grid;grid-template-columns:1.2fr 1fr;border-radius:calc(var(--radius) + 6px);overflow:hidden;border:1px solid var(--line);background:var(--ivory)}
.est-controls{padding:clamp(1.6rem,3.5vw,3rem);display:grid;gap:2rem;align-content:start}
.est-step{display:grid;gap:.9rem}
.est-step>span{font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold)}
.est-select{position:relative}
.est-select select{width:100%;padding:1.05rem 3rem 1.05rem 1.2rem;border:1px solid var(--line);border-radius:14px;background:var(--paper);-webkit-appearance:none;appearance:none;font-size:1rem;transition:border-color .3s}
.est-select select:focus{border-color:var(--wine);outline:none}
.est-select::after{content:"";position:absolute;right:1.2rem;top:50%;width:8px;height:8px;border-right:1.5px solid var(--wine);border-bottom:1.5px solid var(--wine);transform:translateY(-70%) rotate(45deg);pointer-events:none}
.stepper{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:99px;background:var(--paper);width:max-content}
.stepper button{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;font-size:1.3rem;color:var(--wine);transition:background .3s}
.stepper button:hover{background:var(--sand)}
.stepper output{min-width:5.5rem;text-align:center;font-family:var(--serif);font-size:1.5rem}
.stepper output small{font-family:var(--sans);font-size:.72rem;color:var(--muted);margin-left:.2rem}
.est-result{background:var(--wine);color:var(--ivory);padding:clamp(1.6rem,3.5vw,3rem);display:flex;flex-direction:column;justify-content:space-between;gap:2rem;position:relative;overflow:hidden}
.est-result::before{content:"";position:absolute;width:420px;height:420px;border-radius:50%;right:-160px;top:-160px;border:1px solid rgba(221,197,155,.2);box-shadow:0 0 0 40px rgba(221,197,155,.04),0 0 0 80px rgba(221,197,155,.03)}
.est-result .eyebrow{color:var(--gold-light)}
.est-total{font-family:var(--serif);font-size:clamp(4rem,8vw,6.6rem);line-height:.9;font-variant-numeric:tabular-nums}
.est-lines{display:grid;gap:.1rem;font-size:.92rem}
.est-lines div{display:flex;justify-content:space-between;padding:.6rem 0;border-bottom:1px solid var(--line-light);color:rgba(245,239,230,.78)}
.est-lines div.retainer{color:var(--gold-light);font-weight:500;border-bottom:0}
.est-note{font-size:.78rem;color:rgba(245,239,230,.55)}
@media (max-width:900px){.est{grid-template-columns:1fr}}

/* Steps timeline */
.steps{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;margin-top:clamp(4rem,7vw,6rem);padding-top:3rem}
.steps-line{position:absolute;left:0;right:0;top:0;height:1px;background:var(--line)}
.steps-line i{position:absolute;inset:0;background:var(--wine);transform-origin:left;transform:scaleX(0)}
.step{position:relative}
.step::before{content:"";position:absolute;top:calc(-3rem - 6px);left:0;width:13px;height:13px;border-radius:50%;background:var(--ivory);border:1px solid var(--wine)}
.paper .step::before{background:var(--paper)}
.step b{display:block;font-family:var(--serif);font-weight:400;font-size:3rem;line-height:1;color:var(--gold);margin-bottom:.8rem}
.step h4{font-family:var(--serif);font-weight:400;font-size:1.55rem;margin-bottom:.5rem}
.step p{font-size:.95rem;color:var(--ink-soft)}
@media (max-width:900px){
  .steps{grid-template-columns:1fr 1fr;padding-top:0}
  .steps-line,.step::before{display:none}
}
@media (max-width:520px){.steps{grid-template-columns:1fr}}

/* ---------- FAQ ---------- */
.faq-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(2rem,6vw,6rem);align-items:start}
.faq-side{position:sticky;top:calc(var(--nav-h) + 2rem);display:grid;gap:1.6rem}
.faq-item{border-bottom:1px solid var(--line)}
.faq-item:first-child{border-top:1px solid var(--line)}
.faq-q{width:100%;display:flex;justify-content:space-between;align-items:center;gap:1.5rem;padding:1.6rem 0;text-align:left;font-family:var(--serif);font-size:clamp(1.35rem,2vw,1.8rem);line-height:1.2;transition:color .3s}
.faq-q:hover{color:var(--wine)}
.faq-icon{flex:none;position:relative;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);transition:background .5s var(--ease),border-color .5s,transform .6s var(--ease)}
.faq-icon::before,.faq-icon::after{content:"";position:absolute;left:50%;top:50%;width:14px;height:1.5px;background:currentColor;transform:translate(-50%,-50%);transition:transform .6s var(--ease)}
.faq-icon::after{transform:translate(-50%,-50%) rotate(90deg)}
.faq-item.is-open .faq-icon{background:var(--wine);border-color:var(--wine);color:var(--ivory);transform:rotate(180deg)}
.faq-item.is-open .faq-icon::after{transform:translate(-50%,-50%) rotate(0)}
.faq-a{height:0;overflow:hidden}
.faq-a p{padding:0 3.5rem 1.8rem 0;color:var(--ink-soft);max-width:60ch}
@media (max-width:900px){.faq-grid{grid-template-columns:1fr}.faq-side{position:static}}

/* ---------- CONTACT ---------- */
.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;border-radius:calc(var(--radius) + 6px);overflow:hidden;background:var(--paper);border:1px solid var(--line)}
.contact-info{background:var(--wine);color:var(--ivory);padding:clamp(2rem,4vw,3.5rem);display:flex;flex-direction:column;gap:2.4rem;position:relative;overflow:hidden}
.contact-info .title{font-size:clamp(2.4rem,4.4vw,4.2rem)}
.contact-info::after{content:"";position:absolute;right:-30%;bottom:-40%;width:90%;aspect-ratio:1;border-radius:50%;border:1px solid rgba(221,197,155,.18);box-shadow:0 0 0 50px rgba(221,197,155,.03)}
.c-details{display:grid;gap:1.4rem;position:relative;z-index:1}
.c-detail small{display:block;font-size:.66rem;letter-spacing:.26em;text-transform:uppercase;color:var(--gold-light);margin-bottom:.3rem}
.c-detail a,.c-detail p{font-family:var(--serif);font-size:1.5rem;line-height:1.2}
.c-detail a{background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .6s var(--ease)}
.c-detail a:hover{background-size:100% 1px}
.contact-form{padding:clamp(2rem,4vw,3.5rem);display:grid;gap:2rem}
.map{position:relative;height:clamp(320px,40vw,460px);overflow:hidden}
.map iframe{width:100%;height:100%;border:0;filter:grayscale(.55) sepia(.25) contrast(1.05)}
@media (max-width:900px){.contact-grid{grid-template-columns:1fr}}

/* ---------- INNER PAGE HERO ---------- */
.page-hero{position:relative;padding-top:calc(var(--nav-h) + clamp(3rem,8vw,6rem));background:var(--ivory)}
.ph-top{display:grid;grid-template-columns:1.3fr .7fr;align-items:end;gap:2rem 4rem;padding-bottom:clamp(2.5rem,5vw,4rem)}
.ph-top .eyebrow{grid-column:1/-1}
.ph-top .lead{justify-self:end}
.ph-media{margin-inline:var(--gutter);height:clamp(340px,62svh,680px);border-radius:var(--radius);overflow:hidden;position:relative}
.ph-media img{position:absolute;left:0;top:-10%;width:100%;height:120%;object-fit:cover}
.ph-crumbs{display:flex;gap:.6rem;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-top:1.4rem}
.ph-crumbs a:hover{color:var(--wine)}
.page-hero--text{padding-bottom:clamp(2rem,5vw,4rem);border-bottom:1px solid var(--line)}
@media (max-width:860px){.ph-top{grid-template-columns:1fr}.ph-top .lead{justify-self:start}}

/* ---------- ABOUT PAGE ---------- */
.story{display:grid;grid-template-columns:1fr 1fr;gap:clamp(3rem,7vw,7rem);align-items:center}
.story-media{position:relative;aspect-ratio:4/5}
.story-media .reveal-img{position:absolute;inset:0}
.story-copy{display:grid;gap:1.4rem}
.story-copy p{color:var(--ink-soft);max-width:50ch}
.ticks{display:grid;gap:.2rem;margin-block:.6rem 1rem}
.ticks li{display:flex;gap:.9rem;align-items:baseline;padding:.8rem 0;border-bottom:1px solid var(--line)}
.ticks li::before{content:"";flex:none;width:7px;height:7px;background:var(--gold);transform:rotate(45deg) translateY(-2px)}
.specs{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.spec{border:1px solid var(--line);border-radius:var(--radius);padding:2.4rem 2rem;background:var(--paper);display:grid;gap:.8rem;transition:background .6s var(--ease),color .6s,transform .6s var(--ease)}
.spec:hover{background:var(--wine);color:var(--ivory);transform:translateY(-8px)}
.spec b{font-family:var(--serif);font-weight:400;font-size:clamp(3rem,5vw,4.4rem);line-height:1;color:var(--wine);transition:color .6s}
.spec:hover b{color:var(--gold-light)}
.spec small{font-size:.66rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold)}
.spec p{color:inherit;opacity:.8;font-size:.96rem}
.interior{display:grid;grid-template-columns:repeat(12,1fr);gap:1.4rem}
.interior .g-item:nth-child(1){grid-column:1/8;aspect-ratio:4/3}
.interior .g-item:nth-child(2){grid-column:8/13;aspect-ratio:3/4;margin-top:6rem}
.interior .g-item:nth-child(3){grid-column:1/6;aspect-ratio:3/4;margin-top:-6rem}
.interior .g-item:nth-child(4){grid-column:6/13;aspect-ratio:4/3}
.interior .g-item .cap{opacity:1;transform:none}
.interior .g-item::after{opacity:.8}
@media (max-width:860px){
  .story{grid-template-columns:1fr}
  .specs{grid-template-columns:1fr}
  .interior{grid-template-columns:1fr 1fr}
  .interior .g-item:nth-child(n){grid-column:auto;margin-top:0;aspect-ratio:3/4}
}

/* ---------- PACKAGES PAGE (stacking cards) ---------- */
.stack{display:grid;gap:2rem}
.pkg{
  position:sticky;top:calc(var(--nav-h) + 1.2rem);
  display:grid;grid-template-columns:1fr 1.1fr;min-height:min(78svh,640px);
  background:var(--paper);border:1px solid var(--line);border-radius:calc(var(--radius) + 6px);overflow:hidden;
  transform-origin:50% 0;box-shadow:0 -20px 50px -40px rgba(42,9,16,.4);
}
.pkg:nth-child(even){background:var(--ivory)}
.pkg.is-featured{background:var(--wine);color:var(--ivory);border-color:var(--wine)}
.pkg-media{position:relative;overflow:hidden}
.pkg-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.pkg-media .num{position:absolute;left:1.4rem;top:1.2rem;font-family:var(--serif);font-size:5rem;line-height:1;color:var(--ivory);text-shadow:0 10px 30px rgba(0,0,0,.3)}
.pkg-body{padding:clamp(1.8rem,4vw,3.6rem);display:flex;flex-direction:column;justify-content:center;gap:1.3rem}
.pkg-price{display:flex;align-items:baseline;gap:1rem;flex-wrap:wrap}
.pkg-price b{font-family:var(--serif);font-weight:400;font-size:clamp(2.6rem,4vw,3.6rem);line-height:1;color:var(--wine)}
.pkg.is-featured .pkg-price b{color:var(--gold-light)}
.pkg-price span{font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;border:1px solid currentColor;border-radius:99px;padding:.4rem .8rem;opacity:.75}
.pkg-body>p{color:var(--ink-soft);max-width:52ch}
.pkg.is-featured .pkg-body>p{color:rgba(245,239,230,.8)}
.pkg .ticks li{border-color:var(--line);font-size:.95rem;padding:.55rem 0}
.pkg.is-featured .ticks li{border-color:var(--line-light)}
.pkg .flag{align-self:flex-start;font-size:.64rem;letter-spacing:.24em;text-transform:uppercase;background:var(--gold);color:var(--wine-deep);padding:.45rem .8rem;border-radius:99px}
@media (max-width:860px){
  .pkg{grid-template-columns:1fr;position:relative;top:auto;min-height:0}
  .pkg-media{aspect-ratio:4/3}
}
.addons{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.addon{border:1px solid var(--line-light);border-radius:var(--radius);padding:2.4rem 2rem;display:grid;gap:.8rem;transition:background .5s,border-color .5s}
.addon:hover{background:rgba(221,197,155,.08);border-color:rgba(221,197,155,.4)}
.addon svg{width:44px;height:44px;color:var(--gold-light)}
.addon svg *{fill:none;stroke:currentColor;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}
.addon b{font-family:var(--serif);font-weight:400;font-size:2.8rem;line-height:1;color:var(--gold-light)}
.addon p{color:rgba(245,239,230,.72)}
@media (max-width:860px){.addons{grid-template-columns:1fr}}

/* ---------- GALLERY PAGE ---------- */
.filters{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;margin-bottom:3rem}
.filter{position:relative;padding:.8rem 1.4rem;border-radius:99px;border:1px solid var(--line);font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;transition:color .4s,border-color .4s;overflow:hidden;isolation:isolate}
.filter::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--wine);transform:scale(0);border-radius:99px;transition:transform .5s var(--ease)}
.filter.is-active{color:var(--ivory);border-color:var(--wine)}
.filter.is-active::before{transform:scale(1)}
.filter sup{font-size:.6rem;margin-left:.3rem;opacity:.7}
.masonry{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:clamp(160px,18vw,260px);grid-auto-flow:dense;gap:1rem}
.masonry .g-item{height:100%}
.masonry .tall{grid-row:span 2}
.masonry .wide{grid-column:span 2}
.masonry .big{grid-column:span 2;grid-row:span 2}
.masonry .g-item.is-hidden{display:none}
.masonry .g-item .badge-note{position:absolute;z-index:2;right:.8rem;top:.8rem;font-size:.58rem;letter-spacing:.18em;text-transform:uppercase;background:rgba(245,239,230,.9);color:var(--wine);padding:.35rem .6rem;border-radius:99px}
@media (max-width:900px){.masonry{grid-template-columns:repeat(2,1fr);grid-auto-rows:42vw}}

/* ---------- POLICY / LEGAL ---------- */
.policy{display:grid;grid-template-columns:260px 1fr;gap:clamp(2rem,6vw,6rem);align-items:start}
.toc{position:sticky;top:calc(var(--nav-h) + 2rem);display:grid;gap:.2rem}
.toc small{font-size:.66rem;letter-spacing:.26em;text-transform:uppercase;color:var(--gold);margin-bottom:.8rem}
.toc a{padding:.5rem 0 .5rem 1rem;border-left:1px solid var(--line);font-size:.92rem;color:var(--muted);transition:color .3s,border-color .3s}
.toc a:hover,.toc a.is-active{color:var(--wine);border-color:var(--wine)}
.prose{max-width:72ch}
.prose .updated{font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:2.5rem}
.prose h2{font-family:var(--serif);font-weight:400;font-size:clamp(1.9rem,3vw,2.6rem);line-height:1.1;margin:3.4rem 0 1.1rem;scroll-margin-top:calc(var(--nav-h) + 1.5rem)}
.prose h2:first-of-type{margin-top:0}
.prose h3{font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;font-weight:500;color:var(--wine);margin:1.8rem 0 .6rem}
.prose p,.prose li{color:var(--ink-soft)}
.prose p+p{margin-top:1rem}
.prose ul{margin:1rem 0;display:grid;gap:.2rem}
.prose li{position:relative;padding:.6rem 0 .6rem 1.6rem;border-bottom:1px solid var(--line)}
.prose li::before{content:"";position:absolute;left:0;top:1.2rem;width:6px;height:6px;background:var(--gold);transform:rotate(45deg)}
.prose strong{color:var(--ink);font-weight:500}
.prose a{color:var(--wine);background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat}
@media (max-width:900px){.policy{grid-template-columns:1fr}.toc{position:static;display:none}}

/* ---------- CONTACT PAGE ---------- */
.how{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:clamp(3rem,6vw,5rem)}
.how div{padding:2rem;border-top:1px solid var(--wine)}
.how b{font-family:var(--serif);font-weight:400;font-size:2.6rem;color:var(--gold);display:block;line-height:1;margin-bottom:.8rem}
.how h4{font-family:var(--serif);font-weight:400;font-size:1.5rem;margin-bottom:.4rem}
.how p{color:var(--ink-soft);font-size:.95rem}
@media (max-width:760px){.how{grid-template-columns:1fr}}

/* ---------- Contrast fixes for light-on-dark contexts ---------- */
.contact-info .eyebrow,.banner .eyebrow,.footer .eyebrow,.menu .eyebrow{color:var(--gold-light)}
.contact-info .title em{color:var(--gold-light)}
.fp-card .eyebrow{color:var(--wine)}
.gallery-head{margin-bottom:clamp(4rem,9vw,8rem)}
.pkg.is-featured .title em{color:var(--gold-light)}
.pkg.is-featured .ticks li::before{background:var(--gold-light)}
.fp-card .h3 em{color:var(--wine)}

/* =====================================================================
   v2.1 — additions
   ===================================================================== */

/* Hero accent word: slow champagne shimmer */
.hero-title em{
  background:linear-gradient(100deg,var(--wine) 0%,var(--wine) 40%,#B8925A 50%,var(--wine) 60%,var(--wine) 100%);
  background-size:250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;
  animation:shimmer 6s var(--ease-io) infinite;padding-right:.08em
}
@keyframes shimmer{0%{background-position:100% 0}60%,100%{background-position:-50% 0}}

/* Tighter difference cards */
.diff-card{height:min(54svh,460px)}

/* ---------- Floating "Book a tour" badge ---------- */
.fab{
  position:fixed;right:clamp(1rem,2.4vw,2rem);bottom:clamp(1rem,2.4vw,2rem);z-index:100;
  width:118px;height:118px;border-radius:50%;display:grid;place-items:center;
  background:var(--wine);color:var(--ivory);box-shadow:0 20px 40px -18px rgba(42,9,16,.6);
  transform:scale(0);pointer-events:none;
}
.fab.is-shown{pointer-events:auto}
.fab-ring{position:absolute;inset:0;width:100%;height:100%;animation:spin 16s linear infinite}
.fab-ring text{font-family:var(--sans);font-size:9.2px;letter-spacing:2.6px;text-transform:uppercase;fill:var(--gold-light);font-weight:500}
.fab-core{width:44px;height:44px;border-radius:50%;background:var(--gold);color:var(--wine-deep);display:grid;place-items:center;transition:transform .6s var(--ease),background .4s}
.fab-core svg{width:18px;height:18px}
.fab:hover .fab-core{transform:scale(1.25) rotate(45deg);background:var(--gold-light)}
.fab:hover .fab-ring{animation-duration:5s}
@keyframes spin{to{transform:rotate(360deg)}}
.menu-open .fab{opacity:0;pointer-events:none}
@media (max-width:700px){.fab{width:78px;height:78px}.fab-core{width:30px;height:30px}.fab-ring text{font-size:10.5px;letter-spacing:1.8px}}

/* ---------- About: scroll-told chapters ---------- */
.chapters{position:relative;padding-block:clamp(3rem,6vw,5rem)}
.chapters-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(3rem,7vw,7rem)}
.ch-media{position:sticky;top:0;height:100svh;display:flex;flex-direction:column;justify-content:center;gap:1.4rem;padding-top:var(--nav-h)}
.ch-frame{position:relative;height:min(72svh,720px);border-radius:999px 999px var(--radius) var(--radius);overflow:hidden;background:var(--sand)}
.ch-frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;clip-path:inset(100% 0 0 0);transform:scale(1.2)}
.ch-frame img.is-on{clip-path:inset(0 0 0 0);transform:scale(1)}
.ch-count{display:flex;align-items:center;gap:1rem;font-family:var(--serif);font-size:1.4rem;color:var(--wine)}
.ch-count i{flex:0 0 80px;height:1px;background:var(--line);position:relative;overflow:hidden}
.ch-count i::after{content:"";position:absolute;inset:0;background:var(--wine);transform-origin:left;transform:scaleX(var(--p,0));transition:transform .4s var(--ease)}
.ch-list{display:grid}
.chapter{min-height:100svh;display:flex;flex-direction:column;justify-content:center;gap:1.6rem;padding-block:4rem}
.chapter .lead{max-width:40ch;font-size:clamp(1.2rem,1.7vw,1.5rem);color:var(--ink-soft)}
.ch-inline{display:none}
@media (max-width:900px){
  .chapters-grid{grid-template-columns:1fr}
  .ch-media{display:none}
  .chapter{min-height:0;padding-block:2.5rem}
  .ch-inline{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:999px 999px var(--radius) var(--radius)}
}

/* ---------- Form: shell, estimate chip, honeypot, spinner ---------- */
.form-shell{position:relative;display:grid}
.form-shell>*{grid-area:1/1}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.est-chip{display:flex;align-items:center;gap:.8rem;padding:.8rem 1rem;border:1px solid rgba(184,146,90,.5);background:rgba(184,146,90,.1);border-radius:14px;font-size:.9rem}
.est-chip[hidden]{display:none}
.est-chip-icon{color:var(--gold);flex:none;width:16px;height:16px}
.est-chip-icon svg{width:16px;height:16px}
.est-chip-text{flex:1}
.est-chip-text b{font-weight:500;color:var(--wine)}
.est-chip-x{width:28px;height:28px;border-radius:50%;font-size:1.2rem;line-height:1;color:var(--muted);transition:background .3s,color .3s}
.est-chip-x:hover{background:var(--wine);color:var(--ivory)}
.btn-spinner{display:none;width:16px;height:16px;border-radius:50%;border:1.5px solid rgba(245,239,230,.35);border-top-color:var(--ivory);animation:spin .8s linear infinite}
.is-sending .btn-spinner{display:block}
.is-sending .submit-btn>svg{display:none}
.is-sending .submit-btn{pointer-events:none;opacity:.85}
.form-msg a{text-decoration:underline}

/* ---------- Success state ---------- */
.form-success{padding:clamp(2rem,4vw,3.5rem);display:flex;flex-direction:column;justify-content:center;gap:1.3rem;outline:none}
.form-success[hidden]{display:none}
.form-success .title{font-size:clamp(2.2rem,4vw,3.6rem)}
.form-success .lead{max-width:44ch}
.fs-mark{position:relative;width:96px;height:120px;margin-bottom:.6rem}
.fs-mark svg{width:100%;height:100%;overflow:visible}
.fs-mark path{fill:none;stroke-linecap:round;stroke-linejoin:round}
.fs-arch{stroke:var(--gold);stroke-width:1.5}
.fs-check{stroke:var(--wine);stroke-width:3}
.fs-sparks{position:absolute;left:50%;top:55%;width:0;height:0}
.fs-sparks i{position:absolute;left:0;top:0;width:10px;height:10px;margin:-5px 0 0 -5px;color:var(--gold)}
.fs-sparks i svg{width:100%;height:100%}

/* ---------- Thank-you page ---------- */
.thanks{min-height:78svh;display:grid;align-items:center}
.thanks-inner .form-success{padding:0;max-width:860px}
.thanks-inner .display{font-size:clamp(3rem,7vw,6.4rem)}

/* Footer letters react to the cursor */
.footer-word span{transition:color .5s var(--ease)}
.footer-word span.is-near{color:var(--rose)}
.contact-form[hidden]{display:none}

/* =====================================================================
   v2.2 — additions
   ===================================================================== */

/* ---------- Zoom-through type ---------- */
.zoom{position:relative;background:var(--ivory)}
.zoom-stage{position:relative;height:100svh;overflow:hidden}
.zoom-media{position:absolute;inset:0}
.zoom-media img{width:100%;height:100%;object-fit:cover;object-position:50% 45%;transform:scale(1.3)}
.zoom-shade{position:absolute;inset:0;background:radial-gradient(ellipse at center,rgba(42,9,16,.35),rgba(42,9,16,.82));opacity:0}
.zoom-canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.zm-cover{fill:var(--ivory)}
.zm-text{font-family:var(--serif);font-style:italic;letter-spacing:-.02em}
.zoom-kicker{position:absolute;left:0;right:0;top:calc(50% - var(--fs,200px) * .72);justify-content:center;display:flex}
.zoom-kicker::after{content:"";width:28px;height:1px;background:currentColor;opacity:.6}
.zoom-sub{position:absolute;left:0;right:0;top:calc(50% + var(--fs,200px) * .58);text-align:center;font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);padding-inline:var(--gutter)}
.zoom-content{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:2rem;text-align:center;color:var(--ivory);padding:var(--gutter);opacity:0;pointer-events:none}
.zoom-content.is-live{pointer-events:auto}
.zoom-content .eyebrow{color:var(--gold-light)}
.zoom-content .display em{color:var(--gold-light)}
.hero-arch-line{position:absolute;z-index:1;pointer-events:none;overflow:visible}
.hero-arch-line path{fill:none;stroke:var(--gold);stroke-width:1;opacity:.85}
.hero-title .ln{perspective:600px}
.hero-title .wd{transform-style:preserve-3d}
/* While the hero title is split into animated words, the accent word stays solid wine;
   the shimmer (background-clip:text) starts once the title is back to plain text. */
.hero-title.is-splitting em{background:none;animation:none;color:var(--wine);-webkit-text-fill-color:var(--wine)}

/* ---------- Cursor spotlight ---------- */
.dark,.contact-info{background-image:radial-gradient(560px circle at var(--mx,-999px) var(--my,-999px),rgba(221,197,155,.08),transparent 60%)}
.diff-card,.rate-card,.spec,.addon{position:relative;isolation:isolate}
.diff-card::after,.rate-card::after,.spec::after,.addon::after{
  content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .5s;
  background:radial-gradient(320px circle at var(--mx,50%) var(--my,50%),rgba(221,197,155,.16),transparent 65%)
}
.rate-card::after,.spec::after{background:radial-gradient(320px circle at var(--mx,50%) var(--my,50%),rgba(184,146,90,.14),transparent 65%)}
.diff-card:hover::after,.rate-card:hover::after,.spec:hover::after,.addon:hover::after{opacity:1}
.g-item{will-change:transform}

/* ---------- Scrollbar ---------- */
html{scrollbar-width:thin;scrollbar-color:var(--wine) var(--ivory)}
::-webkit-scrollbar{width:9px;height:9px}
::-webkit-scrollbar-track{background:var(--ivory)}
::-webkit-scrollbar-thumb{background:var(--wine);border-radius:9px;border:2px solid var(--ivory)}
::-webkit-scrollbar-thumb:hover{background:var(--gold)}

/* =====================================================================
   v2.3 — Logo, Journal (blog), articles, before/after compare
   ===================================================================== */

/* ---------- Logo ---------- */
.logo--img{display:block;height:92px;position:relative;flex-shrink:0;transition:height .5s var(--ease)}
.logo--img img{height:100%;width:auto;display:block}
.logo--img .logo-light{position:absolute;left:0;top:0;opacity:0;transition:opacity .4s}
.nav.is-scrolled .logo--img{height:68px}
.menu-open .logo--img .logo-dark{opacity:0}
.menu-open .logo--img .logo-light{opacity:1}
@media (max-width:700px){:root{--nav-h:88px}.logo--img{height:76px}.nav.is-scrolled .logo--img{height:64px}.nav .wrap{gap:1rem}}
.footer-logo{height:64px;width:auto;opacity:.9}
.footer-bottom{align-items:center}

/* ---------- Journal cards ---------- */
.j-card{display:flex;flex-direction:column;gap:1.4rem}
.j-media{display:block;position:relative;overflow:hidden;border-radius:var(--radius);aspect-ratio:4/3;background:var(--sand)}
.j-media img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.j-card:hover .j-media img{transform:scale(1.07)}
.j-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(42,9,16,.35));opacity:0;transition:opacity .6s}
.j-card:hover .j-media::after{opacity:1}
.j-body{display:grid;gap:.8rem;align-content:start}
.j-meta{display:flex;flex-wrap:wrap;gap:.6rem 1rem;align-items:center;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.j-tag{color:var(--wine);font-weight:500}
.j-card .h3{font-size:clamp(1.5rem,2vw,1.95rem)}
.j-card .h3 a{background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .6s var(--ease)}
.j-card:hover .h3 a{background-size:100% 1px}
.j-ex{color:var(--ink-soft);font-size:.96rem;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.j-card .link{justify-self:start;margin-top:.3rem}
.j-home{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.5rem,3vw,2.6rem);align-items:start}
.j-home .j-card:nth-child(2){margin-top:4rem}
.j-home .j-card:nth-child(3){margin-top:8rem}
.j-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(2rem,3vw,2.8rem) clamp(1.5rem,3vw,2.6rem);align-items:start}
.j-grid .is-featured{grid-column:1/-1;display:grid;grid-template-columns:1.25fr 1fr;gap:clamp(2rem,4vw,4rem);align-items:center;padding-bottom:clamp(2rem,4vw,3rem);border-bottom:1px solid var(--line)}
.j-grid .is-featured .j-media{aspect-ratio:16/10}
.j-grid .is-featured .h3{font-size:clamp(2rem,3.4vw,3.2rem)}
.j-grid .is-featured .j-ex{-webkit-line-clamp:5;font-size:1.05rem}
.j-card.is-hidden{display:none}
@media (max-width:1000px){.j-home,.j-grid{grid-template-columns:1fr 1fr}.j-home .j-card:nth-child(n){margin-top:0}.j-home .j-card:nth-child(3){display:none}}
@media (max-width:640px){.j-home,.j-grid{grid-template-columns:1fr}.j-home .j-card:nth-child(3){display:flex}.j-grid .is-featured{grid-template-columns:1fr}}

/* ---------- Article ---------- */
.post-hero{padding-bottom:0}
.post-head{display:grid;gap:1.3rem;max-width:1100px;padding-bottom:clamp(2.5rem,5vw,4rem)}
.post-head .ph-crumbs{margin:0}
.post-title{font-size:clamp(2.6rem,6vw,5.6rem);line-height:.98}
.post-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1rem;font-size:.9rem;color:var(--ink-soft)}
.post-meta img{width:44px;height:44px;border-radius:50%;object-fit:cover}
.post-meta b{font-weight:500;color:var(--ink)}
.post-meta i{width:4px;height:4px;border-radius:50%;background:var(--gold)}
.post-lead-cap{font-size:.84rem;color:var(--muted);max-width:80ch;margin-top:1rem}
.post-section{padding-top:clamp(3.5rem,7vw,6rem)}
.post-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:clamp(2.5rem,6vw,6rem);align-items:start}
.post-side{position:sticky;top:calc(var(--nav-h) + 1.5rem);display:grid;gap:1.6rem}
.post-side .toc{position:static}
.facts-card{background:var(--wine-deep);color:var(--ivory);border-radius:var(--radius);padding:1.6rem;display:grid;gap:1rem}
.facts-card .eyebrow{color:var(--gold-light)}
.facts-card ul{display:grid;gap:.1rem}
.facts-card li{display:grid;gap:.1rem;padding:.6rem 0;border-bottom:1px solid var(--line-light);font-size:.9rem;color:rgba(245,239,230,.82)}
.facts-card li b{font-weight:500;font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-light)}
.facts-card .btn{padding:.95rem 1.2rem}
.post-body{max-width:none}
.post-body>p,.post-body>ul,.post-body>ol,.post-body>h2,.post-body>h3{max-width:70ch}
.post-body p{font-size:1.07rem;line-height:1.8}
.post-lead{font-family:var(--serif);font-size:clamp(1.45rem,2.2vw,1.85rem)!important;line-height:1.4!important;color:var(--ink)!important;margin-bottom:1.6rem}
.post-lead::first-letter{float:left;font-size:4.4em;line-height:.8;padding:.06em .1em 0 0;color:var(--wine);font-style:italic}
.post-body h2{counter-increment:none}
.post-body h3{font-family:var(--serif);font-weight:400;font-size:1.6rem;letter-spacing:0;text-transform:none;color:var(--ink);margin:2rem 0 .6rem}
.post-body ul li{border-bottom:0;padding:.4rem 0 .4rem 1.6rem}
.post-body ul li::before{top:1rem}
.callout{position:relative;margin:2.4rem 0;padding:2rem 2rem 2rem 2.4rem;border-radius:var(--radius);background:var(--paper);border:1px solid var(--line);overflow:hidden}
.callout::before{content:"\201C";position:absolute;right:1.2rem;top:-1.6rem;font-family:var(--serif);font-size:9rem;line-height:1;color:rgba(184,146,90,.25)}
.callout::after{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--gold)}
.callout-title{font-size:.68rem!important;letter-spacing:.26em;text-transform:uppercase;color:var(--wine)!important;font-weight:500;margin-bottom:.8rem}
.callout p{font-family:var(--serif);font-size:1.45rem!important;line-height:1.4!important;color:var(--ink)!important;font-style:italic}
.infographic{margin:2.8rem 0;background:var(--wine-deep);color:var(--ivory);border-radius:calc(var(--radius) + 6px);padding:clamp(1.2rem,2.4vw,1.8rem);display:grid;gap:1.2rem;scroll-margin-top:calc(var(--nav-h) + 1.5rem)}
.ig-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;flex-wrap:wrap}
.ig-tag{font-size:.64rem;letter-spacing:.26em;text-transform:uppercase;color:var(--gold-light)}
.infographic h3{font-family:var(--serif)!important;color:var(--ivory)!important;font-size:clamp(1.3rem,2vw,1.7rem)!important;margin:.3rem 0 0!important;text-transform:none!important;letter-spacing:0!important}
.infographic .link{color:var(--gold-light);background:none}
.ig-img{display:block;border-radius:12px;overflow:hidden;background:#000}
.ig-img img{width:100%;transition:transform 1.2s var(--ease)}
.ig-img:hover img{transform:scale(1.03)}
.infographic figcaption{font-size:.88rem;color:rgba(245,239,230,.72);line-height:1.6}
.infographic figcaption strong{color:var(--gold-light)}
.post-photos{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;margin:2.6rem 0}
.post-photos--single{grid-template-columns:1fr}
.post-photos figure{display:grid;gap:.8rem;align-content:start}
.post-photo{display:block;border-radius:var(--radius);overflow:hidden;aspect-ratio:4/3}
.post-photo img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.post-photo:hover img{transform:scale(1.05)}
.post-photos figcaption,.compare-fig figcaption{font-size:.88rem;color:var(--muted);line-height:1.55}
.post-photos figcaption strong,.compare-fig figcaption strong{color:var(--wine)}
.table-wrap{margin:2.2rem 0;overflow-x:auto;border-radius:var(--radius);border:1px solid var(--line);background:var(--paper)}
.lux-table{width:100%;border-collapse:collapse;font-size:.92rem;min-width:560px}
.lux-table th{background:var(--wine);color:var(--ivory);text-align:left;font-weight:500;font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;padding:1rem 1.1rem}
.lux-table td{padding:.95rem 1.1rem;border-top:1px solid var(--line);vertical-align:top;color:var(--ink-soft)}
.lux-table tr:nth-child(even) td{background:rgba(233,223,209,.35)}
.lux-table td:first-child{font-weight:500;color:var(--ink);white-space:nowrap}
.lux-table tbody tr{transition:background .3s}
.lux-table tbody tr:hover td{background:rgba(184,146,90,.12)}
.checklist{margin:2.6rem 0;padding:clamp(1.6rem,3vw,2.4rem);border-radius:var(--radius);background:var(--paper);border:1px solid var(--line)}
.checklist h3{margin-top:0!important}
.checklist ul{display:grid;grid-template-columns:1fr 1fr;gap:.4rem 2rem;margin:1rem 0 0}
.checklist li{display:flex;gap:.9rem;align-items:flex-start;padding:.7rem 0!important;border-bottom:1px solid var(--line)!important}
.checklist li::before{display:none}
.ck{flex:none;width:22px;height:22px;margin-top:.15rem}
.ck circle{fill:none;stroke:var(--gold);stroke-width:1.2}
.ck path{fill:none;stroke:var(--wine);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
@media (max-width:700px){.checklist ul{grid-template-columns:1fr}.post-photos{grid-template-columns:1fr}}
.author-card{display:grid;grid-template-columns:96px 1fr;gap:1.6rem;align-items:center;margin-top:3.5rem;padding:1.8rem;border-radius:var(--radius);border:1px solid var(--line);background:var(--paper)}
.author-card img{width:96px;height:96px;border-radius:50%;object-fit:cover}
.author-card h4{font-family:var(--serif);font-weight:400;font-size:1.6rem;line-height:1.2;margin:.3rem 0 .1rem}
.author-card small{font-size:.8rem;color:var(--muted)}
.author-card p:last-child{font-size:.95rem!important;margin-top:.6rem;color:var(--ink-soft)}
@media (max-width:560px){.author-card{grid-template-columns:1fr}}
.post-cta{position:relative;overflow:hidden;background:var(--wine);color:var(--ivory);border-radius:calc(var(--radius) + 8px);padding:clamp(2.4rem,6vw,5rem);display:grid;gap:1.4rem;justify-items:center;text-align:center}
.post-cta::before{content:"";position:absolute;width:560px;aspect-ratio:1;border-radius:50%;left:-200px;bottom:-320px;border:1px solid rgba(221,197,155,.2);box-shadow:0 0 0 60px rgba(221,197,155,.04)}
.post-cta .eyebrow{color:var(--gold-light)}
.post-cta .eyebrow::after{content:"";width:28px;height:1px;background:currentColor;opacity:.6}
.post-cta .title em{color:var(--gold-light)}
.post-cta .lead{color:rgba(245,239,230,.8);max-width:56ch}
.post-cta .btn{--bg:var(--gold);--fg:var(--wine-deep);--fill:var(--gold-light)}
.post-cta .btn--ghost{--bg:transparent;--fg:var(--ivory);--fill:var(--ivory);border:1px solid var(--line-light)}
.post-cta .btn--ghost:hover{color:var(--wine-deep)}
.post-cta .btn-row{justify-content:center}
@media (max-width:1000px){.post-grid{grid-template-columns:1fr}.post-side{position:static}.post-side .toc{display:none}}

/* ---------- Before / after compare ---------- */
.compare-fig{display:grid;gap:.9rem;margin:0}
.compare-fig--wide{max-width:1200px;margin-inline:auto}
.compare{--p:50%;position:relative;overflow:hidden;border-radius:var(--radius);aspect-ratio:1005/346;min-height:240px;user-select:none;touch-action:pan-y;cursor:ew-resize;background:#000;outline-offset:4px}
.compare-fig--wide .compare{aspect-ratio:1005/420}
.compare>img,.compare-top img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.compare-top{position:absolute;inset:0;clip-path:inset(0 calc(100% - var(--p)) 0 0)}
.compare-handle{position:absolute;top:0;bottom:0;left:var(--p);width:2px;margin-left:-1px;background:var(--ivory);box-shadow:0 0 18px rgba(0,0,0,.35)}
.compare-handle span{position:absolute;top:50%;left:50%;width:54px;height:54px;margin:-27px 0 0 -27px;border-radius:50%;background:var(--ivory);color:var(--wine);display:grid;place-items:center;font-size:1.3rem;box-shadow:0 10px 30px -8px rgba(0,0,0,.45);transition:transform .4s var(--ease)}
.compare:hover .compare-handle span,.compare.is-drag .compare-handle span{transform:scale(1.12)}
.compare-label{position:absolute;top:1rem;font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;padding:.45rem .8rem;border-radius:99px;background:rgba(245,239,230,.92);color:var(--wine);pointer-events:none}
.compare-label.l{left:1rem}
.compare-label.r{right:1rem;background:rgba(42,9,16,.8);color:var(--gold-light)}
.has-cursor .compare{cursor:none}
.post-grid>*{min-width:0}.post-body{overflow-wrap:anywhere}

/* ---------- 404 ---------- */
.nf{min-height:86svh;display:grid;align-items:center;overflow:hidden;border-bottom:0}
.nf-inner{position:relative;z-index:1;display:grid;gap:1.6rem;justify-items:start}
.nf-num{position:absolute;right:-2vw;bottom:-6vw;font-family:var(--serif);font-size:clamp(14rem,42vw,40rem);line-height:.8;color:rgba(107,22,38,.07);pointer-events:none;user-select:none}
.nf-num em{color:rgba(184,146,90,.18)}

/* =====================================================================
   v2.4 — Useful features
   ===================================================================== */

/* ---------- Guest planner ---------- */
.planner{max-width:760px;margin:0 auto 3rem;padding:1.4rem 1.6rem 1.2rem;border:1px solid var(--line-light);border-radius:var(--radius);background:rgba(245,239,230,.03)}
.planner-top{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}
.planner-count{font-family:var(--serif);font-size:2.4rem;line-height:1;color:var(--ivory)}
.planner-count span{font-family:var(--sans);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(245,239,230,.6)}
.planner input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:28px;background:transparent;margin:.8rem 0 .2rem;cursor:pointer}
.planner input[type=range]::-webkit-slider-runnable-track{height:3px;border-radius:3px;background:linear-gradient(90deg,var(--gold) var(--fill,57%),rgba(245,239,230,.2) var(--fill,57%))}
.planner input[type=range]::-moz-range-track{height:3px;border-radius:3px;background:rgba(245,239,230,.2)}
.planner input[type=range]::-moz-range-progress{height:3px;background:var(--gold)}
.planner input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:24px;height:24px;margin-top:-10.5px;border-radius:50%;background:var(--ivory);border:5px solid var(--gold);box-shadow:0 4px 14px rgba(0,0,0,.35);transition:transform .3s var(--ease)}
.planner input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--ivory);border:5px solid var(--gold)}
.planner input[type=range]:active::-webkit-slider-thumb{transform:scale(1.2)}
.planner-scale{display:flex;justify-content:space-between;font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(245,239,230,.45)}
.planner-note{margin-top:.9rem;font-size:.95rem;color:rgba(245,239,230,.85);min-height:3em}
.planner-note b{color:var(--gold-light);font-weight:500}
.planner-note a{color:var(--gold-light);text-decoration:underline;text-underline-offset:3px}
.fp-extra{display:none}
.fp-svg.show-extra .fp-extra{display:inline}
.fp-tab.is-disabled{opacity:.35;pointer-events:none}

/* ---------- Inquiry form: intent, preferences ---------- */
.field[hidden],.checks[hidden],.form-grid>[hidden]{display:none!important}
.intent{border:0;display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
.intent legend{width:100%;margin-bottom:.6rem;letter-spacing:.2em;text-transform:uppercase;font-size:.66rem}
.intent label,.pref-opts label{position:relative;cursor:pointer}
.intent input,.pref-opts input{position:absolute;opacity:0;pointer-events:none}
.intent span{display:inline-block;padding:.75rem 1.15rem;border-radius:99px;border:1px solid var(--line);font-size:.86rem;transition:all .4s var(--ease)}
.intent input:checked+span{background:var(--wine);border-color:var(--wine);color:var(--ivory)}
.intent input:focus-visible+span,.pref-opts input:focus-visible+span{outline:2px solid var(--gold);outline-offset:2px}
.pref{border:0;padding-top:.6rem}
.pref legend{font-size:.78rem;color:var(--muted);margin-bottom:.5rem;padding:0}
.pref::after{display:none}
.pref-opts{display:flex;gap:.4rem}
.pref-opts span{display:inline-block;padding:.5rem .9rem;border-radius:99px;border:1px solid var(--line);font-size:.82rem;transition:all .3s}
.pref-opts input:checked+span{border-color:var(--gold);background:rgba(184,146,90,.14);color:var(--wine)}

/* ---------- Mobile quick-action bar ---------- */
.actionbar{display:none}
@media (max-width:700px){
  .actionbar{position:fixed;left:.6rem;right:.6rem;bottom:calc(.6rem + env(safe-area-inset-bottom));z-index:98;display:grid;grid-template-columns:1fr 1fr 1fr 1.35fr;gap:.25rem;padding:.35rem;border-radius:20px;background:rgba(42,9,16,.94);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 18px 40px -16px rgba(0,0,0,.55);transition:transform .5s var(--ease)}
  .actionbar a{display:grid;justify-items:center;gap:.2rem;padding:.55rem .2rem;border-radius:14px;color:rgba(245,239,230,.9);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase}
  .actionbar a:active{background:rgba(245,239,230,.08)}
  .actionbar svg{width:20px;height:20px;fill:none;stroke:var(--gold-light);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
  .actionbar .ab-book{background:var(--gold);color:var(--wine-deep);font-weight:500}
  .actionbar .ab-book svg{stroke:var(--wine-deep)}
  .menu-open .actionbar,.actionbar.is-hidden{transform:translateY(140%)}
  .fab{display:none}
  .footer-bottom{padding-bottom:6.5rem}
}

/* ---------- Announcement card ---------- */
.notice{position:fixed;left:clamp(1rem,2.4vw,2rem);bottom:clamp(1rem,2.4vw,2rem);z-index:99;max-width:340px;padding:1.3rem 1.4rem 1.2rem;border-radius:var(--radius);background:var(--paper);border:1px solid var(--line);box-shadow:0 30px 60px -25px rgba(42,9,16,.5);display:grid;gap:.55rem;opacity:0}
.notice::before{content:"";position:absolute;left:0;top:1.2rem;bottom:1.2rem;width:3px;border-radius:3px;background:var(--gold)}
.notice-text{font-family:var(--serif);font-size:1.35rem;line-height:1.2;padding-right:1.4rem}
.notice .link{justify-self:start;font-size:.68rem}
.notice-x{position:absolute;top:.6rem;right:.6rem;width:30px;height:30px;border-radius:50%;font-size:1.2rem;line-height:1;color:var(--muted);transition:background .3s,color .3s}
.notice-x:hover{background:var(--wine);color:var(--ivory)}
@media (max-width:700px){
  /* Phones: a slim one-line bar above the Call / Text / Directions bar */
  .notice{left:.8rem;right:.8rem;max-width:none;bottom:calc(5.2rem + env(safe-area-inset-bottom));
    grid-template-columns:1fr auto;align-items:center;gap:.4rem;padding:.55rem .55rem .55rem 1rem;padding-right:2.6rem;border-radius:14px;box-shadow:0 18px 36px -20px rgba(42,9,16,.55)}
  .notice::before{top:.6rem;bottom:.6rem}
  .notice .eyebrow{display:none}
  .notice-text{grid-column:1;font-family:var(--sans);font-size:.86rem;line-height:1.3;padding-right:0;color:var(--ink);
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .notice .link{grid-column:2;grid-row:1;justify-self:end;font-size:0;width:34px;height:34px;padding:0;border-radius:50%;background:var(--wine);color:var(--ivory);display:grid;place-items:center}
  .notice .link::after,.notice .link::before{display:none}
  .notice .link svg{width:16px;height:16px;margin:0;transform:none}
  .notice-x{top:50%;right:.35rem;transform:translateY(-50%);width:28px;height:28px;font-size:1.05rem}
}

/* ---------- Share ---------- */
.share{margin-top:3rem;padding-top:1.6rem;border-top:1px solid var(--line);display:grid;gap:1rem}
.share-btns{display:flex;flex-wrap:wrap;gap:.5rem}
.share-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.65rem 1rem;border-radius:99px;border:1px solid var(--line);font-size:.8rem;color:var(--ink);background:transparent!important;transition:background .3s,border-color .3s,color .3s}
.share-btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.share-btn:hover{border-color:var(--wine);color:var(--wine)}
.share-btn.is-done{background:var(--wine)!important;border-color:var(--wine);color:var(--ivory)}
.share-btn[hidden]{display:none}

/* ---------- Footer extras ---------- */
.fb-right{display:inline-flex;gap:1.6rem;align-items:center;flex-wrap:wrap}
.motion-toggle{font-size:.8rem;color:rgba(245,239,230,.6);transition:color .3s}
.motion-toggle span{color:var(--gold-light)}
.motion-toggle:hover{color:var(--ivory)}
.print-row{display:flex;justify-content:flex-end;margin-top:1.4rem}

/* ---------- Animations switched off by the visitor ---------- */
.reduce-motion *,.reduce-motion *::before,.reduce-motion *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
.reduce-motion.js [data-split]:not(.is-split){visibility:visible}
.reduce-motion.js [data-fade]{opacity:1}
.reduce-motion.js .reveal-img,.reduce-motion.js .arch.reveal-img{clip-path:none}
.reduce-motion .grain,.reduce-motion .hero-canvas{display:none}

/* ---------- Print (rates, guides, policies) ---------- */
@media print{
  @page{margin:16mm}
  html,body{background:#fff!important;color:#000}
  .nav,.menu,.fab,.actionbar,.notice,.cursor,.progress,.grain,.preloader,.transition,.footer-word,.footer-cta,.footer-cols,.map,.banner,.zoom,.post-side,.share,.post-cta,.no-print,.est,.ph-media,.marquee,.hero-canvas,.btn,.filters,.lightbox{display:none!important}
  .js [data-split]:not(.is-split){visibility:visible}
  [data-fade],[data-stagger]>*{opacity:1!important;transform:none!important}
  .page-hero{padding-top:0}
  .section,.section--tight{padding-block:1.2rem}
  .rates{grid-template-columns:1fr 1fr}
  .rate-card{break-inside:avoid;box-shadow:none}
  .footer{background:#fff;color:#000}
  .footer-bottom{border:0;color:#555}
  .footer-logo{filter:invert(1) brightness(.4)}
  .post-grid{grid-template-columns:1fr}
  a[href^="http"]::after{content:""}
}
.pref label{position:relative;left:auto;top:auto;transform:none!important;pointer-events:auto;font-size:inherit;color:inherit;letter-spacing:0}
.pref input{width:auto;padding:0;border:0}
html,body{overflow-x:clip}
@media (max-width:700px){.compare{aspect-ratio:4/3;min-height:0}.compare-fig--wide .compare{aspect-ratio:4/3}}
.field-hint{display:block;margin-top:.45rem;font-size:.78rem;line-height:1.45;color:var(--wine);min-height:0}
.field-hint:empty{display:none}

/* =====================================================================
   v3.0 — Planning tools, local pages, comparison, FAQ search, calendar
   ===================================================================== */
.footer-cols--5{grid-template-columns:repeat(5,1fr);gap:2rem}
@media (max-width:1100px){.footer-cols--5{grid-template-columns:repeat(3,1fr)}}
@media (max-width:700px){.footer-cols--5{grid-template-columns:1fr 1fr}}
.lang-switch{margin-right:1.4rem;color:var(--gold-light);letter-spacing:.14em;text-transform:uppercase;font-size:.72rem}
.lang-switch:hover{color:var(--ivory)}
.print-row{gap:1.2rem 2.4rem;flex-wrap:wrap}

/* ---- local landing pages ---- */
.lp-facts{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--paper)}
.lp-facts>div{padding:clamp(1.3rem,2.4vw,2rem);border-right:1px solid var(--line);display:grid;gap:.35rem;align-content:start}
.lp-facts>div:last-child{border-right:0}
.lp-facts dt{font-size:.66rem;letter-spacing:.26em;text-transform:uppercase;color:var(--gold)}
.lp-facts dd{font-family:var(--serif);font-size:clamp(1.9rem,3vw,2.8rem);line-height:1;color:var(--wine)}
.lp-facts small{font-size:.86rem;color:var(--muted)}
@media (max-width:820px){.lp-facts{grid-template-columns:1fr 1fr}.lp-facts>div:nth-child(2){border-right:0}.lp-facts>div:nth-child(-n+2){border-bottom:1px solid var(--line)}}
.lp-split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,6rem);align-items:center}
.lp-split>*{min-width:0}
.lp-copy{display:grid;gap:1.6rem;align-content:start}
.lp-copy .lead{max-width:52ch}
.lp-photos{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
.lp-photos .g-item{display:block;border-radius:14px;overflow:hidden;aspect-ratio:4/5;position:relative}
.lp-photos .g-item:nth-child(2){transform:translateY(2.5rem)}
.lp-photos .g-item:nth-child(4){transform:translateY(2.5rem)}
.lp-photos img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.lp-photos .g-item:hover img{transform:scale(1.06)}
@media (max-width:900px){.lp-split{grid-template-columns:1fr}.lp-photos{margin-bottom:2.5rem}}
.lp-price{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(2rem,5vw,5rem);align-items:center}
.lp-price-side{display:grid;gap:1.4rem}
@media (max-width:860px){.lp-price{grid-template-columns:1fr}}
.lp-links{display:flex;flex-wrap:wrap;gap:1rem 2.2rem;align-items:center;margin-top:2.6rem;padding-top:1.6rem;border-top:1px solid var(--line)}

/* ---- package comparison table ---- */
.cmp-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--ivory);-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.cmp-wrap:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
.cmp{width:100%;min-width:980px;border-collapse:separate;border-spacing:0;font-size:.95rem}
.cmp th,.cmp td{padding:1rem 1.1rem;text-align:left;vertical-align:top;border-bottom:1px solid var(--line);transition:background .4s}
.cmp thead th,.cmp thead td{border-bottom:1px solid var(--wine);background:var(--paper)}
.cmp thead th a{font-family:var(--serif);font-weight:400;font-size:1.3rem;line-height:1.1;display:block}
.cmp thead th a:hover{color:var(--wine)}
.cmp tbody th{font-weight:500;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);width:200px;white-space:nowrap}
.cmp th[scope="row"],.cmp .cmp-corner{position:sticky;left:0;z-index:1;background:var(--ivory);box-shadow:1px 0 0 var(--line)}
.cmp thead .cmp-corner{background:var(--paper)}
.cmp-price b{font-family:var(--serif);font-weight:400;font-size:1.6rem;color:var(--wine)}
.cmp-best td{font-size:.88rem;color:var(--ink-soft)}
.cmp-muted td{color:var(--muted)}
.cmp-cta td,.cmp-cta th{border-bottom:0}
.cmp-ok{width:22px;height:22px;fill:none;stroke:var(--gold);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.cmp [data-pkg].is-hl{background:rgba(184,146,90,.13)}
.cmp thead th.is-hl{background:var(--wine);color:var(--ivory)}
.cmp thead th.is-hl a{color:var(--ivory)}
.cmp-note{margin-top:1rem;max-width:90ch}

/* ---- package quiz ---- */
.quiz{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(2rem,6vw,6rem);align-items:start}
.quiz-head{display:grid;gap:1.4rem;position:sticky;top:calc(var(--nav-h) + 2rem)}
.quiz-progress{display:flex;gap:.5rem;margin-top:.6rem}
.quiz-progress i{flex:1;height:3px;border-radius:3px;background:var(--line);overflow:hidden;position:relative}
.quiz-progress i::after{content:"";position:absolute;inset:0;background:var(--wine);transform:scaleX(0);transform-origin:left;transition:transform .7s var(--ease)}
.quiz-progress i.is-done::after{transform:scaleX(1)}
.quiz-body{position:relative;min-height:22rem;display:grid}
.quiz-step{border:0;grid-area:1/1;display:none}
.quiz-step.is-active{display:block;animation:quizIn .7s var(--ease) both}
@keyframes quizIn{from{opacity:0;transform:translateX(28px)}to{opacity:1;transform:none}}
.quiz-step legend{font-family:var(--serif);font-size:clamp(1.9rem,3vw,2.8rem);line-height:1.1;margin-bottom:1.6rem;display:grid;gap:.6rem}
.quiz-step legend small{font-family:var(--sans);font-size:.68rem;letter-spacing:.26em;color:var(--gold)}
.quiz-opts{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.7rem}
.quiz-opts label{position:relative;cursor:pointer}
.quiz-opts input{position:absolute;opacity:0;pointer-events:none}
.quiz-opts span{display:flex;align-items:center;min-height:4.2rem;padding:1rem 1.2rem;border:1px solid var(--line);border-radius:14px;background:var(--paper);font-size:1rem;transition:border-color .3s,background .3s,color .3s,transform .4s var(--ease)}
.quiz-opts label:hover span{border-color:var(--wine);transform:translateY(-2px)}
.quiz-opts input:checked+span{background:var(--wine);border-color:var(--wine);color:var(--ivory)}
.quiz-opts input:focus-visible+span{outline:2px solid var(--gold);outline-offset:3px}
.quiz-nav{display:flex;gap:2rem;margin-top:1.6rem}
.quiz-result{grid-area:1/1;display:grid;gap:1.4rem;background:var(--wine-deep);color:var(--ivory);border-radius:var(--radius);padding:clamp(1.6rem,3.5vw,2.8rem);animation:quizIn .8s var(--ease) both}
.quiz-result[hidden]{display:none}
.quiz-result .eyebrow{color:var(--gold-light)}
.quiz-result .title{font-size:clamp(2.2rem,4vw,3.6rem)}
.quiz-result .title em{color:var(--gold-light)}
.qr-why{color:rgba(245,239,230,.82);max-width:56ch}
.qr-lines{display:grid;gap:.1rem;border-top:1px solid var(--line-light)}
.qr-lines div{display:flex;justify-content:space-between;gap:1rem;padding:.7rem 0;border-bottom:1px solid var(--line-light);font-size:.95rem}
.qr-lines .qr-total{font-family:var(--serif);font-size:1.8rem;color:var(--gold-light)}
.qr-note{font-size:.85rem;color:rgba(245,239,230,.65)}
.quiz-result .link{color:var(--gold-light)}
@media (max-width:900px){.quiz{grid-template-columns:1fr}.quiz-head{position:static}}

/* ---- planning tools strip (home) ---- */
.tools{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.tool{display:grid;gap:.8rem;align-content:start;padding:1.8rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);transition:transform .6s var(--ease),box-shadow .6s var(--ease),border-color .4s}
.tool:hover{transform:translateY(-6px);box-shadow:0 40px 60px -40px rgba(42,9,16,.4);border-color:var(--wine)}
.tool small{font-size:.68rem;letter-spacing:.26em;color:var(--gold)}
.tool .h3{font-size:clamp(1.6rem,2vw,2rem)}
.tool p{color:var(--ink-soft);font-size:.95rem}
.tool .link{margin-top:.4rem;justify-self:start}
@media (max-width:1000px){.tools{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.tools{grid-template-columns:1fr}}

/* ---- FAQ page with search ---- */
.faq-search{position:relative;display:flex;align-items:center;gap:1rem;max-width:760px;margin:0 auto 1.8rem;padding:.4rem .4rem .4rem 1.4rem;border:1px solid var(--line);border-radius:99px;background:var(--paper);transition:border-color .3s,box-shadow .3s}
.faq-search:focus-within{border-color:var(--wine);box-shadow:0 20px 40px -30px rgba(42,9,16,.5)}
.faq-search svg{width:20px;height:20px;flex:none;fill:none;stroke:var(--wine);stroke-width:1.6;stroke-linecap:round}
.faq-search input{flex:1;min-width:0;border:0;background:none;padding:1rem 0;font:inherit;font-size:1.1rem;color:var(--ink);outline:none}
.faq-search input::-webkit-search-cancel-button{cursor:pointer}
.faq-count{flex:none;font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);padding-right:1rem}
.faq-cats{margin-bottom:clamp(2rem,4vw,3.5rem)}
.faq-groups{display:grid;gap:clamp(2.5rem,5vw,4rem);max-width:980px;margin-inline:auto}
.faq-group{scroll-margin-top:calc(var(--nav-h) + 1rem)}
.faq-group[hidden]{display:none}
.faq-group-title{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;font-family:var(--serif);font-weight:400;font-size:clamp(1.8rem,3vw,2.6rem);padding-bottom:.6rem;border-bottom:1px solid var(--wine)}
.faq-group-title small{font-family:var(--sans);font-size:.7rem;letter-spacing:.2em;color:var(--gold)}
.faq-item[hidden]{display:none}
.faq-page mark{background:rgba(184,146,90,.35);color:inherit;border-radius:3px;padding:0 .1em}
.faq-none{display:grid;justify-items:center;gap:1rem;text-align:center;padding:3rem 0}
.faq-none[hidden]{display:none}
.faq-none .title{font-size:clamp(2rem,3.6vw,3rem)}

/* ---- cost guide ---- */
.cost-intro{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.cost-intro>div{display:flex;gap:1.2rem;align-items:center;padding:1.6rem;border:1px solid var(--line);border-radius:var(--radius)}
.cost-intro b{font-family:var(--serif);font-weight:400;font-size:clamp(2.6rem,4vw,3.6rem);line-height:1;color:var(--wine);flex:none}
.cost-intro p{font-size:.95rem;color:var(--ink-soft)}
@media (max-width:900px){.cost-intro{grid-template-columns:1fr}}
.cost-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.cost-card{background:var(--ivory);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:grid;grid-template-rows:auto 1fr;scroll-margin-top:calc(var(--nav-h) + 1rem);transition:transform .6s var(--ease),box-shadow .6s var(--ease)}
.cost-card:hover{transform:translateY(-6px);box-shadow:0 40px 60px -40px rgba(42,9,16,.4)}
.cost-media{aspect-ratio:16/9;overflow:hidden}
.cost-media img{width:100%;height:100%;object-fit:cover}
.cost-body{padding:1.6rem;display:grid;gap:1rem;align-content:start}
.cost-body .eyebrow{font-size:.62rem}
.cost-lines div{display:flex;justify-content:space-between;gap:1rem;padding:.55rem 0;border-bottom:1px solid var(--line);font-size:.92rem}
.cost-lines dt{color:var(--ink-soft)}
.cost-lines dd{font-variant-numeric:tabular-nums;white-space:nowrap}
.cost-lines .cost-total{border-bottom:1px solid var(--wine)}
.cost-lines .cost-total dt{font-weight:500;color:var(--ink)}
.cost-lines .cost-total dd{font-family:var(--serif);font-size:1.5rem;color:var(--wine)}
.cost-body .link{justify-self:start}
@media (max-width:1000px){.cost-grid{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.cost-grid{grid-template-columns:1fr}}
.cost-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius)}
.cost-table{width:100%;min-width:620px;border-collapse:collapse}
.cost-table th,.cost-table td{padding:1.1rem 1.3rem;text-align:left;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}
.cost-table thead th{font-size:.66rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);background:var(--paper)}
.cost-table tbody th{font-family:var(--serif);font-weight:400;font-size:1.3rem}
.cost-table tbody th small{font-family:var(--sans);font-size:.8rem;color:var(--muted);margin-left:.4rem}
.cost-table td b{font-family:var(--serif);font-weight:400;font-size:1.4rem;color:var(--wine)}
.cost-table tbody tr:last-child>*{border-bottom:0}
.cost-when,.cost-notincl{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2rem,6vw,6rem);align-items:start}
.cost-when>div,.cost-notincl>div{display:grid;gap:1.4rem}
@media (max-width:900px){.cost-when,.cost-notincl{grid-template-columns:1fr}}
.pay-steps{list-style:none;display:grid;gap:.8rem}
.pay-steps li{display:grid;grid-template-columns:7rem 1fr;gap:.2rem 1.4rem;padding:1.3rem 1.5rem;background:var(--ivory);border:1px solid var(--line);border-radius:14px}
.pay-steps b{grid-row:span 2;font-family:var(--serif);font-weight:400;font-size:2.2rem;color:var(--wine);line-height:1}
.pay-steps span{font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}
.pay-steps p{font-size:.95rem;color:var(--ink-soft)}

/* ---- timeline planner ---- */
.tl{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(2rem,5vw,5rem);align-items:start}
.tl>*{min-width:0}
.tl-controls{display:grid;gap:1.6rem;position:sticky;top:calc(var(--nav-h) + 1.5rem)}
.tl-date{width:100%;padding:1rem 1.2rem;border:1px solid var(--line);border-radius:14px;background:var(--ivory);font:inherit}
.tl-sheet{background:var(--ivory);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(1.6rem,3.5vw,3rem);display:grid;gap:1.6rem}
.tl-head{display:flex;gap:1.6rem;align-items:center;padding-bottom:1.4rem;border-bottom:1px solid var(--wine)}
.tl-logo{width:110px;height:auto;flex:none}
.tl-title{font-size:clamp(2rem,3.6vw,3.2rem)}
.tl-sub{color:var(--muted);font-size:.95rem;margin-top:.3rem}
.tl-list{list-style:none;display:grid;position:relative}
.tl-list::before{content:"";position:absolute;left:6.6rem;top:.6rem;bottom:.6rem;width:1px;background:var(--line)}
.tl-list li{display:grid;grid-template-columns:6.6rem 1fr;gap:1.6rem;padding:.75rem 0;position:relative;animation:quizIn .6s var(--ease) both}
.tl-list li::after{content:"";position:absolute;left:calc(6.6rem - 4px);top:1.25rem;width:9px;height:9px;border-radius:50%;background:var(--ivory);border:1.5px solid var(--gold)}
.tl-list li.is-key::after{background:var(--wine);border-color:var(--wine)}
.tl-list time{font-variant-numeric:tabular-nums;font-weight:500;color:var(--wine);text-align:right;padding-right:1rem;font-size:.95rem;padding-top:.15rem}
.tl-list h4{font-family:var(--serif);font-weight:400;font-size:1.35rem;line-height:1.2}
.tl-list p{font-size:.88rem;color:var(--muted)}
.tl-list li.is-band h4{font-family:var(--sans);font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold)}
.tl-warn{padding:1rem 1.2rem;border-radius:12px;background:rgba(194,74,82,.1);color:var(--wine);font-size:.92rem}
.tl-warn[hidden]{display:none}
@media (max-width:900px){.tl{grid-template-columns:1fr}.tl-controls{position:static}}
@media (max-width:520px){.tl-list::before{left:4.6rem}.tl-list li{grid-template-columns:4.6rem 1fr;gap:1.2rem}.tl-list li::after{left:calc(4.6rem - 4px)}.tl-list time{font-size:.82rem}.tl-logo{width:72px}}

/* ---- vendors ---- */
.vendor-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.2rem}
.vendor-cat{background:var(--ivory);border:1px solid var(--line);border-radius:var(--radius);padding:1.8rem;display:grid;gap:1rem;align-content:start}
.vendor-list{list-style:none;display:grid}
.vendor{padding:.9rem 0;border-top:1px solid var(--line);display:grid;gap:.3rem}
.vendor h4{font-weight:500;font-size:1.05rem}
.vendor p{font-size:.9rem;color:var(--ink-soft)}
.vendor-links{display:flex;flex-wrap:wrap;gap:1.2rem}
.vendor-empty{color:var(--muted);font-size:.95rem}

/* ---- availability calendar (on the wine contact panel) ---- */
.avail{position:relative;z-index:1;display:grid;gap:.8rem;padding-top:1.8rem;border-top:1px solid var(--line-light);scroll-margin-top:calc(var(--nav-h) + 1rem)}
.avail-head{display:flex;justify-content:space-between;align-items:center;gap:1rem}
.avail-head small{font-size:.66rem;letter-spacing:.26em;text-transform:uppercase;color:var(--gold-light)}
.avail-nav{display:flex;align-items:center;gap:.6rem}
.avail-nav button{width:34px;height:34px;border-radius:50%;border:1px solid var(--line-light);color:var(--ivory);font-size:1.2rem;line-height:1;transition:background .3s,color .3s}
.avail-nav button:hover:not(:disabled){background:var(--gold-light);color:var(--wine-deep)}
.avail-nav button:disabled{opacity:.3;cursor:default}
.avail-month{font-family:var(--serif);font-size:1.35rem;min-width:9.5rem;text-align:center}
.avail-dow,.avail-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.3rem}
.avail-dow span{text-align:center;font-size:.64rem;letter-spacing:.16em;color:rgba(245,239,230,.55)}
.avail-day{aspect-ratio:1;border-radius:10px;display:grid;place-items:center;font-size:.92rem;font-variant-numeric:tabular-nums;color:var(--ivory);border:1px solid transparent;transition:background .25s,color .25s,border-color .25s,transform .3s var(--ease)}
button.avail-day:hover{background:rgba(245,239,230,.12);border-color:var(--gold-light);transform:scale(1.06)}
.avail-day.is-past{color:rgba(245,239,230,.25)}
.avail-day.is-booked{color:rgba(245,239,230,.38);background:repeating-linear-gradient(135deg,rgba(0,0,0,.18) 0 4px,transparent 4px 8px);text-decoration:line-through;text-decoration-color:rgba(221,197,155,.6)}
.avail-day.is-today{border-color:rgba(221,197,155,.5)}
.avail-day.is-picked{background:var(--gold-light);color:var(--wine-deep);border-color:var(--gold-light)}
.avail-legend{display:flex;flex-wrap:wrap;gap:.4rem 1.4rem;font-size:.78rem;color:rgba(245,239,230,.7)}
.avail-legend span{display:inline-flex;align-items:center;gap:.5rem}
.avail-legend i{width:14px;height:14px;border-radius:4px;border:1px solid var(--gold-light)}
.avail-legend .lg-booked{border-color:transparent;background:repeating-linear-gradient(135deg,rgba(0,0,0,.3) 0 3px,rgba(245,239,230,.15) 3px 6px)}
.avail-note{font-family:var(--serif);font-style:italic;font-size:1.15rem;color:var(--gold-light)}
.avail-note[hidden]{display:none}
.field-warn{display:block;margin-top:.45rem;font-size:.8rem;line-height:1.4;color:var(--rose)}
.field-warn:empty{display:none}

/* ---- Spanish packages ---- */
.es-pkgs{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.es-pkg{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--paper);display:grid;grid-template-rows:auto 1fr}
.es-pkg-media{position:relative;aspect-ratio:4/3;overflow:hidden}
.es-pkg-media img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.es-pkg:hover .es-pkg-media img{transform:scale(1.05)}
.es-pkg-media .num{position:absolute;left:1rem;top:.8rem;font-family:var(--serif);font-style:italic;font-size:2rem;color:var(--ivory);text-shadow:0 2px 12px rgba(0,0,0,.4)}
.es-pkg-body{padding:1.5rem;display:grid;gap:.8rem;align-content:start}
.es-pkg-body .h3{font-size:clamp(1.5rem,2vw,1.9rem)}
.es-pkg-price{display:grid;gap:.2rem}
.es-pkg-price b{font-family:var(--serif);font-weight:400;font-size:1.7rem;color:var(--wine)}
.es-pkg-price span{font-size:.88rem;color:var(--muted)}
.es-pkg .link{justify-self:start}
@media (max-width:1000px){.es-pkgs{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.es-pkgs{grid-template-columns:1fr}}

@media print{
  .tl{display:block}
  .tl-sheet{border:0;padding:0}
  .tl-list li{animation:none;break-inside:avoid}
  .tl-list::before{background:#bbb}
  body.printing-tl main>section:not(:has(.tl)),body.printing-tl .page-hero{display:none!important}
  body.printing-tl .footer{display:none!important}
  .cmp-wrap{overflow:visible;border:0}
}
.booked-note{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--serif);font-style:italic;font-size:1.15rem;color:var(--wine)}
.booked-note::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--rose);box-shadow:0 0 0 0 rgba(194,74,82,.5);animation:bnPulse 2s infinite}
.booked-note[hidden]{display:none}
@keyframes bnPulse{70%{box-shadow:0 0 0 10px rgba(194,74,82,0)}100%{box-shadow:0 0 0 0 rgba(194,74,82,0)}}
.avail-day{padding:0;min-width:0;background:none}
.avail-head{flex-wrap:wrap}
.quiz-nav [hidden]{display:none}
@media (max-width:640px){
  .cmp{min-width:760px;font-size:.88rem}
  .cmp tbody th{width:96px;white-space:normal;font-size:.58rem;letter-spacing:.14em}
  .cmp th,.cmp td{padding:.8rem .7rem}
  .cmp thead th a{font-size:1.05rem}
  .avail-month{min-width:0;font-size:1.15rem}
}
@media (max-width:700px){.notice .link{line-height:0;display:flex;align-items:center;justify-content:center;gap:0}.notice .link svg{display:block}}
@media (max-width:360px){.actionbar span{white-space:nowrap;letter-spacing:.06em}}
