/* ============================================================
   VILLA SAWAN - shared design system
   Kamala, Phuket - Villa Getaways collection
============================================================ */
:root{
  --ink:#16241f;
  --andaman:#0f4a3d;
  --andaman-deep:#0d4136;
  --tide:#15604f;
  --brass:#b0894f;
  --brass-soft:#c8a877;
  --sand:#ffffff;
  --shell:#ffffff;
  --line:rgba(22,36,31,.14);
  --display:'Cormorant Garamond', Georgia, serif;
  --sans:'Jost', system-ui, sans-serif;
  --wrap:1240px;
  --pad-y:clamp(24px,3.2vw,44px);
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:var(--sans);
  font-weight:400;
  color:var(--ink);
  background:var(--sand);
  line-height:1.62;
  font-size:15.5px;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}

/* ---------- shared ---------- */
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 28px}
.eyebrow{
  font-size:12px;letter-spacing:.42em;text-transform:uppercase;
  font-weight:400;color:var(--brass);display:inline-block;
}
.eyebrow.on-dark{color:var(--brass-soft)}
h1,h2,h3,.serif{font-family:var(--display);font-weight:300;line-height:1.05}
h2{font-size:clamp(22px,2.8vw,33px);letter-spacing:-.01em}
h2 em{font-style:italic;color:var(--tide)}
.lead{font-family:var(--display);font-weight:300;font-size:clamp(18px,1.9vw,23px);line-height:1.45}
.body-copy{font-size:15.5px;line-height:1.85;color:#26352f;max-width:60ch}

/* horizon hairline - the signature motif */
.horizon{display:flex;align-items:center;gap:18px;margin:0}
.horizon::before,.horizon::after{content:"";height:1px;background:var(--brass);flex:1;opacity:.55}
.horizon span{
  font-family:var(--sans);font-size:11px;letter-spacing:.34em;text-transform:uppercase;
  color:var(--brass);white-space:nowrap;
}
.horizon.center{justify-content:center}
.horizon.center span{flex:0}

/* buttons */
.btn{
  display:inline-flex;align-items:center;gap:.6em;
  font-family:var(--sans);font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:400;
  padding:12px 22px;border:1px solid var(--ink);color:var(--ink);background:transparent;
  cursor:pointer;transition:.4s cubic-bezier(.2,.7,.2,1);border-radius:0;
}
.btn:hover{background:var(--ink);color:var(--shell)}
.btn-solid{background:var(--tide);border-color:var(--tide);color:#fff}
.btn-solid:hover{background:var(--andaman);border-color:var(--andaman)}
.btn-ghost-light{border-color:rgba(255,255,255,.9);color:#fff}
.btn-ghost-light:hover{background:#fff;color:var(--ink)}

/* reveal on scroll */
.reveal{opacity:0;transform:translateY(26px);transition:opacity 1s ease, transform 1s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}

/* ====================================================
   HEADER
==================================================== */
header{
  position:sticky;top:0;left:0;right:0;z-index:60;
  padding:12px 0;background:#fff;box-shadow:0 1px 0 var(--line);
}
header.scrolled{background:rgba(255,255,255,.96);backdrop-filter:blur(10px);padding:9px 0;box-shadow:0 1px 0 var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;max-width:var(--wrap);margin:0 auto;padding:0 28px;gap:20px}
.brand{font-family:var(--display);font-weight:500;font-size:clamp(26px,2.4vw,32px);letter-spacing:.24em;color:var(--ink);transition:color .5s,font-size .5s;white-space:nowrap}
.brand small{display:block;font-family:var(--sans);font-size:11px;letter-spacing:.42em;opacity:.9;margin-top:3px;padding-left:.24em}
header.scrolled .brand{color:var(--ink)}
.navlinks{display:flex;gap:26px;align-items:center}
.navlinks a{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);font-weight:500;transition:color .3s;white-space:nowrap}
.navlinks a:hover{color:var(--tide)}
.navlinks a.active{color:var(--tide)}
header.scrolled .navlinks a{color:var(--ink)}
header.scrolled .navlinks a:hover,header.scrolled .navlinks a.active{color:var(--tide)}
.nav-cta{display:flex;align-items:center;gap:18px}
.nav-phone{font-size:13px;letter-spacing:.08em;color:#fff}
header.scrolled .nav-phone{color:var(--ink)}
.nav-enquire{
  font-size:12px;letter-spacing:.18em;text-transform:uppercase;
  padding:11px 22px;background:var(--tide);border:1px solid var(--tide);color:#fff;transition:.4s;white-space:nowrap;
}
.nav-enquire:hover{background:var(--andaman);border-color:var(--andaman)}
header.scrolled .nav-enquire{background:var(--tide);border-color:var(--tide);color:#fff}
header.scrolled .nav-enquire:hover{background:var(--andaman);border-color:var(--andaman)}
.burger{display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:0;padding:6px}
.burger span{width:26px;height:1.5px;background:var(--ink);transition:.3s}
header.scrolled .burger span{background:var(--ink)}

/* ====================================================
   HOME HERO
==================================================== */
.hero{
  position:relative;min-height:92svh;display:flex;align-items:flex-end;
  background:var(--andaman-deep);
  color:#fff;overflow:hidden;
}
.hero-bg{
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,0) 62%,rgba(0,0,0,.42) 100%),
             var(--hero-img, none) center 62%/cover no-repeat,
             var(--andaman-deep);
}
@keyframes kenburns{from{transform:scale(1.02)}to{transform:scale(1.12)}}
.hero-inner{position:relative;z-index:2;max-width:var(--wrap);margin:0 auto;padding:0 28px 4.5vh;width:100%}
.hero h1{
  font-size:clamp(36px,5.6vw,78px);font-weight:300;letter-spacing:-.012em;
  max-width:14ch;margin:.2em 0 .35em;
}
.hero h1 em{font-style:italic}
.hero-sub{max-width:46ch;font-size:clamp(14.5px,1.3vw,17px);font-weight:400;color:#ffffff;margin-bottom:26px}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:28px}
.facts{display:flex;flex-wrap:wrap;align-items:center;gap:0 22px;border-top:1px solid rgba(255,255,255,.28);padding-top:15px;max-width:920px}
.facts li{list-style:none;font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:#ffffff;display:flex;align-items:center;gap:22px}
.facts li::after{content:"";width:4px;height:4px;background:var(--brass-soft);border-radius:50%;display:inline-block}
.facts li:last-child::after{display:none}
.hero-side{
  position:absolute;right:34px;top:50%;transform:rotate(180deg) translateY(50%);
  writing-mode:vertical-rl;z-index:2;font-size:12px;letter-spacing:.4em;text-transform:uppercase;
  color:rgba(255,255,255,.9);
}
.scroll-cue{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);z-index:2;color:rgba(255,255,255,.8);font-size:11px;letter-spacing:.3em;text-transform:uppercase;text-align:center}
.scroll-cue::after{content:"";display:block;width:1px;height:40px;background:rgba(255,255,255,.5);margin:12px auto 0;animation:cue 2.4s ease-in-out infinite}
@keyframes cue{0%,100%{transform:scaleY(.4);transform-origin:top;opacity:.4}50%{transform:scaleY(1);opacity:1}}

/* ====================================================
   SUBPAGE HERO
==================================================== */
.page-hero{
  position:relative;min-height:88svh;display:flex;align-items:flex-end;
  background:var(--andaman-deep);color:#fff;overflow:hidden;
}
.page-hero .hero-bg{animation:none;background:linear-gradient(180deg,rgba(0,0,0,0) 58%,rgba(0,0,0,.44) 100%),
             var(--hero-img, none) center/cover no-repeat, var(--andaman-deep)}
.page-hero .hero-inner{padding-bottom:52px}
.page-hero h1{font-size:clamp(30px,4.2vw,56px);font-weight:300;letter-spacing:-.012em;margin:.25em 0 .2em}
.page-hero h1 em{font-style:italic}
.page-hero .hero-sub{margin-bottom:6px}

/* ====================================================
   SECTIONS
==================================================== */
.section{padding:var(--pad-y) 0}
.section.shell{background:var(--shell)}
.section.sand{background:var(--sand)}
.section.dark{background:var(--andaman);color:#fff}
.section-head{max-width:780px;margin-bottom:16px}
.section-head .eyebrow{margin-bottom:22px}
.section-head p{font-size:15px;line-height:1.65;color:#26352f;margin-top:8px;max-width:58ch}
.section.dark .section-head p{color:rgba(255,255,255,.96)}

.intro .wrap{max-width:1080px}
.intro .horizon{margin-bottom:26px}
.intro-grid{display:grid;grid-template-columns:1fr;gap:30px}
.intro p{font-family:var(--display);font-weight:300;font-size:clamp(18.5px,2.2vw,25px);line-height:1.42;color:var(--ink)}
.intro p.second{font-family:var(--sans);font-size:15.5px;line-height:1.7;color:#26352f;max-width:60ch;margin-top:10px;font-weight:400}

/* at a glance */
.glance-head{max-width:760px;margin-bottom:30px}
.glance-head .eyebrow{margin-bottom:22px}
.glance-list{display:grid;grid-template-columns:repeat(2,1fr);gap:0}
.glance-list li{
  list-style:none;display:flex;gap:20px;align-items:flex-start;
  padding:14px 8px;border-top:1px solid var(--line);
}
.glance-list li .n{font-family:var(--display);font-style:italic;font-size:22px;color:var(--brass);line-height:1;min-width:34px}
.glance-list li p{font-size:14.5px;line-height:1.55;color:var(--ink)}

/* gallery grid */
.gallery-head{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:26px;flex-wrap:wrap}
.gallery-head .lead{max-width:24ch}
.grid{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:140px;gap:10px}
.gimg{position:relative;overflow:hidden;background:var(--andaman);cursor:pointer}
.gimg img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.2,.7,.2,1)}
.gimg:hover img{transform:scale(1.06)}
.gimg::after{content:"";position:absolute;inset:0;background:rgba(10,48,40,.0);transition:.5s;pointer-events:none}
.gimg:hover::after{background:rgba(10,48,40,.12)}
.g1{grid-column:span 7;grid-row:span 2}
.g2{grid-column:span 5}
.g3{grid-column:span 5}
.g4{grid-column:span 4;grid-row:span 2}
.g5{grid-column:span 4}
.g6{grid-column:span 4}
/* full gallery page: repeating 6-tile rhythm */
.grid.full .gimg:nth-child(6n+1){grid-column:span 7;grid-row:span 2}
.grid.full .gimg:nth-child(6n+2){grid-column:span 5}
.grid.full .gimg:nth-child(6n+3){grid-column:span 5}
.grid.full .gimg:nth-child(6n+4){grid-column:span 4;grid-row:span 2}
.grid.full .gimg:nth-child(6n+5){grid-column:span 4}
.grid.full .gimg:nth-child(6n){grid-column:span 4}

/* experience rows */
.exp-row{display:grid;grid-template-columns:1fr 1fr;align-items:stretch}
.exp-row.flip .exp-text{order:2}
.exp-img{min-height:340px;background:var(--andaman) center/cover no-repeat;position:relative}
.exp-text{padding:clamp(28px,4vw,54px) clamp(24px,3.6vw,52px);display:flex;flex-direction:column;justify-content:center}
.exp-text .eyebrow{margin-bottom:20px}
.exp-text h3{font-size:clamp(22px,2.5vw,30px);margin-bottom:12px}
.exp-text h3 em{font-style:italic;color:var(--tide)}
.exp-text p{font-size:15px;line-height:1.7;color:#26352f;max-width:46ch}
.exp-text.dark{background:var(--andaman);color:#fff}
.exp-text.dark p{color:rgba(255,255,255,.96)}
.exp-text.dark h3 em{color:var(--brass-soft)}

/* reviews band */
.reviews{padding:var(--pad-y) 0;background:var(--andaman);color:#fff;position:relative;overflow:hidden}
.reviews .wrap{position:relative;z-index:2;text-align:center}
.rev-rating{font-family:var(--display);font-size:clamp(44px,6.4vw,80px);line-height:1;font-weight:300}
.rev-stars{color:var(--brass-soft);letter-spacing:.18em;font-size:15px;margin:8px 0 4px}
.rev-count{font-size:13px;letter-spacing:.3em;text-transform:uppercase;color:rgba(255,255,255,.9)}
.rev-quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:36px;text-align:left}
.rev-q{border-top:1px solid rgba(176,137,79,.5);padding-top:16px}
.rev-q p{font-family:var(--display);font-style:italic;font-size:16.5px;line-height:1.5;color:#fff;margin-bottom:10px}
.rev-q cite{font-style:normal;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--brass-soft)}
.rev-link{margin-top:32px}

/* reviews page cards */
.rev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.rev-card{background:var(--shell);border:1px solid var(--line);padding:18px 18px;display:flex;flex-direction:column;gap:9px}
.rev-card .stars{color:var(--brass);letter-spacing:.14em;font-size:14px}
.rev-card p{font-family:var(--display);font-style:italic;font-size:15.5px;line-height:1.45;color:var(--ink);flex:1}
.rev-card cite{font-style:normal;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:#42514b}
.rev-card cite b{display:block;color:var(--brass);font-weight:400;margin-bottom:2px}

/* rates */
.rate-card{background:var(--shell);border:1px solid var(--line);padding:clamp(20px,2.6vw,30px)}
.rate-from{font-size:12px;letter-spacing:.28em;text-transform:uppercase;color:var(--brass)}
.rate-price{font-family:var(--display);font-size:clamp(34px,4vw,50px);line-height:1;font-weight:300;margin:8px 0 2px}
.rate-price small{font-size:18px;color:#42514b;font-family:var(--sans);letter-spacing:.04em}
.rate-note{font-size:12.5px;color:#42514b;margin-bottom:16px}
.rate-incl{list-style:none;margin-bottom:34px}
.rate-incl li{padding:8px 0;border-top:1px solid var(--line);font-size:15px;display:flex;align-items:center;gap:14px}
.rate-incl li::before{content:"";width:6px;height:6px;background:var(--brass);transform:rotate(45deg);flex:0 0 auto}
.rates-teaser .wrap{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,7vw,120px);align-items:center}
.rates-teaser .eyebrow{margin-bottom:22px}
.rates-teaser h2{margin-bottom:26px}
.rates-teaser p{font-size:17px;line-height:1.85;color:#26352f;max-width:48ch;margin-bottom:20px}

/* rates tables */
.rate-tables{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}
.rate-table{background:var(--shell);border:1px solid var(--line)}
.rate-table .rt-head{padding:18px 20px 13px;border-bottom:1px solid var(--line)}
.rate-table .rt-head h3{font-size:22px}
.rate-table .rt-head span{font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--brass)}
.rate-table table{width:100%;border-collapse:collapse}
.rate-table th{font-family:var(--sans);font-weight:400;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#42514b;text-align:left;padding:10px 12px 7px}
.rate-table td{padding:12px 14px;border-top:1px solid var(--line);font-size:15px;vertical-align:top}
.rate-table td.season{font-weight:400}
.rate-table td.season small{display:block;color:#42514b;font-size:12.5px;letter-spacing:.02em}
.rate-table td.price{font-family:var(--display);font-size:18px;white-space:nowrap}
.rate-table td.price small{font-family:var(--sans);font-size:12px;color:#42514b}
.rate-table td.min{font-size:13px;color:#42514b;white-space:nowrap}
.rate-table th:first-child,.rate-table td:first-child{padding-left:28px}
.rate-table th:last-child,.rate-table td:last-child{padding-right:28px}
.rate-fineprint{font-size:12.5px;color:#42514b;margin-top:16px;max-width:78ch;line-height:1.8}

/* ====================================================
   AVAILABILITY CALENDAR
==================================================== */
.cal-shell{background:var(--shell);border:1px solid var(--line);padding:clamp(16px,2.2vw,26px)}
.cal-top{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;flex-wrap:wrap}
.cal-title{font-family:var(--display);font-size:20px}
.cal-nav{display:flex;gap:8px}
.cal-nav button{
  width:44px;height:44px;border:1px solid var(--line);background:transparent;cursor:pointer;
  font-size:18px;color:var(--ink);transition:.3s;font-family:var(--sans);
}
.cal-nav button:hover{background:var(--ink);color:#fff}
.cal-nav button:disabled{opacity:.3;cursor:default}
.cal-nav button:disabled:hover{background:transparent;color:var(--ink)}
.cal-months{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,3vw,44px)}
.cal-month h4{font-family:var(--display);font-weight:400;font-size:17.5px;margin-bottom:9px;letter-spacing:.04em}
.cal-dow,.cal-days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cal-dow span{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#42514b;text-align:center;padding:6px 0}
.cal-days button{
  height:36px;border:0;background:#fff;border:1px solid var(--line);
  font-family:var(--sans);font-size:12.5px;font-weight:400;color:var(--ink);cursor:pointer;transition:.25s;
  display:flex;align-items:center;justify-content:center;position:relative;
}
.cal-days .empty{border:0;background:transparent;cursor:default}
.cal-days button.past{color:#9aa5a0;background:transparent;cursor:default}
.cal-days button.booked{background:var(--andaman);border-color:var(--andaman);color:rgba(255,255,255,.96);cursor:default;text-decoration:line-through;text-decoration-color:rgba(255,255,255,.4)}
.cal-days button.pending{background:repeating-linear-gradient(-45deg,#fff,#fff 4px,rgba(176,137,79,.22) 4px,rgba(176,137,79,.22) 8px);cursor:default}
.cal-days button.avail:hover{border-color:var(--tide);background:rgba(47,125,110,.08)}
.cal-days button.sel{background:var(--tide);border-color:var(--tide);color:#fff}
.cal-days button.inrange{background:rgba(47,125,110,.16);border-color:rgba(47,125,110,.25)}
.cal-legend{display:flex;gap:26px;flex-wrap:wrap;margin-top:26px;padding-top:22px;border-top:1px solid var(--line)}
.cal-legend span{display:flex;align-items:center;gap:10px;font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;color:#42514b}
.cal-legend i{width:16px;height:16px;border:1px solid var(--line);display:inline-block}
.cal-legend i.l-avail{background:#fff}
.cal-legend i.l-booked{background:var(--andaman);border-color:var(--andaman)}
.cal-legend i.l-pending{background:repeating-linear-gradient(-45deg,#fff,#fff 3px,rgba(176,137,79,.25) 3px,rgba(176,137,79,.25) 6px)}
.cal-legend i.l-sel{background:var(--tide);border-color:var(--tide)}
.cal-note{font-size:12.5px;color:#5d6c66;margin-top:16px;letter-spacing:.04em}
.cal-pick{
  margin-top:22px;padding:18px 22px;background:rgba(47,125,110,.08);border:1px solid rgba(47,125,110,.25);
  font-size:15px;display:none;justify-content:space-between;gap:16px;align-items:center;flex-wrap:wrap;
}
.cal-pick.show{display:flex}
.cal-pick b{font-weight:400;font-family:var(--display);font-size:19px}
.cal-pick a{color:var(--tide);font-size:12px;letter-spacing:.16em;text-transform:uppercase;border-bottom:1px solid currentColor;padding-bottom:2px}

/* ====================================================
   VILLA PAGE - bedrooms / amenities
==================================================== */
.bed-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.bed-card{background:var(--shell);border:1px solid var(--line);padding:18px 18px;display:flex;gap:14px;align-items:flex-start}
.bed-card .n{font-family:var(--display);font-style:italic;font-size:26px;color:var(--brass);line-height:1.2;min-width:44px}
.bed-card h4{font-family:var(--display);font-weight:400;font-size:18px;margin-bottom:4px}
.bed-card p{font-size:14px;line-height:1.6;color:#26352f}
.amen-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0 44px}
.amen-grid li{list-style:none;padding:8px 4px;border-top:1px solid var(--line);font-size:14px;display:flex;align-items:center;gap:14px}
.amen-grid li::before{content:"";width:6px;height:6px;background:var(--brass);transform:rotate(45deg);flex:0 0 auto}
.stat-band{display:flex;gap:clamp(24px,4.5vw,64px);flex-wrap:wrap;padding:22px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:30px 0}
.stat-band div b{font-family:var(--display);font-size:clamp(24px,2.8vw,36px);font-weight:300;color:var(--tide);display:block;line-height:1.1}
.stat-band div span{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#42514b}

/* ====================================================
   LOCATION
==================================================== */
.loc-grid{display:grid;grid-template-columns:1fr 1fr;align-items:stretch}
.loc-text{padding:var(--pad-y) clamp(32px,6vw,96px)}
.loc-text .eyebrow{margin-bottom:22px}
.loc-text p{font-size:15.5px;line-height:1.7;color:#26352f;max-width:46ch;margin:14px 0 22px}
.loc-stats{display:flex;gap:30px;flex-wrap:wrap}
.loc-stats div b{font-family:var(--display);font-size:26px;font-weight:400;color:var(--tide);display:block}
.loc-stats div span{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#42514b}
.loc-map{min-height:340px;background:var(--andaman)}
.loc-map iframe{width:100%;height:100%;border:0;filter:saturate(1.05) contrast(1.04)}
.dist-list{list-style:none;max-width:640px}
.dist-list li{display:flex;justify-content:space-between;gap:24px;align-items:baseline;padding:10px 4px;border-top:1px solid var(--line);font-size:14.5px}
.dist-list li b{font-family:var(--display);font-weight:400;font-size:17px;color:var(--tide);white-space:nowrap}

/* ====================================================
   ENQUIRE / FORMS
==================================================== */
.enquire{position:relative;padding:var(--pad-y) 0;color:#fff;background:var(--andaman-deep);overflow:hidden}
.enquire-bg{position:absolute;inset:0;z-index:0;
  background:linear-gradient(180deg,rgba(0,0,0,.35),rgba(0,0,0,.5)),
             var(--hero-img, none) center/cover no-repeat;}
.enquire .wrap{position:relative;z-index:2;display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(40px,7vw,110px);align-items:start}
.enquire h2{color:#fff;margin:12px 0 14px}
.enquire .lead{color:rgba(255,255,255,.96);max-width:36ch;font-size:17px}
.contact-quick{margin-top:24px;display:flex;flex-direction:column;gap:2px}
.contact-quick a{display:flex;align-items:center;gap:14px;padding:11px 0;border-top:1px solid rgba(255,255,255,.2);font-size:14px;letter-spacing:.04em;color:#ffffff;transition:.3s}
.contact-quick a:hover{color:var(--brass-soft);padding-left:8px}
.contact-quick a span{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--brass-soft);min-width:90px}
.form{background:rgba(255,255,255,.97);padding:clamp(20px,2.6vw,32px);color:var(--ink)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.field{margin-bottom:12px}
.field label{display:block;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#42514b;margin-bottom:8px}
.field input,.field textarea,.field select{
  width:100%;padding:9px 0;border:0;border-bottom:1px solid var(--line);background:transparent;
  font-family:var(--sans);font-size:16px;color:var(--ink);font-weight:400;border-radius:0;
}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--tide)}
.field textarea{resize:vertical;min-height:74px}
.form .btn{width:100%;justify-content:center;margin-top:6px}
.form-ok{display:none;text-align:center;padding:30px 0}
.form-ok.show{display:block}
.form-ok .tick{font-family:var(--display);font-size:40px;color:var(--tide)}

/* pre-footer CTA band */
.cta-band{position:relative;padding:clamp(44px,5.5vw,72px) 0;background:var(--andaman-deep);color:#fff;overflow:hidden;text-align:center}
.cta-band .band-bg{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.25),rgba(0,0,0,.42)),var(--hero-img,none) center/cover no-repeat}
.cta-band .wrap{position:relative;z-index:2}
.cta-band h2{color:#fff;margin:18px 0 20px}
.cta-band p{color:rgba(255,255,255,.96);max-width:52ch;margin:0 auto 22px;font-size:15px}
.cta-band .btn-row{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}

/* ====================================================
   FOOTER
==================================================== */
footer{background:var(--andaman-deep);color:rgba(255,255,255,.9);padding:44px 0 24px}
.foot-top{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap;padding-bottom:26px;border-bottom:1px solid rgba(255,255,255,.14)}
.foot-brand{font-family:var(--display);font-size:22px;letter-spacing:.3em;color:#fff}
.foot-brand small{display:block;font-family:var(--sans);font-size:10px;letter-spacing:.4em;margin-top:8px;color:rgba(255,255,255,.85)}
.foot-links{display:flex;gap:44px;flex-wrap:wrap}
.foot-col h5{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--brass-soft);margin-bottom:16px}
.foot-col a,.foot-col p{display:block;font-size:13px;color:rgba(255,255,255,.9);margin-bottom:6px;transition:.3s}
.foot-col a:hover{color:#fff}
.foot-bottom{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;padding-top:18px;font-size:12px;letter-spacing:.06em;color:rgba(255,255,255,.75)}

/* sticky mobile bar */
.mobar{
  position:fixed;left:0;right:0;bottom:0;z-index:55;display:none;
  background:var(--andaman);padding:11px 16px;gap:10px;
  box-shadow:0 -4px 24px rgba(0,0,0,.25);
}
.mobar a{flex:1;text-align:center;font-size:12px;letter-spacing:.14em;text-transform:uppercase;padding:14px;color:#fff}
.mobar a.solid{background:var(--tide)}
.mobar a.line{border:1px solid rgba(255,255,255,.4)}

/* lightbox */
.lb{position:fixed;inset:0;z-index:200;background:rgba(10,48,40,.96);display:none;align-items:center;justify-content:center;padding:24px}
.lb.show{display:flex}
.lb img{max-width:92vw;max-height:88vh;object-fit:contain;box-shadow:0 30px 80px rgba(0,0,0,.5)}
.lb-close{position:absolute;top:24px;right:30px;color:#fff;font-size:34px;cursor:pointer;font-family:var(--display);line-height:1}

/* ====================================================
   RESPONSIVE
==================================================== */
@media(max-width:1100px){
  .navlinks{gap:18px}
  .navlinks a{font-size:11.5px}
}
@media(max-width:1024px){
  .rates-teaser .wrap,.loc-grid,.exp-row,.exp-row.flip .exp-text,.enquire .wrap{grid-template-columns:1fr}
  .exp-row.flip .exp-text{order:0}
  .exp-img{min-height:240px}
  .loc-map{min-height:250px;order:-1}
  .rev-quotes{grid-template-columns:1fr;gap:30px}
  .rev-grid{grid-template-columns:1fr 1fr}
  .rate-tables{grid-template-columns:1fr}
  .amen-grid{grid-template-columns:1fr 1fr}
  .cal-months{grid-template-columns:1fr}
  .cal-month.m2{display:none}
}
@media(max-width:1024px){
  .navlinks,.nav-phone{display:none}
  .burger{display:flex}
  .navlinks.open{display:flex;position:absolute;top:100%;left:0;right:0;flex-direction:column;background:var(--shell);padding:24px 28px;gap:20px;box-shadow:0 12px 30px rgba(0,0,0,.12)}
  .navlinks.open a{color:var(--ink)}
}
@media(max-width:760px){
  .glance-list,.bed-grid,.rev-grid{grid-template-columns:1fr}
  .amen-grid{grid-template-columns:1fr}
  .grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:110px}
  .g1,.g2,.g3,.g4,.g5,.g6{grid-column:span 1;grid-row:span 1}
  .g1{grid-column:span 2}
  .grid.full .gimg{grid-column:span 1!important;grid-row:span 1!important}
  .grid.full .gimg:nth-child(6n+1){grid-column:span 2!important}
  .form-row{grid-template-columns:1fr}
  .hero-side{display:none}
  .mobar{display:flex}
  body{padding-bottom:64px}
  .facts li{font-size:11px;gap:14px}
  .facts li::after{margin-left:0}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
}

/* ---- bright imagery pass ---- */
.gimg img{filter:saturate(1.12) contrast(1.07)}
.exp-img{filter:saturate(1.1) contrast(1.06)}
.hero-bg,.enquire-bg,.band-bg{filter:saturate(1.1) contrast(1.05)}
.hero-inner h1,.hero-inner .hero-sub,.hero-inner .eyebrow,.hero-side{text-shadow:0 2px 26px rgba(4,20,17,.65),0 1px 6px rgba(4,20,17,.5)}
.facts li{text-shadow:0 1px 12px rgba(4,20,17,.65)}
.cta-band h2,.cta-band p,.cta-band .eyebrow{text-shadow:0 2px 22px rgba(4,20,17,.6)}

/* ---- lead-with-imagery pass ---- */
.intro{padding:clamp(26px,3.6vw,46px) 0}
.intro-split{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(20px,3.2vw,44px);align-items:center}
.intro-split .gimg{min-height:300px;height:100%}
.intro-split .gimg img{width:100%;height:100%;object-fit:cover}
.gallery-pull{padding-top:0}
@media(max-width:900px){.intro-split{grid-template-columns:1fr}.intro-split .gimg{min-height:220px}}

/* ---- Laem Singh formula: photo panels, welcome, stats band, testimonial slider ---- */
.panels{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:6px;background:var(--sand)}
.panel{position:relative;display:block;height:clamp(300px,54vh,500px);background:var(--andaman);overflow:hidden}
.panel::before{content:"";position:absolute;inset:0;background:var(--panel-img) center/cover no-repeat;transition:transform 1s cubic-bezier(.2,.7,.2,1);filter:saturate(1.1) contrast(1.05)}
.panel:hover::before{transform:scale(1.05)}
.panel::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 60%,rgba(0,0,0,.48) 100%)}
.panel-info{position:absolute;left:24px;right:24px;bottom:20px;z-index:2;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:12px}
.panel-info h3{font-size:clamp(22px,2.3vw,29px);color:#fff;text-shadow:0 2px 18px rgba(4,20,17,.6)}
.panel-btn{font-size:11px;letter-spacing:.18em;text-transform:uppercase;border:1px solid rgba(255,255,255,.8);padding:8px 15px;transition:.3s;white-space:nowrap}
.panel:hover .panel-btn{background:#fff;color:var(--ink)}
.welcome .wrap{max-width:820px;text-align:center}
.welcome .eyebrow{margin-bottom:12px}
.welcome h2{margin-bottom:14px}
.welcome p{font-size:15.5px;line-height:1.7;color:#26352f;margin-bottom:22px}
.btn-row-c{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.stats-photo{position:relative;padding:clamp(40px,5.5vw,72px) 0;color:#fff;overflow:hidden}
.stats-photo .band-bg{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.1),rgba(0,0,0,.26)),var(--hero-img) center/cover no-repeat;filter:saturate(1.08) contrast(1.04)}
.sp-grid{position:relative;z-index:2;display:grid;grid-template-columns:repeat(4,1fr);gap:18px;text-align:center}
.sp-grid b{font-family:var(--display);font-weight:300;font-size:clamp(30px,3.4vw,48px);display:block;line-height:1.1;text-shadow:0 2px 18px rgba(4,20,17,.65)}
.sp-grid span{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#fff;text-shadow:0 1px 10px rgba(4,20,17,.6)}
.testi{position:relative;padding:clamp(46px,6.5vw,84px) 0;color:#fff;overflow:hidden;text-align:center}
.testi .band-bg{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.14),rgba(0,0,0,.3)),var(--hero-img) center/cover no-repeat;filter:saturate(1.06)}
.testi .wrap{position:relative;z-index:2}
.testi-slides{position:relative;max-width:760px;margin:16px auto 4px;min-height:130px}
.testi-slides blockquote{position:absolute;inset:0;opacity:0;transition:opacity 1s ease;font-family:var(--display);font-style:italic;font-size:clamp(17px,1.9vw,21px);line-height:1.5;text-shadow:0 2px 16px rgba(4,20,17,.6)}
.testi-slides blockquote.on{opacity:1}
.testi-slides cite{display:block;font-style:normal;font-family:var(--sans);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--brass-soft);margin-top:12px}
.testi .rev-stars{margin:0 0 16px;font-size:15px}
@media(max-width:900px){.panels{grid-template-columns:1fr}.panel{height:230px}.sp-grid{grid-template-columns:repeat(2,1fr);gap:20px}.testi-slides{min-height:190px}}

/* collapse double padding where sections stack */
.section+.section{padding-top:clamp(8px,1.4vw,18px)}

/* ---- copy-over-photo bands (replaces text-only intros) ---- */
.copy-photo{position:relative;padding:clamp(52px,7.5vw,100px) 0;color:#fff;overflow:hidden;text-align:center}
.copy-photo .band-bg{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.14),rgba(0,0,0,.3)),var(--hero-img) center/cover no-repeat;filter:saturate(1.08) contrast(1.04)}
.copy-photo .wrap{position:relative;z-index:2;max-width:920px}
.copy-photo .eyebrow{margin-bottom:12px}
.copy-photo .cp-lead{font-family:var(--display);font-weight:300;font-size:clamp(19px,2.2vw,26px);line-height:1.45;text-shadow:0 2px 20px rgba(4,20,17,.65)}
.copy-photo .cp-sub{font-size:14.5px;line-height:1.7;color:#fff;max-width:64ch;margin:12px auto 0;text-shadow:0 1px 12px rgba(4,20,17,.6)}


/* ---- richer availability & rates ---- */
.photo-wrap{position:relative;padding:clamp(34px,4.6vw,60px) 0;overflow:hidden;color:#fff}
.photo-wrap .band-bg{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.28),rgba(0,0,0,.44)),var(--hero-img) center/cover no-repeat;filter:saturate(1.06) contrast(1.04)}
.photo-wrap .wrap{position:relative;z-index:2}
.photo-wrap h2{color:#fff;text-shadow:0 2px 18px rgba(4,20,17,.6)}
.photo-wrap h2 em{color:var(--brass-soft)}
.photo-wrap .section-head p{color:rgba(255,255,255,.94)}
.photo-wrap .cal-shell{box-shadow:0 26px 70px rgba(4,20,17,.4);border:0}
.photo-wrap .amen-grid li{border-top:1px solid rgba(255,255,255,.3);color:#fff;text-shadow:0 1px 10px rgba(4,20,17,.6)}
.photo-wrap .amen-grid li::before{background:var(--brass-soft)}
.rate-table{box-shadow:0 14px 44px rgba(22,36,31,.14);border-top:3px solid var(--brass)}
.rate-table .rt-head{background:var(--andaman);border-bottom:0}
.rate-table .rt-head h3{color:#fff}
.rate-table .rt-head span{color:var(--brass-soft)}
.rate-table tr:nth-child(even) td{background:rgba(47,125,110,.06)}
.rate-table td.price{color:var(--tide)}
.rate-table td.season::before{content:"";display:inline-block;width:7px;height:7px;transform:rotate(45deg);background:var(--brass);margin-right:10px}
.rate-table td.season small{padding-left:17px}

/* white-bg pop: cards lift off the page */
.rate-card,.rev-card,.bed-card,.rate-table,.cal-shell{background:#fff;box-shadow:0 12px 36px rgba(22,36,31,.1)}
/* italic accent words always readable on dark/photo sections */
.cta-band h2 em,.enquire h2 em,.photo-wrap h2 em,.copy-photo em,.testi em,.stats-photo em,.reviews h2 em{color:var(--brass-soft)}

/* hero slider + framed stats box (Laem Singh pattern) */
.hero .hero-bg{opacity:0;transition:opacity 1.4s ease}
.hero .hero-bg.on{opacity:1}
.pd-box{border:1px solid rgba(255,255,255,.55);padding:clamp(22px,3vw,40px);max-width:880px;margin:0 auto}
header.scrolled{background:#fff;padding:12px 0}

/* no colour cast on photos; stronger neutral text shadows instead */
.eyebrow.on-dark{text-shadow:0 1px 10px rgba(0,0,0,.65)}
.photo-wrap h2,.copy-photo .cp-lead,.testi-slides blockquote,.cta-band h2,.stats-photo .sp-grid b{text-shadow:0 2px 20px rgba(0,0,0,.75),0 1px 5px rgba(0,0,0,.55)}

/* review tiles: brand green on white */
.rev-card{background:var(--andaman);border:0;box-shadow:0 12px 32px rgba(15,74,61,.28)}
.rev-card p{color:#fff}
.rev-card .stars{color:var(--brass-soft)}
.rev-card cite{color:rgba(255,255,255,.72)}
.rev-card cite b{color:var(--brass-soft)}

/* compact calendar */
.cal-shell{max-width:940px;margin:0 auto}
.cal-month{max-width:430px;margin:0 auto;width:100%}
.cal-months{gap:clamp(18px,2.4vw,34px)}
.cal-dow span{padding:4px 0}

/* gold never sits on photos: white with shadow instead */
.eyebrow.on-dark{color:#fff}
.cta-band h2 em,.enquire h2 em,.photo-wrap h2 em,.copy-photo em,.testi em,.stats-photo em{color:#fff}
.contact-quick a span{color:#fff;opacity:.85}
.testi-slides cite{color:#fff;opacity:.88}
.amen-grid li::before{background:#fff}
.photo-wrap .amen-grid li::before{background:#fff}
section:not(.photo-wrap) .wrap>.amen-grid li::before{background:var(--brass)}

/* Mobile fix: the header CTA stayed visible at phone widths and pushed the
   header wider than the viewport, which forced the whole page to scroll
   sideways at 375px. The burger covers navigation at that size. */
@media(max-width:760px){
  .nav-enquire{display:none}
  .nav-cta{gap:0}
}

/* ===== BEGIN shared villa calendar + viewer (tools/mockups/_shared) ===== */
/* Generated by tools/mockups/_shared/sync_shared.py. Do not hand edit:
   the next run overwrites everything between these two markers.
   The calendar takes THIS villa's own palette and nothing else. */
:root{
  --cal-bg:#ffffff;
  --cal-line:var(--line);
  --cal-ink:var(--ink);
  --cal-mute:#5d6c66;
  --cal-cell:#ffffff;
  --cal-booked:var(--andaman);
  --cal-hold:rgba(176,137,79,.24);
  --cal-sel:var(--tide);
  --cal-disp:var(--display);
  --cal-sans:var(--sans);
}
/* ------------------------------------------------------------------ calendar */
.cal-shell{
  background:var(--cal-bg);border:1px solid var(--cal-line);
  padding:clamp(16px,2.2vw,26px);color:var(--cal-ink);font-family:var(--cal-sans);
}
.cal-top{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;flex-wrap:wrap}
.cal-title{font-family:var(--cal-disp);font-size:clamp(17px,2vw,20px);line-height:1.2}
.cal-nav{display:flex;gap:8px}
.cal-nav button{
  width:44px;height:44px;border:1px solid var(--cal-line);background:transparent;cursor:pointer;
  font-size:18px;color:var(--cal-ink);font-family:var(--cal-sans);transition:background .25s,color .25s;
}
.cal-nav button:hover{background:var(--cal-ink);color:var(--cal-bg)}
.cal-nav button:disabled{opacity:.3;cursor:default}
.cal-nav button:disabled:hover{background:transparent;color:var(--cal-ink)}

.cal-months{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,3vw,44px)}
.cal-month{min-width:0}
.cal-month h4{font-family:var(--cal-disp);font-weight:400;font-size:17.5px;margin:0 0 9px;letter-spacing:.04em}
.cal-dow,.cal-days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cal-dow span{
  font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--cal-mute);
  text-align:center;padding:6px 0;
}
.cal-days button{
  height:36px;min-width:0;background:var(--cal-cell);border:1px solid var(--cal-line);
  font-family:var(--cal-sans);font-size:12.5px;font-weight:400;color:var(--cal-ink);cursor:pointer;
  display:flex;align-items:center;justify-content:center;transition:background .2s,border-color .2s,color .2s;
}
.cal-days .empty{border:0;background:transparent;cursor:default}
.cal-days button.past{color:var(--cal-mute);background:transparent;cursor:default;opacity:.55}
.cal-days button.unknown{background:transparent;border-style:dashed;color:var(--cal-mute);cursor:default}
.cal-days button.booked{
  background:var(--cal-booked);border-color:var(--cal-booked);color:#fff;cursor:default;
  text-decoration:line-through;text-decoration-color:rgba(255,255,255,.45);
}
.cal-days button.pending{
  background:repeating-linear-gradient(-45deg,var(--cal-cell),var(--cal-cell) 4px,var(--cal-hold) 4px,var(--cal-hold) 8px);
  cursor:default;
}
.cal-days button.avail:hover,.cal-days button.avail:focus-visible{border-color:var(--cal-sel)}
.cal-days button.sel{background:var(--cal-sel);border-color:var(--cal-sel);color:#fff}
.cal-days button.inrange{background:color-mix(in srgb,var(--cal-sel) 18%,var(--cal-cell));border-color:var(--cal-line)}

.cal-pick{
  display:none;margin-top:22px;padding:16px 18px;border:1px solid var(--cal-line);
  background:var(--cal-cell);gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap;
}
.cal-pick.show{display:flex}
.cal-pick b{display:block;font-size:14.5px;font-weight:600}
.cal-pick .cal-pick-s{display:block;font-size:12.5px;color:var(--cal-mute);margin-top:3px}
.cal-pick-go{
  font-size:12px;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;
  color:#fff;background:var(--cal-sel);padding:11px 18px;white-space:nowrap;
}
.cal-pick-go:hover{background:var(--cal-booked)}

.cal-legend{
  display:flex;gap:clamp(14px,2.4vw,26px);flex-wrap:wrap;margin-top:26px;padding-top:22px;
  border-top:1px solid var(--cal-line);
}
.cal-legend span{
  display:flex;align-items:center;gap:9px;font-size:11.5px;letter-spacing:.09em;
  text-transform:uppercase;color:var(--cal-mute);
}
.cal-legend i{width:16px;height:16px;border:1px solid var(--cal-line);display:inline-block;flex:0 0 auto}
.cal-legend i.l-avail{background:var(--cal-cell)}
.cal-legend i.l-booked{background:var(--cal-booked);border-color:var(--cal-booked)}
.cal-legend i.l-pending{background:repeating-linear-gradient(-45deg,var(--cal-cell),var(--cal-cell) 3px,var(--cal-hold) 3px,var(--cal-hold) 6px)}
.cal-legend i.l-sel{background:var(--cal-sel);border-color:var(--cal-sel)}

.cal-note{font-size:12.5px;line-height:1.65;color:var(--cal-mute);margin:16px 0 0;letter-spacing:.02em}

@media (max-width:760px){
  .cal-months{grid-template-columns:1fr}
  .cal-month.m2{display:none}
  .cal-month{max-width:430px;margin:0 auto;width:100%}
  .cal-pick-go{width:100%;text-align:center}
}

/* -------------------------------------------------------------------- viewer */
html.vlb-lock{overflow:hidden}
.vlb{
  position:fixed;inset:0;z-index:9000;display:none;align-items:center;justify-content:center;
  background:rgba(10,10,10,.94);padding:clamp(12px,4vw,48px);
}
.vlb.is-open{display:flex}
.vlb-fig{margin:0;max-width:100%;max-height:100%;display:flex;flex-direction:column;align-items:center;gap:14px}
.vlb-fig img{
  max-width:100%;max-height:calc(100vh - 150px);width:auto;height:auto;
  object-fit:contain;display:block;background:#111;
}
.vlb-fig figcaption{
  display:flex;gap:16px;align-items:baseline;justify-content:center;flex-wrap:wrap;
  color:rgba(255,255,255,.86);font-family:var(--cal-sans);font-size:13px;line-height:1.5;
  text-align:center;max-width:70ch;
}
.vlb-count{font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.55);white-space:nowrap}
.vlb button{
  position:absolute;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.28);
  color:#fff;cursor:pointer;font-family:var(--cal-sans);line-height:1;
  transition:background .2s,border-color .2s;
}
.vlb button:hover,.vlb button:focus-visible{background:rgba(255,255,255,.24);border-color:rgba(255,255,255,.6)}
.vlb-x{top:clamp(10px,2.4vw,26px);right:clamp(10px,2.4vw,26px);width:46px;height:46px;font-size:17px}
.vlb-p,.vlb-n{top:50%;transform:translateY(-50%);width:52px;height:64px;font-size:30px}
.vlb-p{left:clamp(6px,1.6vw,22px)}
.vlb-n{right:clamp(6px,1.6vw,22px)}

@media (max-width:600px){
  .vlb-p,.vlb-n{width:44px;height:54px;font-size:25px;top:auto;bottom:14px;transform:none}
  .vlb-p{left:14px}
  .vlb-n{right:14px}
  .vlb-fig img{max-height:calc(100vh - 210px)}
}
@media (prefers-reduced-motion:reduce){
  .cal-days button,.cal-nav button,.vlb button{transition:none}
}
/* ===== END shared villa calendar + viewer ===== */

/* ===== BEGIN Kris contact styling (kris_feedback_24aug.py) ===== */
/* Kris, 24 Aug: "Please add my name - Kris Clements - Reservation Manager- to
   the footer area and contact page." */
.foot-person{margin:0 0 10px;font-size:14px;line-height:1.5}
.foot-person span{opacity:.72;font-size:12.5px;letter-spacing:.06em}
.contact-person{margin:0 0 14px;line-height:1.5}
.contact-person b{display:block;font-size:15.5px}
.contact-person span{display:block;font-size:13px;opacity:.78}
.wa-link{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.wa-mark{
  width:15px;height:15px;flex:0 0 auto;border-radius:50%;
  background:#25d366;box-shadow:inset 0 0 0 2px rgba(255,255,255,.85);
}
/* ===== END Kris contact styling ===== */
