/* Savvy Bridal — tokens from the Savvy Bridal design system (charcoal, paper/linen, blush/sage/powder, stone; Baskerville + Montserrat Light + script accent; diamond lattice). */
@font-face{font-family:"Libre Baskerville";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/libre-baskerville-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Libre Baskerville";font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/libre-baskerville-latin-400-italic.woff2) format("woff2")}
@font-face{font-family:Montserrat;font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/montserrat-latin-300-normal.woff2) format("woff2")}
@font-face{font-family:Montserrat;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/montserrat-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:Montserrat;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/montserrat-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:Montserrat;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/montserrat-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:Sacramento;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/sacramento-latin-400-normal.woff2) format("woff2")}
:root{--ink:#1e2326;--paper:#fafdfe;--linen:#f8f7f5;--white:#fff;--blush:#edd8d4;--blush-soft:#f5e8e5;--blush-deep:#dbb9b2;--sage:#d0d9ca;--sage-soft:#e2e8dd;--sage-deep:#a9b79e;--powder:#c0d8dc;--stone:#939f9d;--stone-deep:#6e7a78;--line:#e4e1dc;--line-strong:#cfcac2;--text:#3a3f42;--muted:#7a817f;
--serif:"Libre Baskerville",Baskerville,"Times New Roman",serif;--sans:Montserrat,"Helvetica Neue",Arial,sans-serif;--script:Sacramento,cursive;--ease:cubic-bezier(.4,0,.2,1);--sh-sm:0 2px 8px rgba(30,35,38,.06);--sh-md:0 8px 24px rgba(30,35,38,.08);--sh-lg:0 18px 48px rgba(30,35,38,.12);--gutter:clamp(20px,5vw,80px)}
*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:84px;scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--text);font:300 1rem/1.7 var(--sans);letter-spacing:.01em;-webkit-font-smoothing:antialiased;overflow-wrap:anywhere;text-wrap:pretty}
h1,h2,h3,p,figure,ul{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400;color:var(--ink);line-height:1.15;letter-spacing:.01em}
h1{font-size:clamp(2.4rem,5.5vw,4.4rem);line-height:1.08}h2{font-size:clamp(1.8rem,3.4vw,2.7rem)}h3{font-size:1.45rem}
a{color:var(--stone-deep);text-decoration:none;transition:color .14s var(--ease),opacity .14s var(--ease)}a:hover{color:var(--ink);opacity:.85}img{max-width:100%;height:auto;display:block}
:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(147,159,157,.35)}::selection{background:var(--blush);color:var(--ink)}
.wrap{width:min(1200px,100% - 2*var(--gutter));margin-inline:auto}.narrow{max-width:720px}.center{text-align:center}.center .sub,.center .steps,.center .loc-grid{margin-inline:auto}
.eyebrow{display:flex;align-items:center;justify-content:inherit;gap:14px;font:500 .6875rem/1 var(--sans);letter-spacing:.28em;text-transform:uppercase;color:var(--muted);margin-bottom:1.1rem}.eyebrow span{flex:0 0 28px;height:1px;background:var(--line-strong)}.center .eyebrow{justify-content:center}.eyebrow.inv{color:rgba(250,253,254,.75)}.eyebrow.inv span{background:rgba(250,253,254,.35)}
.split .eyebrow span:first-child,.facts-grid .eyebrow span:first-child,.hero-copy-l .eyebrow span:first-child{display:none}
.overline{font:500 .6875rem/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.sub{max-width:60ch;margin:1rem 0 2.2rem;font-size:1.05rem}.muted{color:var(--muted)}.fine{font-size:.9rem;color:var(--muted);margin-top:1.2rem}
.script{font-family:var(--script);font-size:1.15em;font-weight:400;color:var(--blush)}.script-lg{font-family:var(--script);font-size:clamp(2.2rem,5vw,3.4rem);line-height:1;color:var(--blush);margin-bottom:.6rem}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:#fff;padding:.8rem 1rem;z-index:100;min-height:44px}.skip:focus{left:8px}
.testbar{background:#d9962c;color:#1e2326;text-align:center;font-size:.85rem;font-weight:600;padding:.4rem;letter-spacing:.06em}
.confirm{display:inline-block;background:#fbf0dc;color:#a8721a;border:1px solid #d9962c;font:600 .65rem/1.4 var(--sans);letter-spacing:.08em;padding:.15rem .4rem;border-radius:3px;vertical-align:middle;margin-top:.5rem}
/* buttons: wide-tracked uppercase */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 1.8rem;font:500 .78rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;border:1px solid var(--ink);border-radius:2px;transition:all .14s var(--ease);white-space:nowrap}
.btn-lg{min-height:54px;padding:0 2.2rem}.btn-sm{min-height:44px;padding:0 1.2rem;font-size:.7rem}
.btn-primary{background:var(--ink);color:#fff}.btn-primary:hover{background:#0c0c0c;color:#fff;opacity:1}
.btn-secondary{background:transparent;color:var(--ink)}.btn-secondary:hover{background:var(--ink);color:#fff;opacity:1}
.btn-blush{background:var(--blush);color:var(--ink);border-color:var(--blush)}.btn-blush:hover{background:var(--blush-deep);border-color:var(--blush-deep);color:var(--ink);opacity:1}
.btn-ghost-light{background:transparent;color:#fff;border-color:rgba(250,253,254,.55)}.btn-ghost-light:hover{background:rgba(250,253,254,.12);color:#fff;opacity:1}
.actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.6rem}.actions.center,.center .actions{justify-content:center}
.chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.chips a{display:inline-flex;align-items:center;min-height:44px;padding:0 1rem;border:1px solid var(--line-strong);border-radius:999px;font:400 .85rem/1 var(--sans);color:var(--ink);background:#fff}.chips a:hover{border-color:var(--ink);opacity:1}
/* header */
.hdr{position:sticky;top:0;z-index:50;background:rgba(250,253,254,.88);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);min-height:82px;display:flex;align-items:center}
.hdr-in{display:flex;align-items:center;justify-content:space-between;gap:1rem}.brand{display:inline-flex;align-items:center;min-height:44px}.brand img{height:48px;width:auto}
.nav{display:flex;align-items:center;gap:.2rem}.nav a:not(.btn){font:600 .72rem/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--ink);padding:.9rem .9rem;min-height:44px;display:inline-flex;align-items:center}.nav a:not(.btn):hover,.nav a[aria-current]{color:var(--ink);opacity:1;text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px}.nav .btn{margin-left:.6rem}
/* hero */
.hero{position:relative;background:var(--ink);color:var(--paper);overflow:hidden;isolation:isolate}
.hero-media{position:absolute;inset:0;z-index:-1}.hero-media img{width:100%;height:100%;object-fit:cover;object-position:60% 45%;opacity:.95}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(30,35,38,.45) 0%,rgba(30,35,38,.7) 55%,rgba(30,35,38,.88) 100%)}
.hero-copy{padding:clamp(5.5rem,13vw,10rem) 0 clamp(4.5rem,10vw,8rem);text-align:center;max-width:860px}.hero h1{color:var(--paper);max-width:14em;margin-inline:auto}
.hero .lead{font-weight:300;font-size:clamp(1.02rem,1.9vw,1.2rem);max-width:36em;margin:1.4rem auto 0;color:rgba(250,253,254,.85)}.hero .actions{justify-content:center;margin-top:2rem}
.hero-split{background:var(--ink)}.hero-split::after{display:none}.hero-split .split{padding:clamp(3rem,7vw,5.5rem) 0;align-items:center}.hero-copy-l h1{color:var(--paper);margin-bottom:.4rem}.hero-copy-l .lead{color:rgba(250,253,254,.85);font-weight:300;font-size:1.08rem;max-width:34em;margin-top:1rem}.hero-img img{border-radius:8px;box-shadow:var(--sh-lg);aspect-ratio:4/3;object-fit:cover;object-position:50% 35%;width:100%}
/* bands + sections */
.band{background:var(--linen);border-bottom:1px solid var(--line)}.stats{display:grid;gap:1.5rem;grid-template-columns:repeat(2,1fr);padding:2.4rem 0;text-align:center}.stat b{display:block;font:400 1.9rem/1 var(--serif);color:var(--ink)}.stat span{display:block;margin-top:.6rem;font:500 .64rem/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.sec{padding:clamp(4rem,9vw,8rem) 0}.linen{background:var(--linen)}
.ink{background:var(--ink);color:var(--paper)}.ink h1,.ink h2,.ink h3{color:var(--paper)}.inv-p{color:rgba(250,253,254,.82);max-width:36em;margin:1rem auto 1.8rem}
.lattice{background-image:repeating-linear-gradient(45deg,transparent 0 38px,rgba(250,253,254,.07) 38px 40px),repeating-linear-gradient(-45deg,transparent 0 38px,rgba(250,253,254,.07) 38px 40px);background-position:center}
.split{display:grid;gap:clamp(2rem,5vw,5rem);grid-template-columns:1fr;align-items:center}.split>*{min-width:0}.split img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:8px}.split h2{margin-bottom:1rem}.split p+p{margin-top:.8rem}.split .btn{margin-top:1.6rem}
.diamonds{list-style:none;padding:0;margin:1.2rem 0 0;display:flex;flex-direction:column;gap:.7rem}.diamonds li{display:flex;gap:12px;align-items:center}.diamonds li::before{content:"";width:6px;height:6px;transform:rotate(45deg);background:var(--stone);flex:0 0 6px}
.steps{display:grid;gap:1.6rem;grid-template-columns:1fr;margin-top:2.6rem;text-align:left;max-width:1100px}.step{padding:2.4rem;border-radius:8px;border:1px solid var(--line)}.step.linen{background:var(--linen)}.step.blush{background:var(--blush);border-color:var(--blush)}.num{font:400 2.3rem/1 var(--serif);color:var(--stone)}.step h3{margin:1rem 0 .5rem}.step p{font-size:.93rem}
/* boutique cards */
.loc-grid{display:grid;gap:1.6rem;grid-template-columns:1fr;text-align:left;margin-top:2rem}
.loc-card{background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:var(--sh-sm);overflow:hidden;display:flex;flex-direction:column;transition:transform .24s var(--ease),box-shadow .24s var(--ease)}.loc-card:hover{transform:translateY(-3px);box-shadow:var(--sh-md)}
.loc-img img{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:var(--pos,50% 50%)}.loc-body{padding:1.6rem;display:flex;flex-direction:column;gap:.5rem;flex:1}.loc-body h3{margin-top:.2rem}.loc-body h3 a{color:var(--ink)}.addr{color:var(--text)}.loc-body .muted{font-size:.9rem}.loc-body .actions{margin-top:1rem}
/* facts */
.facts-grid{display:grid;gap:2.5rem;grid-template-columns:1fr}.facts-grid h2{margin-bottom:.6rem}address{font-style:normal;line-height:1.6;font-size:1.05rem;color:var(--ink)}.hours-line{font-family:var(--serif);font-size:1.3rem;color:var(--ink);margin-bottom:.6rem}
.facts-cta{background:#fff;border:1px solid var(--line);border-radius:8px;padding:1.8rem;display:flex;flex-direction:column;gap:.8rem;align-self:start}.facts-cta .btn{align-self:flex-start;margin-top:.4rem}
/* booking */
.booker{background:#fff;color:var(--text);border-radius:8px;overflow:hidden;max-width:760px;margin:0 auto;box-shadow:var(--sh-lg);text-align:left}.booker iframe{width:100%;height:800px;border:0;display:block}.fallback{padding:1rem 1.4rem;font-size:.9rem;color:var(--muted);border-top:1px solid var(--line)}.fallback a{color:var(--ink);font-weight:500}
/* cta + footer */
.cta{position:relative;background:var(--ink);color:var(--paper);overflow:hidden;isolation:isolate;text-align:center}.cta-media{position:absolute;inset:0;z-index:-1}.cta-media img{width:100%;height:100%;object-fit:cover;object-position:50% 40%;opacity:.36}.cta-copy{padding:clamp(4.5rem,11vw,8.5rem) 0}.cta h2{color:var(--paper);max-width:16em;margin:0 auto}.cta .actions{justify-content:center;margin-top:2rem}.cta .fine{color:rgba(250,253,254,.7)}.cta .fine a{color:var(--paper);text-decoration:underline;text-underline-offset:3px;line-height:44px}
.ftr{background:var(--ink);color:rgba(250,253,254,.85);padding:4rem 0 1.5rem;font-size:.92rem}.ftr a{color:rgba(250,253,254,.9)}.ftr a:hover{color:#fff;opacity:1}.ftr h3{color:var(--paper);font-size:1.25rem;margin-bottom:.5rem}.ftr p{margin:.3rem 0}.ftr .muted{color:rgba(250,253,254,.65);max-width:28em;margin-top:1rem}.ftr-grid{display:grid;gap:2.5rem;grid-template-columns:1fr}.ftr-grid img{height:56px;width:auto}.ftr-link{display:inline-block;margin-top:.4rem;font-weight:500;line-height:44px}
.ftr-bar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem;border-top:1px solid rgba(250,253,254,.18);margin-top:3rem;padding-top:1.2rem;font:400 .72rem/44px var(--sans);letter-spacing:.06em;color:rgba(250,253,254,.55)}
.sticky{position:fixed;left:0;right:0;bottom:0;z-index:60;display:flex;gap:.4rem;padding:.55rem;background:rgba(250,253,254,.96);border-top:1px solid var(--line);backdrop-filter:blur(8px)}.sticky .btn{flex:1;min-height:48px;padding:0 .4rem;font-size:.7rem}body{padding-bottom:74px}
@media (min-width:760px){.hero:not(.hero-split){min-height:min(84vh,840px);display:flex;align-items:center}.hero:not(.hero-split) .hero-copy{width:min(1200px,100% - 2*var(--gutter))}.hero:not(.hero-split) .hero-media img{object-position:100% 45%;transform:scale(1.18);transform-origin:0% 45%}.hero:not(.hero-split)::after{background:linear-gradient(90deg,rgba(30,35,38,.9) 0%,rgba(30,35,38,.78) 38%,rgba(30,35,38,.3) 68%,rgba(30,35,38,.08) 100%)}.hero:not(.hero-split) .hero-copy{text-align:left;max-width:none;padding-top:clamp(5rem,11vw,8rem);padding-bottom:clamp(5rem,11vw,8rem)}.hero:not(.hero-split) h1{max-width:8.6em}.hero:not(.hero-split) .lead{max-width:26em}.hero:not(.hero-split) h1{margin-inline:0}.hero:not(.hero-split) .lead{margin-inline:0}.hero:not(.hero-split) .actions{justify-content:flex-start}.hero:not(.hero-split) .eyebrow{justify-content:flex-start}.hero:not(.hero-split) .eyebrow span:first-child{display:none}.split{grid-template-columns:1fr 1fr}.rev>:first-child{order:2}.steps{grid-template-columns:repeat(3,1fr)}.loc-grid{grid-template-columns:repeat(3,1fr)}.stats{grid-template-columns:repeat(4,1fr)}.facts-grid{grid-template-columns:1.2fr 1fr 1fr}.ftr-grid{grid-template-columns:1.4fr 1fr 1fr 1fr}.sticky{display:none}body{padding-bottom:0}}
@media (max-width:759px){.nav a:not(.btn){display:none}.hero-img{order:-1}.hero:not(.hero-split) .hero-copy{padding-top:13rem}.hero:not(.hero-split) .hero-media img{object-position:58% 20%}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn,.loc-card{transition:none}}
