@font-face{
  font-family:"Poynter";
  src:url("poynter.ttf") format("truetype");
  font-weight:400;
  font-display:swap;
}
:root{
  --ink:#4a4c4f;
  --ink-head:#58595c;
  --ink-soft:#6e7073;
  --sand:#f5f1ea;
  --sage:#efe9e0;
  --sage-deep:#46474b;
  --gold:#a08b5f;
  --white:#fffdf9;
  --serif:"Poynter", Georgia, serif;
  --sans:"Montserrat", "Helvetica Neue", sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--sans);color:var(--ink);background:var(--sand);line-height:1.65;font-weight:300;font-size:17px}
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.2;color:var(--ink-head)}
img{display:block;max-width:100%}
a{color:inherit}

.eyebrow{font-family:var(--sans);text-transform:uppercase;letter-spacing:.28em;font-size:.72rem;color:var(--gold);font-weight:500;margin-bottom:1rem}
.wrap{max-width:1140px;margin:0 auto;padding:0 24px}

/* Nav */
nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:18px 28px;transition:background .3s,box-shadow .3s}
nav.scrolled{background:rgba(255,253,249,.92);backdrop-filter:blur(10px);box-shadow:0 1px 0 rgba(43,46,39,.08)}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none}
.brand img{height:38px;width:auto;filter:brightness(0) invert(1);transition:filter .3s}
nav.scrolled .brand img{filter:none}
.brand span{font-family:var(--sans);font-size:.72rem;text-transform:uppercase;letter-spacing:.3em;color:rgba(255,255,255,.85);transition:color .3s;padding-top:6px}
nav.scrolled .brand span{color:var(--ink-soft)}
.nav-links{display:flex;gap:32px;align-items:center;list-style:none}
.nav-links a{text-decoration:none;font-size:.82rem;text-transform:uppercase;letter-spacing:.18em;color:rgba(255,255,255,.85);transition:color .3s}
nav.scrolled .nav-links a{color:var(--ink-soft)}
.nav-links a:not(.btn){white-space:nowrap}
.nav-links a:hover{color:var(--gold)}
.btn{display:inline-block;background:var(--gold);color:#fff !important;text-decoration:none;padding:13px 30px;border-radius:999px;font-size:.82rem;text-transform:uppercase;letter-spacing:.16em;font-weight:500;transition:background .25s,transform .25s;border:0;cursor:pointer}
.btn:hover{background:#8d7a4e;transform:translateY(-1px)}
.btn-nav{padding:10px 22px}
.btn-ghost{background:transparent;border:1px solid rgba(255,255,255,.75)}
.btn-ghost:hover{background:rgba(255,255,255,.12)}

/* Mobile menu */
.nav-toggle{display:none;background:none;border:0;cursor:pointer;flex-direction:column;gap:5px;padding:8px;z-index:60}
.nav-toggle span{display:block;width:24px;height:2px;background:#fff;border-radius:2px;transition:transform .3s,opacity .3s,background .3s}
nav.scrolled .nav-toggle span,nav.open .nav-toggle span{background:var(--ink-head)}
nav.open .nav-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}
nav.open .nav-toggle span:nth-child(2){opacity:0}
nav.open .nav-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media (max-width:760px){
  nav{padding:14px 20px}
  nav.open{background:rgba(255,253,249,.98);backdrop-filter:blur(10px)}
  nav.open .brand img{filter:none}
  nav.open .brand span{color:var(--ink-soft)}
  .nav-toggle{display:flex}
  .nav-links{position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:rgba(255,253,249,.98);backdrop-filter:blur(10px);padding:8px 0 14px;box-shadow:0 14px 34px rgba(43,46,39,.14);opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .25s,transform .25s,visibility .25s}
  nav.open .nav-links{opacity:1;visibility:visible;transform:none}
  .nav-links li{width:100%}
  .nav-links a:not(.btn){display:block;color:var(--ink-soft) !important;padding:14px 28px}
  .nav-links a:not(.btn)::after{display:none}
  .nav-links li:last-child{padding:12px 24px 4px;text-align:center}
  .nav-links .btn{display:block}
}

/* Hero (main page) */
header.hero{position:relative;min-height:100svh;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;isolation:isolate}
header.hero::before{content:"";position:absolute;inset:0;background:url("hero-main.jpg") center 58%/cover no-repeat;z-index:-2}
header.hero::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 70% 55% at center 46%,rgba(18,22,16,.5) 0%,rgba(18,22,16,.28) 45%,rgba(18,22,16,0) 78%),linear-gradient(180deg,rgba(18,22,16,.5) 0%,rgba(18,22,16,.2) 42%,rgba(18,22,16,.62) 100%);z-index:-1}
.hero-inner{padding:120px 24px 80px;max-width:820px}
.hero-inner .eyebrow{color:#e6ddc9}
header.hero h1{font-size:clamp(2.6rem,6vw,4.6rem);font-weight:400;margin-bottom:1.4rem;text-wrap:balance;color:#fff}
header.hero p{font-size:clamp(1rem,2vw,1.2rem);color:rgba(255,255,255,.9);max-width:560px;margin:0 auto 2.4rem}
.hero-ctas{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.scroll-hint{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);color:rgba(255,255,255,.7);font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;text-decoration:none}

/* Page hero (sub-pages) */
header.page-hero{position:relative;min-height:62svh;display:flex;align-items:flex-end;color:#fff;isolation:isolate}
header.page-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,24,18,.42) 0%,rgba(20,24,18,.18) 45%,rgba(20,24,18,.62) 100%);z-index:-1}
header.page-hero .bg{position:absolute;inset:0;background-size:cover;background-position:center;z-index:-2}
.page-hero-inner{padding:140px 24px 64px;max-width:1140px;margin:0 auto;width:100%}
.page-hero-inner .eyebrow{color:#e6ddc9}
header.page-hero h1{font-size:clamp(2.2rem,5vw,3.6rem);color:#fff;margin-bottom:.8rem;text-wrap:balance;max-width:720px}
header.page-hero p{max-width:600px;color:rgba(255,255,255,.9)}
.crumb{font-size:.78rem;text-transform:uppercase;letter-spacing:.18em;margin-bottom:1.6rem}
.crumb a{color:#e6ddc9;text-decoration:none}
.crumb a:hover{text-decoration:underline}
.crumb span{color:rgba(255,255,255,.65)}

/* Sections */
section{padding:110px 0}
section.tight{padding:70px 0}
.section-head{text-align:center;max-width:640px;margin:0 auto 70px}
.section-head h2{font-size:clamp(2rem,4vw,2.9rem);margin-bottom:1rem}
.section-head p{color:var(--ink-soft)}

/* Service cards (main page) */
.service{display:grid;grid-template-columns:1fr 1fr;gap:0;align-items:stretch;background:var(--white);border-radius:20px;overflow:hidden;box-shadow:0 8px 40px rgba(43,46,39,.07);margin-bottom:48px}
.service .pic{min-height:380px;background-size:cover;background-position:center}
.service .txt{padding:56px 58px;display:flex;flex-direction:column;justify-content:center}
.service:nth-child(even) .pic{order:2}
.service h3{font-size:1.9rem;margin-bottom:1rem}
.service p{color:var(--ink-soft);margin-bottom:.9rem}
.service .cta{margin-top:1.4rem;display:flex;align-items:center;gap:26px;flex-wrap:wrap}
.tags{display:flex;flex-wrap:wrap;gap:8px;margin:.4rem 0 .6rem}
.tag{font-size:.72rem;text-transform:uppercase;letter-spacing:.14em;background:var(--sage);color:var(--ink-soft);padding:6px 14px;border-radius:999px}
.price-note{font-size:.88rem;color:var(--ink-soft);border-left:2px solid var(--gold);padding-left:14px;margin-top:.4rem}
.link{color:var(--gold);text-decoration:none;font-weight:500;font-size:.85rem;text-transform:uppercase;letter-spacing:.16em;border-bottom:1px solid transparent;transition:border-color .2s}
.link:hover{border-color:var(--gold)}
@media (max-width:860px){
  .service{grid-template-columns:1fr}
  .service .pic{min-height:240px;order:0 !important}
  .service .txt{padding:36px 28px}
  section{padding:80px 0}
}

/* Rates accordions */
.rates{margin-top:1rem;border-top:1px solid var(--sage)}
.rates details{border-bottom:1px solid var(--sage)}
.rates summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;padding:13px 2px;font-size:.78rem;text-transform:uppercase;letter-spacing:.16em;color:var(--gold);font-weight:500}
.rates summary::-webkit-details-marker{display:none}
.rates summary::after{content:"+";font-family:var(--serif);font-size:1.1rem;color:var(--gold)}
.rates details[open] summary::after{content:"−"}
.rates .rrow{display:flex;justify-content:space-between;gap:14px;font-size:.88rem;color:var(--ink-soft);padding:5px 2px}
.rates .rrow span:last-child{white-space:nowrap;color:var(--ink)}
.rates .rgroup{font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;color:var(--ink);padding:8px 2px 2px;font-weight:500}
.rates .rfoot{font-size:.78rem;color:var(--ink-soft);padding:6px 2px 12px;font-style:italic}

/* Steps */
.dark{background:var(--sage-deep);color:#eee9e1}
.dark .section-head h2{color:#f7f3ec}
.dark .section-head p{color:#c2bfb8}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:40px}
.steps.five{grid-template-columns:repeat(5,1fr)}
.step{text-align:center;padding:0 8px}
.step .num{font-family:var(--serif);font-size:3rem;color:#d8d2c1;line-height:1;margin-bottom:.8rem}
.step h3{font-size:1.25rem;margin-bottom:.5rem;color:#f7f3ec}
.step p{font-size:.92rem;color:#c2bfb8}
@media (max-width:860px){.steps,.steps.five{grid-template-columns:repeat(2,1fr);gap:36px 20px}}

/* Stats */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;text-align:center}
.stat .big{font-family:var(--serif);font-size:clamp(2.6rem,5vw,3.8rem);color:var(--gold)}
.stat h3{font-size:1.1rem;margin:.3rem 0 .4rem}
.stat p{font-size:.92rem;color:var(--ink-soft)}
@media (max-width:640px){.stats{grid-template-columns:1fr;gap:40px}}

/* Menu cards (sub-pages) */
.menu-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.menu-grid.two{grid-template-columns:repeat(2,1fr)}
.menu-card{background:var(--white);border-radius:16px;padding:30px 30px 26px;box-shadow:0 6px 30px rgba(43,46,39,.06)}
.menu-card h3{font-size:1.35rem;margin-bottom:.6rem}
.menu-card p{font-size:.93rem;color:var(--ink-soft)}
.menu-card .mc-items{font-size:.93rem;color:var(--ink-soft)}
.menu-card .mc-items li{margin:4px 0 4px 18px}
.menu-card .mc-price{margin-top:.9rem;font-size:.95rem;color:var(--gold);font-weight:500}
@media (max-width:900px){.menu-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:620px){.menu-grid,.menu-grid.two{grid-template-columns:1fr}}

/* Pricing tables */
table.pricing{width:100%;border-collapse:separate;border-spacing:0;background:var(--white);border-radius:18px;overflow:hidden;box-shadow:0 6px 30px rgba(43,46,39,.06)}
table.pricing th{font-family:var(--sans);font-size:.75rem;text-transform:uppercase;letter-spacing:.14em;font-weight:500;color:#f7f3ec;background:var(--sage-deep);padding:14px 18px;text-align:left}
table.pricing th:first-child{border-top-left-radius:18px}
table.pricing th:last-child{border-top-right-radius:18px}
table.pricing tr:last-child td:first-child{border-bottom-left-radius:18px}
table.pricing tr:last-child td:last-child{border-bottom-right-radius:18px}
table.pricing td{padding:13px 18px;font-size:.95rem;color:var(--ink-soft);border-bottom:1px solid var(--sage)}
table.pricing tr:last-child td{border-bottom:0}
table.pricing td:first-child{color:var(--ink);font-weight:400}
table.pricing .num{text-align:right;white-space:nowrap}
table.pricing th.num{text-align:right}
.note{font-size:.82rem;color:var(--ink-soft);font-style:italic;margin-top:14px}
.twocol{display:grid;grid-template-columns:1fr 1fr;gap:26px;align-items:start}
@media (max-width:860px){.twocol{grid-template-columns:1fr}}

/* Feature list */
.features{display:grid;grid-template-columns:repeat(4,1fr);gap:30px}
.feature h3{font-size:1.15rem;margin-bottom:.4rem}
.feature p{font-size:.9rem;color:var(--ink-soft)}
.feature .fnum{font-family:var(--serif);font-size:2rem;color:var(--gold);line-height:1.2;margin-bottom:.5rem}
@media (max-width:860px){.features{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.features{grid-template-columns:1fr}}

/* Big CTA band */
.cta-band{position:relative;color:#fff;text-align:center;isolation:isolate;padding:130px 0}
.cta-band::after{content:"";position:absolute;inset:0;background:rgba(24,28,20,.62);z-index:-1}
.cta-band .bg{position:absolute;inset:0;background-size:cover;background-position:center;z-index:-2}
.cta-band h2{font-size:clamp(2.2rem,4.5vw,3.2rem);margin-bottom:1rem;color:#fff}
.cta-band p{max-width:520px;margin:0 auto 2.2rem;color:rgba(255,255,255,.88)}
.cta-band .eyebrow{color:#e6ddc9}
.wa-row{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;align-items:center}
.btn-wa{display:inline-flex;align-items:center;gap:10px;background:#25d366}
.btn-wa:hover{background:#1fb958}
.btn-wa svg{width:18px;height:18px;fill:#fff}

/* Floating WhatsApp button */
.wa-fab{position:fixed;right:22px;bottom:22px;z-index:60;width:58px;height:58px;border-radius:50%;background:#25d366;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 24px rgba(0,0,0,.25);transition:transform .2s}
.wa-fab:hover{transform:scale(1.07)}
.wa-fab svg{width:30px;height:30px;fill:#fff}

/* Other services strip */
.others{padding:80px 0}
.others h2{text-align:center;font-size:clamp(1.8rem,3.5vw,2.4rem);margin-bottom:50px}
.others-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.other-card{position:relative;border-radius:14px;overflow:hidden;min-height:200px;display:flex;align-items:flex-end;text-decoration:none;isolation:isolate}
.other-card .bg{position:absolute;inset:0;background-size:cover;background-position:center;z-index:-2;transition:transform .4s}
.other-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,24,18,0) 30%,rgba(20,24,18,.65) 100%);z-index:-1}
.other-card:hover .bg{transform:scale(1.05)}
.other-card span{color:#fff;font-family:var(--serif);font-size:1.15rem;padding:18px}
@media (max-width:860px){.others-grid{grid-template-columns:repeat(2,1fr)}}

footer{background:var(--sage-deep);color:#b5b2ac;padding:36px 0;font-size:.85rem}
footer .wrap{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}
footer a{color:#d8d2c1;text-decoration:none}
footer a:hover{color:var(--gold)}
footer .fbrand img{height:34px;width:auto;filter:brightness(0) invert(.95)}
footer .ig{display:inline-block;margin-left:12px;color:#b5b2ac;opacity:.75;transition:opacity .25s,color .25s}
footer .ig:hover{opacity:1;color:var(--gold)}
footer .ig svg{width:17px;height:17px;vertical-align:-3px;fill:currentColor}

/* ——— Polish layer: motion & micro-interactions ——— */
html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
::selection{background:var(--gold);color:#fff}

/* Scroll reveal */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .9s cubic-bezier(.2,.65,.25,1),transform .9s cubic-bezier(.2,.65,.25,1)}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

/* Hero cinematics */
header.hero::before,header.page-hero .bg{animation:heroZoom 16s cubic-bezier(.2,.6,.2,1) forwards}
@keyframes heroZoom{from{transform:scale(1.07)}to{transform:scale(1)}}
header.hero,header.page-hero{overflow:hidden}
.hero-inner>*,.page-hero-inner>*{opacity:0;animation:rise .9s cubic-bezier(.2,.65,.25,1) forwards}
.hero-inner>*:nth-child(1),.page-hero-inner>*:nth-child(1){animation-delay:.15s}
.hero-inner>*:nth-child(2),.page-hero-inner>*:nth-child(2){animation-delay:.3s}
.hero-inner>*:nth-child(3),.page-hero-inner>*:nth-child(3){animation-delay:.45s}
.hero-inner>*:nth-child(4),.page-hero-inner>*:nth-child(4){animation-delay:.6s}
@keyframes rise{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){header.hero::before,header.page-hero .bg,.hero-inner>*,.page-hero-inner>*{animation:none;opacity:1}}

/* Card behaviors */
.service{transition:transform .5s cubic-bezier(.2,.65,.25,1),box-shadow .5s}
.service:hover{transform:translateY(-4px);box-shadow:0 22px 64px rgba(43,46,39,.13)}
.service .pic{transition:transform 1.4s cubic-bezier(.2,.6,.2,1)}
.service:hover .pic{transform:scale(1.04)}
.menu-card{transition:transform .4s cubic-bezier(.2,.65,.25,1),box-shadow .4s}
.menu-card:hover{transform:translateY(-3px);box-shadow:0 16px 44px rgba(43,46,39,.11)}

/* Nav link underline */
.nav-links a:not(.btn){position:relative;padding-bottom:3px}
.nav-links a:not(.btn)::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--gold);transition:width .35s cubic-bezier(.2,.65,.25,1)}
.nav-links a:not(.btn):hover::after{width:100%}

/* Table & accordion refinement */
table.pricing tbody tr,table.pricing tr{transition:background .25s}
table.pricing tr:hover td{background:#faf7f0}
.rates summary{transition:color .25s,letter-spacing .25s}
.rates summary:hover{color:#8d7a4e}

/* Link arrow drift */
.link{transition:border-color .2s,color .25s}
.link:hover{color:#8d7a4e}

/* Floating WhatsApp: gentle ping */
.wa-fab{isolation:isolate}
.wa-fab::after{content:"";position:absolute;inset:0;border-radius:50%;border:1.5px solid rgba(37,211,102,.55);animation:ping 3s cubic-bezier(.2,.6,.2,1) infinite;z-index:-1}
@keyframes ping{0%{transform:scale(1);opacity:.9}75%,100%{transform:scale(1.55);opacity:0}}
@media (prefers-reduced-motion:reduce){.wa-fab::after{animation:none;display:none}}

/* Imagery & focus refinement */
.other-card span{transition:transform .35s;will-change:transform}
.other-card:hover span{transform:translateY(-3px)}
a:focus-visible,summary:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:4px}

/* ——— Villa collection cards ——— */
.villa-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.villa-grid.two{grid-template-columns:repeat(2,1fr)}
.villa-card{background:var(--white);border-radius:18px;overflow:hidden;box-shadow:0 8px 36px rgba(43,46,39,.07);display:flex;flex-direction:column;transition:transform .5s cubic-bezier(.2,.65,.25,1),box-shadow .5s}
.villa-card:hover{transform:translateY(-4px);box-shadow:0 22px 64px rgba(43,46,39,.14)}
.villa-card .vpic{position:relative;height:236px;background-size:cover;background-position:center;overflow:hidden}
.villa-card .vpic::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,24,18,0) 55%,rgba(20,24,18,.5) 100%)}
.villa-card .vpic-img{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform 1.4s cubic-bezier(.2,.6,.2,1)}
.villa-card:hover .vpic-img{transform:scale(1.06)}
.villa-card .vbadge{position:absolute;top:14px;left:14px;z-index:2;background:rgba(255,253,249,.92);color:var(--ink-head);font-size:.66rem;text-transform:uppercase;letter-spacing:.14em;font-weight:600;padding:6px 12px;border-radius:999px;backdrop-filter:blur(4px)}
.villa-card .vbadge.gold{background:var(--gold);color:#fff}
.villa-card .vprice{position:absolute;bottom:14px;right:14px;z-index:2;color:#fff;font-size:.82rem;font-weight:400}
.villa-card .vprice b{font-family:var(--serif);font-size:1.18rem;font-weight:400}
.villa-card .vbody{padding:24px 26px 26px;display:flex;flex-direction:column;flex:1}
.villa-card .vname{font-family:var(--serif);font-size:1.42rem;color:var(--ink-head);margin-bottom:.3rem}
.villa-card .vmeta{font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;color:var(--gold);margin-bottom:.7rem}
.villa-card .vblurb{font-size:.92rem;color:var(--ink-soft);margin-bottom:1rem;flex:1}
.villa-card .vtags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:1.1rem}
.villa-card .vtags .tag{font-size:.66rem;padding:5px 11px}
.villa-card .vfoot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;padding-top:14px;border-top:1px solid var(--sage)}
.villa-card .vspecs{display:flex;gap:14px;font-size:.82rem;color:var(--ink-soft)}
.villa-card .vspecs span{display:inline-flex;align-items:center;gap:5px}
@media (max-width:960px){.villa-grid,.villa-grid.two{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.villa-grid,.villa-grid.two{grid-template-columns:1fr}}

/* Brand emblem mark (on dark) */
.emblem-mark{height:96px;width:auto;margin:0 auto 1.6rem;display:block;filter:brightness(0) invert(.92);opacity:.95}
@media (max-width:560px){.emblem-mark{height:78px}}

/* Inline value props row */
.valrow{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;text-align:center}
.valrow .val .vi{font-family:var(--serif);font-size:2.2rem;color:var(--gold);line-height:1;margin-bottom:.5rem}
.valrow .val h3{font-size:1.1rem;margin-bottom:.35rem}
.valrow .val p{font-size:.9rem;color:var(--ink-soft)}
@media (max-width:860px){.valrow{grid-template-columns:repeat(2,1fr);gap:34px 22px}}
@media (max-width:480px){.valrow{grid-template-columns:1fr}}

/* Photo galleries */
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:48px}
.gallery.two{grid-template-columns:repeat(2,1fr)}
.gallery img{width:100%;height:100%;object-fit:cover;border-radius:16px;aspect-ratio:4/3;box-shadow:0 8px 32px rgba(43,46,39,.08);transition:transform .6s cubic-bezier(.2,.65,.25,1)}
.gallery.two img{aspect-ratio:16/9}
.gallery a,.gallery .gitem{display:block;overflow:hidden;border-radius:16px}
.gallery img:hover{transform:scale(1.035)}
@media (max-width:680px){.gallery,.gallery.two{grid-template-columns:1fr}}

/* Image-topped menu cards */
.menu-card .mc-pic{margin:-30px -30px 20px;height:200px;background-size:cover;background-position:center;border-radius:16px 16px 0 0;transition:opacity .4s}

/* Testimonials */
.quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.quote{background:var(--white);border-radius:18px;padding:38px 34px;box-shadow:0 8px 36px rgba(43,46,39,.07);display:flex;flex-direction:column}
.quote .stars{color:var(--gold);letter-spacing:3px;font-size:.85rem;margin-bottom:14px}
.quote p{font-family:var(--serif);font-size:1.22rem;line-height:1.45;color:var(--ink-head);margin-bottom:18px;flex:1}
.quote .who{font-size:.78rem;text-transform:uppercase;letter-spacing:.16em;color:var(--ink-soft)}
@media (max-width:860px){.quotes{grid-template-columns:1fr;gap:20px}}

/* Spotlight feature (image + text) */
.spotlight{display:grid;grid-template-columns:1fr 1fr;gap:0;background:var(--white);border-radius:18px;overflow:hidden;box-shadow:0 10px 44px rgba(43,46,39,.1);margin-top:26px}
.spotlight .sp-pic{min-height:300px;background-size:cover;background-position:center}
.spotlight .sp-txt{padding:46px 48px;display:flex;flex-direction:column;justify-content:center}
.spotlight .sp-txt .eyebrow{margin-bottom:.7rem}
.spotlight h3{font-size:1.7rem;margin-bottom:.8rem}
.spotlight p{color:var(--ink-soft)}
.spotlight .mc-price{margin-top:1rem;font-size:1.05rem;color:var(--gold);font-weight:500}
@media (max-width:760px){.spotlight{grid-template-columns:1fr}.spotlight .sp-pic{min-height:220px}.spotlight .sp-txt{padding:34px 28px}}
