/* ===== The Pool Space Villa Pattaya — warm neutral luxury ===== */

:root{
  --cream:#FBF7F0;        /* page base */
  --sand:#F2E9DC;         /* alt sections */
  --sand-2:#EADFCC;
  --card:#FFFFFF;
  --ink:#2B2622;          /* main text */
  --ink-soft:#6B635A;     /* secondary text */
  --teal:#0E6E78;         /* pool water */
  --teal-deep:#0B4E55;
  --teal-soft:#E1F0F1;
  --gold:#BD9A5F;         /* accent / numbers */
  --gold-deep:#9E7E45;
  --line:#1FA866;         /* LINE green */
  --shadow:0 18px 50px -28px rgba(43,38,34,.45);
  --shadow-sm:0 8px 24px -16px rgba(43,38,34,.4);
  --r:22px;
  --maxw:1180px;
  /* SERIF brand typography (winner — matches book-serif.albert-academy.com):
     display/headings = Cormorant (serif), body + Thai = Prompt. Prompt covers Thai
     glyphs; Cormorant is Latin-only so Prompt trails it as the Thai fallback inside
     any heading. */
  --en:"Cormorant","Prompt",Georgia,serif;        /* display / headers (serif) */
  --th:"Prompt",-apple-system,system-ui,sans-serif;  /* body + Thai */
  /* Original brand-font header tagline stack — pinned so the top header stays identical: */
  --tag-font:Arial,"Sarabun",-apple-system,system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:78px}
body{
  font-family:var(--th);
  color:var(--ink);
  background:var(--cream);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3{font-family:var(--en);font-weight:500;line-height:1.2}
b{font-weight:600}

/* ===== buttons ===== */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.4em;
  padding:.85em 1.5em;border-radius:999px;font-family:var(--th);font-weight:500;
  font-size:.98rem;cursor:pointer;border:none;transition:.25s;white-space:nowrap;
}
.btn--gold{background:var(--gold);color:#fff;box-shadow:0 10px 24px -12px var(--gold)}
.btn--gold:hover{background:var(--gold-deep);transform:translateY(-2px)}
.btn--ghost{background:rgba(255,255,255,.14);color:#fff;border:1.5px solid rgba(255,255,255,.7);backdrop-filter:blur(4px)}
.btn--ghost:hover{background:rgba(255,255,255,.25)}
.btn--line{background:var(--line);color:#fff}
.btn--line:hover{background:#178a52;transform:translateY(-2px)}

/* ===== NAV ===== */
.nav{position:sticky;top:0;z-index:50;background:rgba(251,247,240,.86);backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(189,154,95,.18);transition:.3s}
.nav.scrolled{box-shadow:0 6px 24px -18px rgba(0,0,0,.5)}
.nav__inner{max-width:var(--maxw);margin:0 auto;padding:.7rem 1.1rem;display:flex;align-items:center;gap:1rem}
.nav__brand{display:flex;align-items:center;gap:.7rem;text-decoration:none}
.nav__logo{height:46px;width:auto;display:block}
.nav__tag{font-family:var(--tag-font);font-size:.52rem;font-weight:600;letter-spacing:.3em;color:var(--gold-deep);align-self:center;white-space:nowrap;padding-left:.7rem;border-left:1px solid rgba(189,154,95,.4);line-height:1.3}
@media(max-width:560px){
  .nav__logo{height:38px}
  .nav__tag{display:none}
}
.nav__links{display:none;margin-left:auto;gap:1.4rem}
.nav__links a{font-size:.95rem;font-weight:500;color:var(--ink);display:flex;flex-direction:column;line-height:1.05;transition:.2s}
.nav__links a span{font-size:.62rem;color:var(--ink-soft);font-weight:400}
.nav__links a:hover{color:var(--teal)}
.nav__cta{display:none;font-size:.88rem;padding:.6em 1.1em}
.nav__toggle{margin-left:auto;background:none;border:none;width:34px;height:30px;display:flex;flex-direction:column;justify-content:center;gap:6px;cursor:pointer}
.nav__toggle span{height:2px;background:var(--ink);border-radius:2px;transition:.3s}
.nav.open .nav__toggle span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.nav.open .nav__toggle span:nth-child(2){opacity:0}
.nav.open .nav__toggle span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

@media(min-width:900px){
  .nav__links{display:flex}
  .nav__cta{display:inline-flex}
  .nav__toggle{display:none}
}
/* mobile drawer */
@media(max-width:899px){
  .nav__links{position:absolute;top:100%;left:0;right:0;flex-direction:column;background:var(--cream);
    padding:1rem 1.4rem 1.4rem;gap:1rem;border-bottom:1px solid rgba(189,154,95,.2);
    transform:translateY(-12px);opacity:0;pointer-events:none;transition:.28s;box-shadow:var(--shadow-sm)}
  .nav.open .nav__links{display:flex;transform:none;opacity:1;pointer-events:auto}
  .nav__links a{flex-direction:row;gap:.5rem;align-items:baseline;font-size:1.05rem}
}

/* ===== HERO ===== */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;color:#fff;overflow:hidden}
.hero__bg{position:absolute;inset:0;background-size:cover;background-position:center;transform:scale(1.05);
  animation:kenburns 18s ease-out forwards}
@keyframes kenburns{to{transform:scale(1)}}
.hero__scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,78,85,.32) 0%,rgba(20,16,12,.18) 40%,rgba(20,16,12,.82) 100%)}
.hero__content{position:relative;max-width:var(--maxw);margin:0 auto;width:100%;padding:2rem 1.3rem 3.2rem}
.hero__eyebrow{font-size:.72rem;letter-spacing:.42em;color:#f6e7c9;margin-bottom:1rem}
.hero__title{font-size:clamp(2.6rem,8vw,5rem);font-family:var(--en);font-weight:500;letter-spacing:.01em;text-shadow:0 4px 30px rgba(0,0,0,.4)}
.hero__title-iconic{font-family:var(--en);font-weight:500;font-size:clamp(1.3rem,4.4vw,2.4rem);letter-spacing:.06em;color:var(--gold);display:inline-block;margin-top:.15em}
.hero__title-th{font-family:var(--th);font-weight:500;font-size:clamp(1.2rem,4vw,2rem);letter-spacing:.02em;display:inline-block;margin-top:.2em}
.hero__tag{margin-top:1rem;max-width:640px;font-size:clamp(1rem,2.4vw,1.18rem);color:#f3ede2}
.hero__price{margin-top:.9rem;font-size:1.15rem;color:#fff}
.hero__price b{font-family:var(--en);font-size:1.9rem;color:var(--gold);font-weight:500;vertical-align:-2px}

.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:.6rem;margin:1.6rem 0;max-width:560px}
.stat{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(8px);
  border-radius:16px;padding:.9rem .4rem;text-align:center}
.stat__num{display:block;font-family:var(--en);font-weight:500;font-size:clamp(1.8rem,5vw,2.5rem);color:var(--gold);line-height:1}
.stat__label{font-size:.74rem;color:#f3ede2;display:flex;flex-direction:column;margin-top:.3rem}
.stat__label small{font-size:.66rem;opacity:.85}

.hero__cta{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:.4rem}
.hero__rated{margin-top:1.1rem;font-size:.86rem;color:#fff;font-weight:500;letter-spacing:.01em}
.hero__rated{display:inline-block;background:rgba(255,255,255,.12);border:1px solid rgba(246,231,201,.4);
  backdrop-filter:blur(6px);padding:.45em 1em;border-radius:999px}
.hero__trust{margin-top:.8rem;font-size:.82rem;color:#f0e4cf;letter-spacing:.02em}

/* ===== TRUST STRIP ===== */
.trust{background:var(--teal-deep);color:#fff}
.trust__inner{max-width:var(--maxw);margin:0 auto;padding:1.2rem 1.3rem;display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}
.trust__item{display:flex;flex-direction:column;font-size:.92rem}
.trust__item b{color:#fff}
.trust__item span{font-size:.7rem;color:#a9d2d6;letter-spacing:.06em}
@media(min-width:760px){.trust__inner{grid-template-columns:repeat(4,1fr)}.trust__item{text-align:center;align-items:center}}

/* ===== SECTIONS ===== */
.section{max-width:var(--maxw);margin:0 auto;padding:4.5rem 1.3rem}
.section--alt{max-width:none;background:var(--sand)}
.section--alt > *{max-width:var(--maxw);margin-left:auto;margin-right:auto}
.section__head{text-align:center;max-width:760px;margin:0 auto 2.6rem}
.kicker{font-size:.72rem;letter-spacing:.34em;color:var(--gold-deep);text-transform:uppercase;margin-bottom:.7rem}
.section__head h2{font-size:clamp(1.7rem,4.4vw,2.7rem);color:var(--ink)}
.section__head h2 b{color:var(--gold);font-family:var(--en);font-size:1.18em;font-weight:500;vertical-align:-3px}
.section__sub{margin-top:.9rem;color:var(--ink-soft);font-size:1.02rem}

.card{background:var(--card);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden}

/* ===== ROOMS ===== */
.rooms{display:grid;gap:1.6rem}
@media(min-width:820px){.rooms{grid-template-columns:1fr 1fr}}
.room{background:var(--card);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column}
.room__cover{position:relative;aspect-ratio:16/10;overflow:hidden;cursor:pointer}
.room__cover img{width:100%;height:100%;object-fit:cover;transition:.6s}
.room:hover .room__cover img{transform:scale(1.05)}
.room__badge{position:absolute;top:1rem;left:1rem;background:var(--gold);color:#fff;font-size:.78rem;font-weight:500;padding:.35em .9em;border-radius:999px}
.room__count{position:absolute;bottom:1rem;right:1rem;background:rgba(11,78,85,.82);color:#fff;font-size:.76rem;padding:.35em .8em;border-radius:999px;backdrop-filter:blur(4px)}
.room__body{padding:1.4rem 1.5rem 1.6rem;display:flex;flex-direction:column;flex:1}
.room__title{font-size:1.4rem;color:var(--teal-deep);display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap}
.room__title small{font-family:var(--en);font-size:1rem;color:var(--gold-deep);font-weight:500}
.room__specs{display:flex;flex-wrap:wrap;gap:.5rem;margin:.9rem 0}
.room__specs span{background:var(--teal-soft);color:var(--teal-deep);font-size:.82rem;padding:.3em .8em;border-radius:999px}
.room__desc{color:var(--ink-soft);font-size:.95rem}
/* layout panel: hidden until the room card is "open" */
.room__layout{display:none;margin:1.1rem -1.5rem -1.6rem;}
.room.open .room__layout{display:block}
.room__more{margin-top:1rem;align-self:flex-start;background:none;border:1.5px solid var(--gold);color:var(--gold-deep);
  border-radius:999px;padding:.5em 1.2em;font-family:var(--th);font-size:.88rem;cursor:pointer;transition:.2s}
.room__more:hover{background:var(--gold);color:#fff}

/* ===== FLOOR-GROUPED ROOM LAYOUT (cream panel — blends with the villa card above) ===== */
.rlay{background:var(--cream);color:var(--ink);padding:1.6rem 1.5rem 1.8rem;
  border-bottom-left-radius:var(--r);border-bottom-right-radius:var(--r)}
.rlay__floor + .rlay__floor{margin-top:1.6rem}
.rlay__divider{display:flex;align-items:baseline;gap:.6rem;padding-bottom:.7rem;margin-bottom:1rem;
  border-bottom:1px solid rgba(189,154,95,.35)}
.rlay__fl-th{font-size:1.18rem;font-weight:600;color:var(--teal-deep)}
.rlay__fl-en{font-family:var(--en);font-size:1.05rem;letter-spacing:.04em;color:var(--gold-deep)}
.rlay__rooms{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem}
.rlay__room{background:var(--card);border:1px solid rgba(43,38,34,.1);
  border-radius:14px;overflow:hidden;display:flex;flex-direction:column}
.rlay__room--tub{border-color:rgba(189,154,95,.55);box-shadow:0 0 0 1px rgba(189,154,95,.25) inset}
.rlay__photo{aspect-ratio:4/3;overflow:hidden;background:rgba(0,0,0,.2)}
.rlay__photo img{width:100%;height:100%;object-fit:cover;transition:transform .45s ease}
.rlay__room:hover .rlay__photo img{transform:scale(1.05)}
.rlay__cap{padding:.85rem .95rem 1rem;display:flex;flex-direction:column;gap:.25rem}
.rlay__rtitle{font-size:1.02rem;font-weight:600;color:var(--teal-deep);line-height:1.25}
.rlay__rtitle small{font-family:var(--en);font-weight:500;font-size:.92rem;color:var(--gold-deep);margin-left:.3em}
.rlay__spec{font-size:.86rem;color:var(--ink);line-height:1.4}
.rlay__spec--en{font-size:.8rem;color:var(--ink-soft)}
.rlay__photocap{margin-top:.35rem;font-size:.74rem;line-height:1.35;color:var(--ink-soft);
  border-top:1px solid rgba(43,38,34,.1);padding-top:.45rem}
.rlay__shared{margin-top:1rem;font-size:.82rem;color:var(--ink);line-height:1.5;
  background:var(--teal-soft);border-left:2px solid var(--gold);padding:.6rem .9rem;border-radius:0 8px 8px 0}
.rlay__shared--tail{margin-top:1.4rem}
@media(max-width:520px){
  .rlay{padding:1.3rem 1.1rem 1.5rem}
  .rlay__rooms{grid-template-columns:1fr}
}
.room__thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:.4rem;margin-top:1rem}
.room__thumbs img{aspect-ratio:1;object-fit:cover;border-radius:10px;cursor:pointer;transition:.2s}
.room__thumbs img:hover{opacity:.85}

/* ===== FACILITIES ===== */
.facil{display:grid;grid-template-columns:repeat(2,1fr);gap:.9rem}
@media(min-width:620px){.facil{grid-template-columns:repeat(3,1fr)}}
@media(min-width:960px){.facil{grid-template-columns:repeat(4,1fr)}}
.fac{background:var(--card);border-radius:18px;padding:1.4rem 1.1rem;box-shadow:var(--shadow-sm);
  display:flex;flex-direction:column;gap:.5rem;transition:.25s;border:1px solid rgba(189,154,95,.1)}
.fac:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.fac.fac--hero{border-color:var(--gold);background:linear-gradient(165deg,#fff,#fdf6ea)}
.fac__ico{width:42px;height:42px;display:flex;align-items:center;justify-content:center;border-radius:12px;
  background:var(--teal-soft);color:var(--teal-deep)}
.fac--hero .fac__ico{background:var(--gold);color:#fff}
.fac__ico svg{width:24px;height:24px}
.fac__name{font-weight:500;font-size:1rem;color:var(--ink)}
.fac__en{font-size:.74rem;color:var(--ink-soft)}

/* ===== GALLERY ===== */
.gallery{columns:2;column-gap:.7rem}
@media(min-width:640px){.gallery{columns:3}}
@media(min-width:980px){.gallery{columns:4}}
.gallery figure{break-inside:avoid;margin:0 0 .7rem;border-radius:14px;overflow:hidden;cursor:pointer;box-shadow:var(--shadow-sm)}
.gallery img{width:100%;transition:.5s}
.gallery figure:hover img{transform:scale(1.06)}

/* ===== BOOKING ===== */
.booking{display:grid;gap:1.6rem}
@media(min-width:900px){.booking{grid-template-columns:1.1fr .9fr;align-items:start}}
.cal{padding:1.4rem 1.4rem 1.2rem}
.cal__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}
.cal__head h3{font-size:1.15rem;color:var(--teal-deep)}
.cal__nav{width:38px;height:38px;border-radius:50%;border:1px solid var(--sand-2);background:var(--cream);
  font-size:1.3rem;color:var(--teal-deep);cursor:pointer;transition:.2s}
.cal__nav:hover{background:var(--teal);color:#fff;border-color:var(--teal)}
.cal__dow{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font-size:.74rem;color:var(--ink-soft);margin-bottom:.5rem}
.cal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.cal__cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:.86rem;border-radius:10px;position:relative}
.cal__cell--empty{visibility:hidden}
.cal__cell--avail{background:var(--teal-soft);color:var(--teal-deep)}
.cal__cell--near{background:#fdeccb;color:#8a6a1d}
.cal__cell--booked{background:#efe2e0;color:#b08f88;text-decoration:line-through}
.cal__cell--holiday{background:#e7e0f3;color:#6a52a8}
.cal__cell--closed{background:#ececec;color:#aaa}
.cal__cell--today{outline:2px solid var(--gold);outline-offset:-2px;font-weight:600}
.cal__legend{display:flex;flex-wrap:wrap;gap:.5rem 1rem;margin-top:1.1rem;font-size:.76rem;color:var(--ink-soft)}
.cal__legend span{display:flex;align-items:center;gap:.4rem}
.dot{width:12px;height:12px;border-radius:4px;display:inline-block}
.dot--avail{background:var(--teal-soft);border:1px solid var(--teal)}
.dot--near{background:#fdeccb;border:1px solid #d9a93c}
.dot--booked{background:#efe2e0;border:1px solid #c9a59d}
.dot--holiday{background:#e7e0f3;border:1px solid #9d86d4}
.dot--closed{background:#ececec;border:1px solid #c4c4c4}
.cal__note{margin-top:.8rem;font-size:.74rem;color:var(--ink-soft)}

.channels{display:flex;flex-direction:column;gap:.8rem}
.chan{background:var(--card);border-radius:16px;padding:1rem 1.2rem;box-shadow:var(--shadow-sm);
  display:flex;flex-direction:column;gap:.15rem;transition:.22s;border:1px solid rgba(189,154,95,.12)}
.chan span{font-size:.74rem;color:var(--ink-soft)}
.chan:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
/* icon variants: icon | stacked-text row */
.chan--primary,.chan--icon{flex-direction:row;align-items:center;gap:.85rem}
.chan__txt{display:flex;flex-direction:column;gap:.15rem;min-width:0}
.chan__ico{width:32px;height:32px;flex:none;object-fit:contain}
.chan__ico--line{width:34px;height:34px;background:var(--line);border-radius:9px;padding:3px}
.chan--icon .chan__ico{width:30px;height:30px}
.chan__emoji{font-size:1.5rem;line-height:1;flex:none;width:32px;text-align:center}
.chan--primary{background:var(--line);color:#fff;border:none}
.chan--primary .chan__ico--line{background:rgba(255,255,255,.18)}
.chan--primary .chan__top{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:#d6f4e4}
.chan--primary .chan__name{font-size:1.18rem;font-weight:600}
.chan--primary .chan__sub{font-size:.82rem;color:#e7fbf0}
.channels__grid{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.channels__grid .chan{font-weight:500}
.chan--soft{opacity:.78}
.chan--soft span{color:var(--gold-deep)}
.channels__note{font-size:.82rem;color:var(--ink-soft);text-align:center;margin-top:.3rem}

/* ===== OTA LOGO BUTTONS ===== */
.ota__label{font-size:.74rem;letter-spacing:.06em;color:var(--ink-soft);text-transform:uppercase;margin:.4rem 0 -.1rem}
.ota{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.ota__btn{background:var(--card);border:1px solid rgba(189,154,95,.2);border-radius:14px;
  height:60px;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.6rem 1rem;
  box-shadow:var(--shadow-sm);transition:.22s;position:relative}
.ota__btn:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--gold)}
.ota__btn img{height:26px;width:auto;max-width:100%;object-fit:contain}
.ota__btn--soft{opacity:.92}
.ota__btn--soft img{opacity:.62}
.ota__flag{position:absolute;bottom:5px;left:0;right:0;text-align:center;font-size:.62rem;
  color:var(--gold-deep);letter-spacing:.02em;line-height:1}
.ota__btn--soft{flex-direction:column;gap:.15rem;height:60px;justify-content:center}
.ota__btn--soft img{height:20px}
@media(min-width:520px){.ota{grid-template-columns:repeat(4,1fr)}}

/* ===== PLATFORM SCORE STRIP ===== */
.scores{display:grid;grid-template-columns:repeat(2,1fr);gap:.9rem;margin-bottom:2rem}
@media(min-width:760px){.scores{grid-template-columns:repeat(4,1fr)}}
.score{background:var(--card);border-radius:18px;padding:1.3rem 1rem 1.1rem;box-shadow:var(--shadow-sm);
  border:1px solid rgba(189,154,95,.14);text-align:center;display:flex;flex-direction:column;align-items:center;gap:.45rem;transition:.25s}
.score:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--gold)}
.score__logo{height:24px;width:auto;max-width:120px;object-fit:contain;margin-bottom:.1rem}
.score__logo--text{display:flex;align-items:center;height:24px}
.score__google{font-family:'Helvetica Neue',Arial,sans-serif;font-weight:700;font-size:1.2rem;letter-spacing:-.3px}
.score__num{font-family:var(--en);line-height:1;display:flex;align-items:baseline;gap:.2rem}
.score__num b{font-size:2.3rem;font-weight:700;color:var(--teal-deep)}
.score__num i{font-style:normal;font-size:.92rem;color:var(--ink-soft)}
.score__stars{color:var(--gold);font-size:.92rem;letter-spacing:.1em}
.score__meta{display:flex;flex-direction:column;gap:.15rem}
.score__tag{font-size:.72rem;font-weight:600;color:var(--gold-deep);letter-spacing:.02em}
.score__count{font-size:.74rem;color:var(--ink-soft)}
.score__sub{font-size:.62rem;color:var(--ink-soft);line-height:1.45;margin-top:.2rem;border-top:1px dashed var(--sand-2);padding-top:.45rem}
.score--link{cursor:pointer}
.score__cta{margin-top:.25rem;font-size:.72rem;font-weight:500;color:var(--teal);letter-spacing:.01em}
.score--link:hover .score__cta{color:var(--teal-deep);text-decoration:underline}

/* ===== REVIEWS / TESTIMONIALS ===== */
.reviews{display:grid;gap:1.1rem}
@media(min-width:640px){.reviews{grid-template-columns:1fr 1fr}}
@media(min-width:980px){.reviews{grid-template-columns:repeat(3,1fr)}}
.review{background:var(--card);border-radius:18px;padding:1.4rem 1.5rem;box-shadow:var(--shadow-sm);
  display:flex;flex-direction:column;gap:.7rem;border:1px solid rgba(189,154,95,.12);transition:.25s}
.review:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.review__stars{color:var(--gold);font-size:1.05rem;letter-spacing:.12em}
.review__quote{color:var(--ink);font-size:.98rem;font-style:italic;line-height:1.65;flex:1}
.review__quote::before{content:"\201C";color:var(--gold);font-family:var(--en);font-size:2rem;
  line-height:0;vertical-align:-.4rem;margin-right:.15rem}
.review__foot{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-top:.3rem;
  border-top:1px dashed var(--sand-2);padding-top:.8rem}
.review__name{font-weight:600;color:var(--teal-deep);font-size:.95rem}
.review__src{font-size:.68rem;letter-spacing:.04em;color:var(--ink-soft);background:var(--teal-soft);
  padding:.25em .7em;border-radius:999px;white-space:nowrap}
.review__gloss{color:var(--ink-soft);font-size:.86rem;line-height:1.55;margin-top:-.2rem}
.review--feature{border:1.5px solid var(--gold);background:linear-gradient(165deg,#fff,#fdf6ea)}
@media(min-width:640px){.review--feature{grid-column:span 2}}
@media(min-width:980px){.review--feature{grid-column:span 1}}
.review--love .review__love-head{font-weight:600;color:var(--teal-deep);font-size:1.02rem;display:flex;flex-direction:column;line-height:1.2}
.review--love .review__love-head small{font-size:.72rem;color:var(--ink-soft);font-weight:400}
.love-chips{display:flex;flex-wrap:wrap;gap:.5rem;flex:1;align-content:flex-start}
.love-chip{background:var(--teal-soft);color:var(--teal-deep);font-size:.8rem;padding:.4em .9em;border-radius:999px;line-height:1.35}
.review--placeholder{border:1.5px dashed var(--gold);background:linear-gradient(165deg,#fff,#fdf6ea)}
.review--placeholder .review__quote{color:var(--ink-soft);font-style:normal}
.review--placeholder .review__stars{opacity:.45}
.reviews__src{text-align:center;margin-top:1.4rem;font-size:.86rem;color:var(--ink-soft)}
.reviews__src a{color:var(--teal);font-weight:500}
.reviews__src a:hover{color:var(--teal-deep)}

/* ===== CONTACT ===== */
.contact{display:grid;gap:1.6rem}
@media(min-width:900px){.contact{grid-template-columns:1.2fr .8fr}}
.contact__map{aspect-ratio:4/3;min-height:340px}
.contact__map iframe{width:100%;height:100%;border:0}
.contact__info{display:flex;flex-direction:column;gap:1.2rem}
.contact__card{padding:1.4rem 1.5rem}
.contact__card h3{font-size:1.15rem;color:var(--teal-deep);margin-bottom:.9rem}
.contact__row{display:flex;gap:.7rem;padding:.55rem 0;border-bottom:1px solid #f3ede3;font-size:.96rem}
.contact__row b{color:var(--gold-deep);min-width:74px;font-weight:500}
.contact__row:last-child{border-bottom:none}
.contact__row--map{color:var(--teal);font-weight:500}
.nearby{list-style:none}
.nearby li{display:flex;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid #f3ede3;font-size:.94rem}
.nearby li b{color:var(--gold-deep);font-weight:500}
.nearby li:last-child{border-bottom:none}

/* ===== FOOTER ===== */
.footer{background:var(--teal-deep);color:#fff}
.footer__inner{max-width:var(--maxw);margin:0 auto;padding:3rem 1.3rem;display:grid;gap:1.8rem}
@media(min-width:760px){.footer__inner{grid-template-columns:1fr auto;align-items:center}}
.footer__brand img{height:46px;margin-bottom:.7rem}
.footer__brand p{font-size:.72rem;letter-spacing:.3em;color:#a9d2d6}
.footer__col{display:flex;flex-direction:column;gap:.8rem;align-items:flex-start}
@media(min-width:760px){.footer__col{align-items:flex-end}}
.footer__addr{font-size:.84rem;color:#bcdadd}
.footer__bar{border-top:1px solid rgba(255,255,255,.12);padding:1rem 1.3rem;max-width:var(--maxw);margin:0 auto;
  display:flex;flex-wrap:wrap;justify-content:space-between;gap:.6rem;font-size:.76rem;color:#9ec4c8}

/* ===== LIGHTBOX ===== */
.lightbox{position:fixed;inset:0;z-index:90;background:rgba(20,16,12,.94);display:none;
  align-items:center;justify-content:center;padding:1rem}
.lightbox.show{display:flex}
.lightbox__img{max-width:92vw;max-height:84vh;border-radius:12px;box-shadow:0 30px 80px rgba(0,0,0,.6)}
.lightbox__close{position:absolute;top:1.1rem;right:1.3rem;background:none;border:none;color:#fff;font-size:2.4rem;cursor:pointer;line-height:1}
.lightbox__arrow{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.12);border:none;
  color:#fff;font-size:2.2rem;width:54px;height:54px;border-radius:50%;cursor:pointer;transition:.2s}
.lightbox__arrow:hover{background:rgba(255,255,255,.26)}
.lightbox__arrow--prev{left:1rem}.lightbox__arrow--next{right:1rem}
.lightbox__cap{position:absolute;bottom:1.2rem;left:0;right:0;text-align:center;color:#f0e4cf;font-size:.86rem}

/* ===== FAB ===== */
.fab{position:fixed;bottom:1.2rem;right:1.2rem;z-index:40;background:var(--line);color:#fff;
  padding:.85em 1.3em;border-radius:999px;font-weight:600;font-size:.95rem;box-shadow:0 14px 30px -12px rgba(31,168,102,.7);
  display:flex;align-items:center;gap:.5rem;transition:.25s}
.fab span{background:rgba(255,255,255,.22);border-radius:6px;padding:.1em .5em;font-size:.72rem;letter-spacing:.05em}
.fab:hover{transform:translateY(-3px) scale(1.03)}
@media(min-width:900px){.fab{bottom:1.6rem;right:1.6rem}}

/* ===== Facebook villa videos ===== */
.fbvideos{display:grid;grid-template-columns:1fr;gap:1.1rem}
@media(min-width:680px){.fbvideos{grid-template-columns:repeat(2,1fr)}}
@media(min-width:980px){.fbvideos{grid-template-columns:repeat(3,1fr)}}
.fbvideo{position:relative;border-radius:16px;overflow:hidden;background:var(--cream);
  box-shadow:var(--shadow-sm);aspect-ratio:9/16}
@media(min-width:680px){.fbvideo{aspect-ratio:16/9}}
.fbvideo .fb-video,.fbvideo .fb-video span,.fbvideo iframe{width:100%!important;height:100%!important}
.fbvideo--card{aspect-ratio:16/9}

/* link-card fallback (brand serif / cream) — reels + any embed that won't paint */
.fbcard{display:flex;align-items:center;gap:1rem;width:100%;height:100%;
  padding:1.3rem 1.4rem;background:linear-gradient(165deg,#fff,#fdf6ea);
  border:1px solid var(--sand-2);border-radius:16px;color:var(--ink);transition:.25s}
.fbcard:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.fbcard__play{flex:none;width:46px;height:46px;border-radius:50%;background:var(--gold);
  color:#fff;display:grid;place-items:center;font-size:1.1rem;box-shadow:0 8px 20px -10px var(--gold)}
.fbcard__txt{display:flex;flex-direction:column;gap:.18rem;min-width:0}
.fbcard__lead{font-family:var(--en);font-size:1.15rem;font-weight:500;color:var(--gold-deep);line-height:1.15}
.fbcard__label{font-size:.86rem;color:var(--ink-soft);line-height:1.35}
.fbcard__cta{font-size:.8rem;font-weight:500;color:var(--gold-deep);margin-top:.15rem}
.fbcard--review{min-height:120px}

/* ===== Facebook guest-review posts ===== */
.fbreviews__head{margin:2.6rem auto 1.4rem;text-align:center}
.fbreviews__head h3{font-size:clamp(1.35rem,3.4vw,2rem);color:var(--ink);font-family:var(--en);font-weight:500}
.fbreviews__head .kicker{margin-bottom:.55rem}
.fbreviews{display:grid;grid-template-columns:1fr;gap:1.1rem;justify-items:center}
@media(min-width:880px){.fbreviews{grid-template-columns:repeat(2,auto);justify-content:center}}
.fbreview{width:100%;max-width:500px}
.fbreview .fb-post,.fbreview .fb-post span,.fbreview iframe{max-width:100%!important}

/* ===== reveal ===== */
.reveal{opacity:0;transform:translateY(22px);transition:.7s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}.hero__bg{animation:none}}
