/* TSG Property: site styles (Design B, blue and white).
   Ported from the approved HTML design and adapted to Elementor containers and widgets.
   Sections: 1 tokens and base, 2 shared components, 3 page sections, 4 modals, forms and reviews,
   5 Elementor glue (containers, native widgets, header and footer), 6 responsive. */

/* ========== 1. Tokens and base ========== */
/* Navy, Navy deep and Navy light follow Elementor > Site Settings > Global Colours
   (Navy = primary, plus the custom colours "Navy deep" and "Navy light"). Fallbacks are the brand values. */
body{
  --navy:var(--e-global-color-primary,#131A22); --navy-2:var(--e-global-color-navydeep,#0B1015); --navy-lift:var(--e-global-color-navylight,#26303D);
  --gold:#C8A86E; --saffron:#F4C430; --paper:#F5F6F8;
  --ink:#F5F6F8; --ink-2:var(--navy-2);
  --ivory:var(--navy); --mist:#53627A; --text-rgb:19,26,34; --tint:19,26,34;
  --line:color-mix(in srgb,var(--navy) 12%,transparent); --line-2:color-mix(in srgb,var(--navy) 20%,transparent);
  --brass:#C8A86E; --brass-lo:#A8873F; --brass-hi:#8A6A1F; --lagoon:#1FA39A;
  --h2:var(--navy); --kicker:#8A6A1F; --star:#E0A41A;
  --glass-bg:linear-gradient(140deg,rgba(255,255,255,.9),rgba(255,255,255,.62));
  --glass-border:color-mix(in srgb,var(--navy) 10%,transparent);
  --glass-shadow:inset 0 1px 0 rgba(255,255,255,.95),0 24px 50px -28px color-mix(in srgb,var(--navy) 32%,transparent);
  --input-bg:#FFFFFF; --ghost-bg:#FFFFFF; --ghost-hover:#EEF1F6; --err:#B42318; --panel:#FFFFFF;
  --serif:'DM Serif Display',Georgia,'Times New Roman',serif;
  --sans:'Figtree',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  --r-sm:10px; --r-md:18px; --r-lg:28px;
  --ease:cubic-bezier(.2,.7,.1,1);
  --hdr-top:0px;
  color-scheme:light;
}
.dark{
  --ink:var(--navy); --ivory:#F5F6F8; --mist:#D6DEE9; --text-rgb:245,246,248; --tint:255,255,255;
  --line:rgba(245,246,248,.14); --line-2:rgba(245,246,248,.26);
  --brass-hi:#F4C430; --h2:#F4C430; --kicker:#C8A86E; --star:#F4C430;
  --glass-bg:linear-gradient(140deg,rgba(255,255,255,.12),rgba(255,255,255,.04) 55%,rgba(255,255,255,.07));
  --glass-border:rgba(255,255,255,.15);
  --glass-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 30px 60px -30px rgba(0,0,0,.6);
  --input-bg:rgba(255,255,255,.06); --ghost-bg:rgba(255,255,255,.06); --ghost-hover:rgba(255,255,255,.13); --err:#FFB4A6;
  background:var(--ink); color:var(--ivory);
}
html{scroll-behavior:smooth;}
*,*::before,*::after{box-sizing:border-box;}
body{margin:0;background:var(--ink);color:var(--ivory);font-family:var(--sans);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
img{max-width:100%;height:auto;}
a{color:inherit;}
button,input,select,textarea{font:inherit;color:inherit;}
:focus-visible{outline:2px solid var(--brass-hi);outline-offset:3px;border-radius:6px;}
.wrap{width:min(1200px,100% - 48px);margin-inline:auto;}
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.12;margin:0;letter-spacing:-.01em;}
h1{font-size:clamp(2.7rem,5vw,4.6rem);line-height:1.05;}
h2{font-size:clamp(2.1rem,3.8vw,3.2rem);line-height:1.1;color:var(--h2);}
h3{font-size:1.35rem;line-height:1.3;}
h4{margin:0;}
p{margin:0;}
.lede{color:var(--mist);font-size:1.12rem;max-width:58ch;}
.kicker{color:var(--kicker);font-size:.95rem;font-weight:600;letter-spacing:.01em;margin-bottom:18px;display:inline-flex;align-items:center;gap:10px;}
.kicker::before{content:"";width:7px;height:7px;background:currentColor;transform:rotate(45deg);flex:none;}
.muted{color:var(--mist);}
.serif{font-family:var(--serif);}
.white{background:#FFFFFF;}
[hidden]{display:none!important;}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

/* ambient light so glass has something to bend */
.ambient{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none;}
.ambient i{position:absolute;border-radius:50%;filter:blur(90px);opacity:.55;animation:drift 26s ease-in-out infinite alternate;}
.ambient i:nth-child(1){width:46vw;height:46vw;left:-12vw;top:30vh;background:radial-gradient(circle,color-mix(in srgb,var(--navy) 16%,transparent),transparent 70%);}
.ambient i:nth-child(2){width:38vw;height:38vw;right:-10vw;top:-8vh;background:radial-gradient(circle,rgba(200,168,110,.35),transparent 70%);animation-duration:32s;}
.ambient i:nth-child(3){width:30vw;height:30vw;right:18vw;bottom:-14vh;background:radial-gradient(circle,rgba(90,140,220,.22),transparent 70%);animation-duration:38s;}
@keyframes drift{to{transform:translate(6vw,-5vh) scale(1.12);}}

/* page transition curtain */
.wipe{position:fixed;inset:0;z-index:9990;pointer-events:none;background:var(--navy);transform:scaleX(0);transform-origin:left;}
.wipe::after{content:"";position:absolute;right:0;top:0;bottom:0;width:3px;background:#F4C430;}
.wipe.go{animation:wipeOut .45s var(--ease) forwards;}
.wipe.in{transform:scaleX(1);transform-origin:right;animation:wipeIn .55s var(--ease) .05s forwards;}
@keyframes wipeOut{from{transform:scaleX(0);transform-origin:left}to{transform:scaleX(1);transform-origin:left}}
@keyframes wipeIn{from{transform:scaleX(1);transform-origin:right}to{transform:scaleX(0);transform-origin:right}}

/* reveal on scroll */
.rv{opacity:0;transform:translateY(16px);transition:opacity 1s var(--ease),transform 1s var(--ease);}
.rv.in{opacity:1;transform:none;}
.rv.d1{transition-delay:.1s}.rv.d2{transition-delay:.2s}.rv.d3{transition-delay:.3s}
.rv.clipr{opacity:1;transform:none;clip-path:inset(10% 10% 10% 10% round 18px);transition:clip-path 1.4s var(--ease);}
.rv.clipr.in{clip-path:inset(0 0 0 0 round 18px);}
@keyframes fadeUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes lineUp{to{transform:none}}
@keyframes cardIn{from{opacity:0;transform:translateY(30px) scale(.96);filter:blur(6px)}to{opacity:1;transform:none;filter:none}}
@keyframes kenburns{to{transform:scale(1.02)}}

/* ========== 2. Shared components ========== */
.glass{position:relative;background:var(--glass-bg);-webkit-backdrop-filter:blur(22px) saturate(160%);backdrop-filter:blur(22px) saturate(160%);
  border:1px solid var(--glass-border);border-radius:var(--r-md);box-shadow:var(--glass-shadow);}
.dark.glass{background:linear-gradient(140deg,rgba(255,255,255,.09),rgba(255,255,255,.02)),var(--navy);}
.shine{overflow:hidden;}
.shine::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .4s;
  background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),rgba(244,196,48,.16),transparent 45%);}
.shine:hover::after{opacity:1;}
.pinstripe,.dark.pinstripe{background:
  repeating-linear-gradient(90deg,rgba(200,168,110,.075) 0 1px,transparent 1px 26px),
  radial-gradient(120% 90% at 0% 0%,var(--navy-lift) 0%,transparent 55%),var(--navy);}

/* buttons (also applied to Elementor Button widgets with the same class) */
.btn,.elementor-widget-button[class*="tsg-btn-"] .elementor-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:14px 24px;border-radius:10px;font-family:var(--sans);font-weight:600;font-size:.98rem;line-height:1.2;text-decoration:none;border:0;cursor:pointer;transition:transform .3s var(--ease),box-shadow .3s,background .3s;white-space:nowrap;}
.btn-brass,.elementor-widget-button.tsg-btn-brass .elementor-button{color:var(--navy);background:linear-gradient(110deg,#A8873F 0%,#C8A86E 30%,#F4C430 48%,#C8A86E 66%,#A8873F 100%);background-size:260% 100%;background-position:100% 0;box-shadow:0 10px 30px -10px rgba(200,168,110,.7),inset 0 1px 0 rgba(255,255,255,.5);animation:sheen 5.5s var(--ease) infinite;}
@keyframes sheen{0%,62%{background-position:100% 0}100%{background-position:0 0}}
.btn-brass:hover,.elementor-widget-button.tsg-btn-brass .elementor-button:hover{color:var(--navy);transform:translateY(-2px);box-shadow:0 16px 40px -12px rgba(244,196,48,.7),inset 0 1px 0 rgba(255,255,255,.6);}
.btn-ghost,.elementor-widget-button.tsg-btn-ghost .elementor-button{color:var(--ivory);background:var(--ghost-bg);border:1px solid var(--line-2);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);}
.btn-ghost:hover,.elementor-widget-button.tsg-btn-ghost .elementor-button:hover{color:var(--ivory);background:var(--ghost-hover);transform:translateY(-2px);}
.btn-navy,.elementor-widget-button.tsg-btn-navy .elementor-button{background:var(--navy);color:#F5F6F8;border:1px solid var(--navy);}
.btn-navy:hover,.elementor-widget-button.tsg-btn-navy .elementor-button:hover{background:var(--navy-lift);color:#F5F6F8;transform:translateY(-2px);}
.btn-sm,.elementor-widget-button.tsg-btn-sm .elementor-button{padding:10px 18px;font-size:.9rem;}
.btn[disabled]{opacity:.65;cursor:progress;transform:none;}
.link-btn{background:none;border:0;color:var(--brass-hi);cursor:pointer;text-decoration:underline;text-underline-offset:4px;padding:0;font-size:.92rem;font-weight:500;}

.bar{height:6px;border-radius:9px;background:rgba(var(--tint),.1);overflow:hidden;margin-top:10px;}
.bar i{display:block;height:100%;border-radius:9px;background:linear-gradient(90deg,#C8A86E,#F4C430);}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--lagoon);box-shadow:0 0 0 4px rgba(63,182,174,.18);margin-right:8px;animation:pulse 2.4s infinite;flex:none;}
@keyframes pulse{50%{box-shadow:0 0 0 8px rgba(63,182,174,0)}}
.badge{display:inline-flex;align-items:center;gap:8px;padding:8px 15px;border-radius:999px;font-size:.98rem;font-weight:500;border:1px solid rgba(200,168,110,.5);color:var(--brass-hi);background:rgba(200,168,110,.08);}
.fine{font-size:.85rem;color:var(--mist);margin-top:14px;}
.center-head{text-align:center;max-width:720px;margin:0 auto 64px;}
.center-head .kicker{justify-content:center;}
.center-head .lede{margin:18px auto 0;}
.sec-head{display:flex;justify-content:space-between;align-items:end;gap:32px;margin-bottom:56px;flex-wrap:wrap;}
.sec-head h2{max-width:16ch;}
.plain-head .lede{margin-top:18px;}
.plain-head .btn{margin-top:28px;}

/* share picker (hero calculator) */
.share-pick{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:16px 0;}
.share-pick button{padding:12px 6px;border-radius:10px;border:1px solid var(--line-2);background:var(--ghost-bg);cursor:pointer;transition:all .3s var(--ease);text-align:center;}
.share-pick button .p{font-family:var(--serif);font-size:1.35rem;display:block;color:#F5F6F8;line-height:1.3;}
.share-pick button .a{font-size:.92rem;color:#E6ECF3;}
.share-pick button:hover{border-color:rgba(200,168,110,.6);}
.share-pick button[aria-pressed="true"]{background:#F4C430;border-color:#F4C430;box-shadow:0 12px 26px -12px rgba(244,196,48,.8);}
.share-pick button[aria-pressed="true"] .p,.share-pick button[aria-pressed="true"] .a{color:var(--navy);}
.rows{display:grid;gap:8px;font-size:1.04rem;}
.rows div{display:flex;justify-content:space-between;gap:12px;border-bottom:1px dashed var(--line);padding-bottom:7px;}
.rows div:last-child{border:0;padding:0;}
.rows span{color:#E6ECF3;}
.rows b{font-weight:600;font-variant-numeric:tabular-nums;}

/* stars */
.stars{position:relative;display:inline-block;line-height:0;white-space:nowrap;vertical-align:middle;}
.stars svg{width:16px;height:16px;margin-right:2px;}
.stars .s-off svg{fill:rgba(var(--tint),.18);}
.stars .s-on{position:absolute;top:0;left:0;overflow:hidden;white-space:nowrap;}
.stars .s-on svg{fill:var(--star);}
.stars.lg svg{width:22px;height:22px;margin-right:3px;}

/* ========== 3. Page sections ========== */
.sec{padding:120px 0;position:relative;}

/* home hero: split */
.split-hero{display:grid;grid-template-columns:1.05fr 1fr;min-height:100vh;}
.sh-left{padding:180px clamp(24px,5vw,80px) 70px;display:flex;align-items:center;}
.sh-left .inner{max-width:620px;margin-left:auto;width:100%;}
.sh-left h1 .ln{display:block;overflow:hidden;padding-bottom:.06em;}
.sh-left h1 .ln span{display:block;transform:translateY(105%);animation:lineUp 1.1s var(--ease) forwards;}
.sh-left h1 .ln:nth-child(2) span{animation-delay:.12s}.sh-left h1 .ln:nth-child(3) span{animation-delay:.24s}.sh-left h1 .ln:nth-child(4) span{animation-delay:.36s}
.sh-left .kicker.anim{opacity:0;animation:fadeUp 1s .1s var(--ease) forwards;}
.sh-left .lede{margin:22px 0 30px;color:rgba(245,246,248,.78);}
.sh-left .lede.anim{opacity:0;animation:fadeUp 1s .45s var(--ease) forwards;}
.calc{padding:24px;border-radius:16px;opacity:0;animation:fadeUp 1s .6s var(--ease) forwards;}
.calc-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:4px;}
.calc-head b{font-family:var(--serif);font-weight:400;font-size:1.25rem;}
.calc-head span{font-size:.98rem;color:#E6ECF3;}
.calc-cta{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px;}
.sh-right{position:relative;background:#F5F6F8;padding:150px clamp(20px,4vw,64px) 0;display:flex;}
.arch{position:relative;flex:1;border-radius:999px 999px 0 0;overflow:hidden;min-height:520px;box-shadow:0 40px 80px -40px color-mix(in srgb,var(--navy) 60%,transparent);}
.arch img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:62% 50%;transform:scale(1.08);transition:transform .2s linear;filter:brightness(1.18) saturate(1.12) contrast(1.04);}
.arch::after{content:"";position:absolute;inset:14px 14px 0;border-radius:999px 999px 0 0;border:1px solid rgba(244,196,48,.6);border-bottom:0;pointer-events:none;}
.hbadge{position:absolute;padding:14px 18px;border-radius:14px;z-index:2;opacity:0;animation:cardIn 1s var(--ease) forwards;font-size:1.05rem;}
.hbadge small{display:block;font-size:.9rem;color:#33445F;}
.hbadge b{font-family:var(--serif);font-weight:400;font-size:1.5rem;}
.hbadge.b1{left:0;top:46%;animation-delay:.9s;display:flex;align-items:center;font-weight:600;font-size:1.08rem;padding:16px 20px;}
.hbadge.b2{right:clamp(8px,2vw,30px);bottom:12%;animation-delay:1.05s;}

/* proof strip and ribbon */
.proof{background:var(--navy-2);color:#F5F6F8;border-top:1px solid rgba(244,196,48,.25);}
.proof .wrap{display:grid;grid-template-columns:repeat(3,1fr);}
.pf{display:flex;align-items:center;gap:16px;padding:26px 24px;border-left:1px solid rgba(245,246,248,.12);}
.pf:first-child{border-left:0;padding-left:0;}
.pf .ic2{flex:none;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(200,168,110,.6);}
.pf .ic2 svg{width:22px;height:22px;stroke:#C8A86E;fill:none;stroke-width:1.5;}
.pf b{display:block;font-family:var(--serif);font-weight:400;font-size:1.7rem;line-height:1.1;color:#F4C430;}
.pf span{font-size:1rem;color:#E6ECF3;}
.ribbon{background:#fff;border-bottom:1px solid var(--line);}
.ribbon .wrap{display:grid;grid-template-columns:repeat(4,1fr);}
.ribbon .wrap>div{padding:26px 22px;border-left:1px solid var(--line);}
.ribbon .wrap>div:first-child{border-left:0;padding-left:0;}
.ribbon b{display:block;font-family:var(--serif);font-weight:400;font-size:1.7rem;color:var(--navy);}
.ribbon span{color:var(--mist);font-size:.92rem;}

/* how it works: photo cards */
.hsteps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.hstep{padding:0;border:1px solid rgba(255,255,255,.14);border-radius:16px;overflow:hidden;background:rgba(255,255,255,.06);display:flex;flex-direction:column;}
.hs-img{position:relative;aspect-ratio:4/3;overflow:hidden;}
.hs-img img{width:100%;height:100%;object-fit:cover;filter:brightness(1.1) saturate(1.08);transition:transform 1.2s var(--ease);display:block;}
.hstep:hover .hs-img img{transform:scale(1.06);}
.hs-body{position:relative;padding:34px 24px 28px;}
.hstep .num{position:absolute;top:-30px;left:20px;margin:0;width:58px;height:58px;border-radius:14px;display:grid;place-items:center;font-family:var(--serif);font-size:1.6rem;line-height:1;color:var(--navy);background:#F4C430;box-shadow:0 12px 26px -12px rgba(244,196,48,.8);}
.hstep h3{font-size:1.45rem;margin:8px 0 10px;color:#F5F6F8;}
.hstep p{color:#E6ECF3;font-size:1.04rem;}

/* featured villa: overlap */
.fv{display:grid;grid-template-columns:repeat(12,1fr);align-items:center;}
.fv-img{grid-column:1/9;grid-row:1;border-radius:18px;overflow:hidden;aspect-ratio:16/11;}
.fv-img img{width:100%;height:100%;object-fit:cover;display:block;}
.fv-card{grid-column:7/13;grid-row:1;padding:36px;border-radius:18px;z-index:2;}
.fv-card h2{margin:16px 0 12px;font-size:clamp(1.8rem,3vw,2.5rem);}
.fv-specs{display:grid;grid-template-columns:1fr 1fr;gap:10px 22px;margin:22px 0;}
.fv-specs div{border-top:1px solid var(--line);padding-top:10px;}
.fv-specs small{display:block;color:var(--mist);font-size:.9rem;}
.fv-specs b{font-family:var(--serif);font-weight:400;font-size:1.1rem;}
.fv-thumbs{display:flex;gap:10px;margin-bottom:24px;}
.fv-thumbs button{flex:1;padding:0;border:0;border-radius:10px;overflow:hidden;aspect-ratio:4/3;cursor:pointer;background:none;}
.fv-thumbs img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease);display:block;}
.fv-thumbs button:hover img{transform:scale(1.08);}

/* advantage diagram */
.adv{display:grid;grid-template-columns:1fr 1.1fr;gap:72px;align-items:center;}
.chart{padding:34px;border-radius:18px;background:#F5F6F8;border:1px solid var(--line);}
.chart h3{font-size:1.25rem;margin-bottom:24px;}
.brow{display:grid;grid-template-columns:150px 1fr;gap:16px;align-items:center;margin-bottom:18px;}
.brow span{font-size:.93rem;color:var(--mist);}
.btrack{display:flex;height:54px;border-radius:10px;overflow:hidden;background:color-mix(in srgb,var(--navy) 6%,transparent);}
.btrack i{display:flex;align-items:center;padding:0 14px;font-style:normal;font-size:.84rem;font-weight:600;white-space:nowrap;overflow:hidden;width:0;transition:width 1.6s var(--ease);}
.btrack .nv{background:var(--navy);color:#F5F6F8;}
.btrack .gd{background:linear-gradient(90deg,#C8A86E,#F4C430);color:var(--navy);}
.chart.in .btrack i{width:var(--w);}
.chart.in .btrack .gd{transition-delay:.9s;}
.adv-points{display:grid;grid-template-columns:repeat(3,1fr);gap:36px;margin-top:72px;padding-top:44px;border-top:1px solid var(--line);}
.apt{display:grid;grid-template-columns:52px 1fr;gap:18px;}
.apt .ic2{width:52px;height:52px;border-radius:50%;background:var(--navy);display:grid;place-items:center;}
.apt .ic2 svg{width:22px;height:22px;stroke:#C8A86E;fill:none;stroke-width:1.5;}
.apt h3{font-size:1.2rem;margin-bottom:8px;}
.apt p{color:var(--mist);font-size:.96rem;}
.why{display:grid;grid-template-columns:1fr 1fr;gap:34px 56px;}

/* vertical timeline */
.vtl{position:relative;max-width:1120px;margin:0 auto;}
.vline{position:absolute;left:50%;top:0;bottom:0;width:2px;margin-left:-1px;background:color-mix(in srgb,var(--navy) 10%,transparent);}
.vline i{position:absolute;inset:0;background:linear-gradient(180deg,#C8A86E,#F4C430);transform:scaleY(0);transform-origin:top;}
.vitem{position:relative;width:50%;padding:0 56px 56px 0;}
.vitem:nth-child(odd){margin-left:50%;padding:0 0 56px 56px;}
.vitem::before{content:"";position:absolute;top:26px;right:-9px;width:18px;height:18px;border-radius:50%;background:#fff;border:3px solid #C8A86E;box-shadow:0 0 0 6px rgba(244,196,48,.15);}
.vitem:nth-child(odd)::before{right:auto;left:-9px;}
.vcard{padding:0;border-radius:14px;display:grid;grid-template-columns:44% 1fr;overflow:hidden;}
.vcard .vimg{width:100%;height:100%;min-height:190px;object-fit:cover;filter:brightness(1.1) saturate(1.08);display:block;}
.vcard .vtxt{padding:26px 26px 28px;align-self:center;}
.vcard small{color:var(--kicker);font-weight:600;font-size:.95rem;}
.vcard h3{font-size:1.6rem;margin:4px 0 6px;}
.vcard p{color:var(--mist);font-size:1.04rem;}

/* Meet Kasey */
.k2{display:grid;grid-template-columns:1.1fr .9fr;gap:72px;align-items:center;}
.k2-photo{position:relative;border-radius:18px;max-width:460px;justify-self:end;width:100%;}
.k2-photo .frame{border-radius:18px;overflow:hidden;aspect-ratio:3/4;outline:1px solid rgba(244,196,48,.55);outline-offset:12px;}
.k2-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 18%;display:block;}
.kchip{position:absolute;z-index:2;padding:14px 18px;border-radius:14px;}
.kchip small{display:block;color:#E6ECF3;font-size:.9rem;}
.kchip b{font-family:var(--serif);font-weight:400;font-size:1.05rem;}
.k2-photo .c1{left:-34px;bottom:8%;}
.k2-photo .c2{right:-34px;bottom:34%;}
.k2-copy .krole{color:#C8A86E;font-weight:600;margin:8px 0 24px;}
.k2-copy .kbody p{color:rgba(245,246,248,.82);font-size:1.05rem;max-width:58ch;}
.k2-copy .kbody p+p{margin-top:16px;}
.k2-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:30px 0;}
.k2-facts div{padding:16px 18px;border-radius:14px;}
.k2-facts b{display:block;font-family:var(--serif);font-weight:400;font-size:1.5rem;color:#F4C430;}
.k2-facts span{font-size:.98rem;color:#E6ECF3;}
.k2-btns{display:flex;gap:12px;flex-wrap:wrap;}

/* reviews: featured quote */
.rev2{display:grid;grid-template-columns:.8fr 1.4fr;gap:56px;align-items:stretch;}
.rev-side{padding:36px;border-radius:18px;display:flex;flex-direction:column;gap:10px;}
.big-avg{font-family:var(--serif);font-size:4.6rem;line-height:1;color:#F4C430;}
.rev-side small,.rev-side .dist{font-size:.98rem;color:#E6ECF3;}
.rev-side .dist{margin:18px 0 24px;}
.rev-side .btn{align-self:flex-start;margin-top:auto;}
.rev-side h3{margin:8px 0;}
.quote-stage{position:relative;min-height:300px;margin-top:26px;}
.q{margin:0;animation:qIn .7s var(--ease) both;}
@keyframes qIn{from{opacity:0;transform:translateX(24px)}}
.q .qm{width:54px;height:54px;fill:#F4C430;opacity:.9;margin-bottom:10px;display:block;}
.q h3{font-size:clamp(1.5rem,2.6vw,2.1rem);line-height:1.25;margin:16px 0 14px;color:var(--navy);}
.q p{font-size:1.1rem;color:color-mix(in srgb,var(--navy) 80%,transparent);max-width:60ch;}
.q .who{margin-top:26px;display:flex;gap:14px;align-items:center;color:var(--mist);font-size:.92rem;}
.q .who b{display:block;color:var(--navy);}
.qnav{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:28px;}
.qdots{display:flex;gap:8px;}
.qdots button{width:10px;height:10px;border-radius:5px;border:0;background:color-mix(in srgb,var(--navy) 18%,transparent);cursor:pointer;padding:0;transition:width .4s var(--ease),background .3s;}
.qdots button[aria-pressed="true"]{width:30px;background:var(--navy);}
.qbtn{width:46px;height:46px;border-radius:10px;border:1px solid var(--line-2);background:#fff;cursor:pointer;display:grid;place-items:center;padding:0;}
.qbtn svg{width:18px;height:18px;stroke:var(--navy);fill:none;stroke-width:1.8;}
.mini-av{flex:none;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-family:var(--serif);font-size:.9rem;color:var(--navy);background:linear-gradient(140deg,#F4C430,#A8873F);}
.rel{display:inline-block;margin-top:2px;font-size:.78rem;color:var(--brass);}
.who .rel{display:block;}
.dist{display:grid;gap:7px;font-size:.86rem;color:var(--mist);max-width:420px;}
.dist div{display:grid;grid-template-columns:48px 1fr 26px;gap:12px;align-items:center;}
.dist .bar{margin:0;}
.empty{padding:32px;text-align:center;color:var(--mist);border:1px dashed var(--line-2);border-radius:var(--r-md);}

/* team tiles */
.tgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
.tm{position:relative;border-radius:16px;overflow:hidden;aspect-ratio:3/4;}
.tm-img{position:absolute;inset:0;display:grid;place-items:center;}
.tm-img img{width:100%;height:100%;object-fit:cover;object-position:50% 15%;transition:transform 1.2s var(--ease);display:block;}
.tm:hover .tm-img img{transform:scale(1.05);}
.tm-img .ini{font-family:var(--serif);font-size:4rem;color:#F4C430;}
.tm-cap{position:absolute;left:12px;right:12px;bottom:12px;padding:14px 16px;border-radius:12px;}
.tm-cap h3{font-size:1.15rem;}
.tm-cap span{font-size:.98rem;color:var(--mist);}

/* CTA with form */
.cta2{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
.cta2 form{padding:30px;border-radius:16px;}
.cta-band{position:relative;padding:64px clamp(24px,6vw,80px);display:grid;grid-template-columns:1.3fr auto;gap:32px;align-items:center;border-radius:var(--r-lg);overflow:hidden;isolation:isolate;}
.cta-band::before{content:"";position:absolute;inset:-40%;background:conic-gradient(from 0deg,transparent 0 70%,rgba(244,196,48,.18) 80%,transparent 90%);animation:spin 12s linear infinite;z-index:-1;}
.cta-band.dark.glass{background:radial-gradient(120% 140% at 100% 0%,rgba(244,196,48,.16),transparent 50%),linear-gradient(140deg,var(--navy-lift),var(--navy) 60%);}
@keyframes spin{to{transform:rotate(1turn)}}
.cta-band h2{max-width:18ch;}

/* sub hero for inner pages */
.sub-hero{display:grid;grid-template-columns:1.1fr 1fr;min-height:62vh;}
.sub-hero .sh-left{padding-top:170px;padding-bottom:64px;}
.sub-hero .sh-left .inner{max-width:620px;}
.sub-hero .sh-left h1{font-size:clamp(2.4rem,4.4vw,3.8rem);}
.sub-hero .sh-left .lede{margin:20px 0 0;}
.sub-hero .sh-left .meta{margin-top:22px;color:#E6ECF3;font-size:.95rem;}
.sub-hero .sh-img{position:relative;overflow:hidden;background:var(--navy);}
.sub-hero .sh-img img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;animation:kenburns 12s var(--ease) forwards;transform:scale(1.12);}
.sub-hero.no-img{grid-template-columns:1fr;min-height:46vh;}
.sub-hero.no-img .sh-left .inner{margin-left:0;max-width:820px;}
.sub-hero.no-img .sh-left{padding-left:max(24px,calc((100vw - 1200px)/2));}

/* about bits */
.split{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start;}
.story p{color:rgba(var(--text-rgb),.82);font-size:1.06rem;max-width:60ch;}
.story p+p{margin-top:18px;}
.statlist{display:grid;}
.statlist div{display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:22px 0;border-bottom:1px solid var(--line);}
.statlist div:first-child{border-top:1px solid var(--line);}
.statlist b{font-family:var(--serif);font-weight:400;font-size:2.6rem;color:var(--navy);line-height:1.2;}
.statlist span{color:var(--mist);text-align:right;}
.hstepper{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:26px;}
.hstepper::before{content:"";position:absolute;top:22px;left:22px;right:22px;height:1px;background:linear-gradient(90deg,#C8A86E,rgba(200,168,110,.2));}
.hstepper .s{position:relative;}
.hstepper .s i{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--navy);color:#F4C430;font-style:normal;font-family:var(--serif);font-size:1.1rem;margin-bottom:22px;box-shadow:0 0 0 6px #F5F6F8;}
.hstepper h3{font-size:1.2rem;margin-bottom:6px;}
.hstepper p{color:var(--mist);font-size:.95rem;}

/* properties list */
.tabs{display:flex;gap:30px;border-bottom:1px solid var(--line);margin-bottom:34px;flex-wrap:wrap;}
.tabs .chip{border:0;background:none;border-radius:0;padding:14px 0;position:relative;color:var(--mist);font-weight:600;font-size:.93rem;cursor:pointer;}
.tabs .chip::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:#F4C430;transform:scaleX(0);transition:transform .35s var(--ease);}
.tabs .chip[aria-pressed="true"]{color:var(--navy);}
.tabs .chip[aria-pressed="true"]::after{transform:scaleX(1);}
.pgrid{display:grid;grid-template-columns:1fr;gap:20px;}
.prow{display:grid;grid-template-columns:minmax(260px,38%) 1fr auto;gap:32px;align-items:stretch;padding:14px;border-radius:18px;background:#fff;border:1px solid var(--line);cursor:pointer;text-align:left;transition:box-shadow .5s var(--ease),transform .5s var(--ease);color:inherit;width:100%;font:inherit;}
.prow[hidden]{display:none;}
.prow:hover{transform:translateY(-4px);box-shadow:0 34px 60px -36px color-mix(in srgb,var(--navy) 50%,transparent);}
.prow-img{position:relative;border-radius:12px;overflow:hidden;min-height:220px;}
.prow-img img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;transition:transform 1.2s var(--ease);}
.prow:hover .prow-img img{transform:scale(1.06);}
.prow .tag{position:absolute;top:12px;left:12px;display:inline-flex;align-items:center;padding:9px 14px;border-radius:8px;font-size:.95rem;font-weight:600;background:color-mix(in srgb,var(--navy) 82%,transparent);color:#F5F6F8;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);}
.prow-body{padding:12px 0;display:flex;flex-direction:column;gap:8px;}
.prow-body .place{color:var(--kicker);font-weight:600;font-size:.9rem;}
.prow-body h3{font-size:1.7rem;}
.prow-body p{color:var(--mist);font-size:.96rem;max-width:56ch;}
.prow-specs{display:flex;gap:22px;flex-wrap:wrap;margin-top:auto;padding-top:12px;font-size:.88rem;color:var(--mist);}
.prow-specs b{color:var(--navy);font-weight:600;}
.prow-side{display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end;gap:16px;padding:12px 12px 12px 28px;border-left:1px solid var(--line);min-width:200px;}
.prow-side .from{font-size:.84rem;color:var(--mist);text-align:right;}
.prow-side .from b{display:block;font-family:var(--serif);font-weight:400;font-size:1.6rem;color:var(--navy);}

/* blog grid */
.bgrid{display:grid;grid-template-columns:1fr;gap:22px;}
.bgrid .stack{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
.post{position:relative;border-radius:16px;overflow:hidden;text-align:left;padding:0;background:#fff;border:1px solid var(--line);display:flex;flex-direction:column;transition:transform .5s var(--ease);text-decoration:none;color:inherit;}
.post:hover{transform:translateY(-5px);}
.post .bimg{overflow:hidden;aspect-ratio:16/9;}
.post .bimg img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease);display:block;}
.post:hover .bimg img{transform:scale(1.06);}
.post .bb{padding:22px 24px 26px;display:grid;gap:10px;}
.post .meta{font-size:.85rem;color:var(--kicker);font-weight:600;}
.post p{color:var(--mist);font-size:.96rem;}
.post.lead{flex-direction:row;}
.post.lead .bimg{width:55%;aspect-ratio:auto;min-height:340px;}
.post.lead .bb{width:45%;align-content:center;padding:40px;}
.post.lead h3{font-size:1.7rem;}

/* contact */
.ct2{display:grid;grid-template-columns:.85fr 1.15fr;border-radius:20px;overflow:hidden;box-shadow:0 40px 80px -50px color-mix(in srgb,var(--navy) 55%,transparent);}
.ct-info{padding:44px;display:flex;flex-direction:column;gap:26px;}
.ct-info a{color:#F5F6F8;font-family:var(--serif);font-size:1.35rem;text-decoration:none;border-bottom:1px solid rgba(244,196,48,.6);word-break:break-all;}
.ct-off{display:grid;gap:0;}
.ct-off div{display:flex;justify-content:space-between;gap:12px;padding:16px 0;border-bottom:1px solid rgba(245,246,248,.14);}
.ct-off b{font-family:var(--serif);font-weight:400;font-size:1.15rem;}
.ct-off small{color:var(--mist);text-align:right;}
.ct-form{background:#fff;padding:44px;}
.ct-form h2{font-size:1.9rem;margin-bottom:24px;}

/* careers */
.roles{display:grid;gap:14px;}
.role{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center;padding:26px 28px;border-left:3px solid #F4C430;border-radius:12px;background:#fff;}
.role h3{margin-bottom:6px;}
.role .rm{color:var(--mist);font-size:.93rem;display:flex;gap:18px;flex-wrap:wrap;}
.role p{color:var(--mist);font-size:.95rem;margin-top:10px;max-width:70ch;}
.role .rdesc p+p{margin-top:8px;}
.role .rdesc h4{margin:16px 0 8px;font-size:.92rem;font-weight:600;color:var(--kicker);}
.role .rdesc ul{list-style:none;padding:0;margin:0 0 12px;display:grid;gap:6px;color:var(--mist);font-size:.95rem;max-width:70ch;}
.role .rdesc li{display:flex;gap:10px;}
.role .rdesc li::before{content:"";flex:none;width:6px;height:6px;margin-top:9px;border-radius:50%;background:var(--brass);}
.role .rdesc strong{color:var(--navy);font-weight:600;}
.role .rm span+span::before{content:"·";margin-right:18px;color:var(--brass);}

/* article and long-form text */
.prose{max-width:760px;}
.prose h2{font-size:clamp(1.7rem,3vw,2.3rem);margin:44px 0 16px;color:var(--navy);}
.prose h3{font-size:1.35rem;margin:32px 0 12px;}
.prose p,.prose li{color:color-mix(in srgb,var(--navy) 85%,transparent);font-size:1.06rem;line-height:1.8;}
.prose p+p{margin-top:16px;}
.prose ul,.prose ol{padding-left:1.3em;margin:14px 0;}
.prose li+li{margin-top:6px;}
.prose a{color:var(--navy);text-decoration-color:#C8A86E;text-underline-offset:3px;}
.prose > :first-child{margin-top:0;}
.post-body{max-width:760px;margin:0 auto;}
.post-body p{font-family:var(--serif);font-size:1.12rem;line-height:1.85;color:color-mix(in srgb,var(--navy) 88%,transparent);}
.post-body p+p{margin-top:20px;}
.post-body h2,.post-body h3{margin:38px 0 14px;color:var(--navy);}
.post-body h2{font-size:clamp(1.6rem,3vw,2.1rem);}
.post-body h3{font-size:1.45rem;}
.post-body ul,.post-body ol{font-size:1.06rem;line-height:1.8;}
.post-end{max-width:760px;margin:44px auto 0;padding-top:30px;border-top:1px solid var(--line);display:flex;gap:12px;flex-wrap:wrap;align-items:center;justify-content:space-between;}

/* footer */
.site-footer{padding:90px 0 40px;background:var(--navy-2);}
.fhero{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;padding-bottom:50px;margin-bottom:50px;border-bottom:1px solid var(--line);}
.fhero img{height:52px;width:auto;}
.fhero p{color:var(--mist);max-width:40ch;}
.fgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;}
.fgrid h4{font-size:.92rem;color:var(--brass);font-weight:500;margin:0 0 16px;font-family:var(--sans);}
.fgrid ul{list-style:none;margin:0;padding:0;display:grid;gap:10px;}
.fgrid a{text-decoration:none;color:rgba(var(--text-rgb),.78);transition:color .2s;}
.fgrid a:hover{color:var(--brass-hi);}
.legal{margin-top:60px;padding-top:26px;border-top:1px solid var(--line);display:grid;gap:12px;font-size:.84rem;color:var(--mist);}
.legal .row{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;}
.legal a{color:var(--mist);}
.legal a:hover{color:#F4C430;}
.legal-links{display:flex;gap:20px;}

/* ========== 4. Modals, forms and reviews ========== */
.tsg-modal{position:fixed;inset:0;z-index:9980;display:none;justify-content:flex-end;align-items:stretch;padding:0;overflow-y:auto;overscroll-behavior:contain;}
.tsg-modal.open{display:flex;}
.tsg-modal .scrim{position:fixed;inset:0;background:color-mix(in srgb,var(--navy-2) 55%,transparent);-webkit-backdrop-filter:blur(14px) saturate(120%);backdrop-filter:blur(14px) saturate(120%);animation:fade .4s both;}
@keyframes fade{from{opacity:0}}
.tsg-modal .panel{position:relative;width:min(1000px,100%);min-height:100%;margin:0;background:var(--panel);color:var(--navy);box-shadow:0 60px 120px -40px color-mix(in srgb,var(--navy-2) 60%,transparent);animation:drawerIn .6s var(--ease) both;}
.tsg-modal .panel.narrow{width:min(660px,100%);}
@keyframes drawerIn{from{transform:translateX(80px);opacity:0}}
.tsg-modal .close{position:absolute;top:16px;right:16px;z-index:3;width:44px;height:44px;border-radius:10px;border:1px solid var(--line-2);background:color-mix(in srgb,var(--navy) 60%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;display:grid;place-items:center;padding:0;}
.tsg-modal .close svg{width:18px;height:18px;stroke:#F5F6F8;stroke-width:1.8;}
.gallery{position:relative;}
.gallery .gmain{aspect-ratio:16/8;overflow:hidden;position:relative;background:var(--navy);}
.gallery .gmain img{width:100%;height:100%;object-fit:cover;animation:fade .6s both;display:block;}
.gallery .gmain::after{content:"";position:absolute;inset:auto 0 0 0;height:50%;background:linear-gradient(transparent 55%,color-mix(in srgb,var(--navy) 45%,transparent));}
.thumbs{position:absolute;left:28px;bottom:22px;z-index:2;display:flex;gap:8px;padding:6px;border-radius:14px;}
.thumbs button{width:62px;height:46px;border-radius:9px;overflow:hidden;border:2px solid transparent;padding:0;cursor:pointer;opacity:.65;transition:all .3s;background:none;}
.thumbs button[aria-pressed="true"]{opacity:1;border-color:#8A6A1F;}
.thumbs img{width:100%;height:100%;object-fit:cover;display:block;}
.mbody{padding:34px clamp(22px,4vw,48px) 44px;}
.stepper{display:flex;gap:8px;align-items:center;font-size:.88rem;color:var(--mist);margin-bottom:24px;flex-wrap:wrap;}
.stepper span{display:inline-flex;align-items:center;gap:8px;}
.stepper span i{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:.78rem;border:1px solid var(--line-2);}
.stepper span.on{color:var(--ivory);}
.stepper span.on i{background:var(--brass);color:var(--navy);border-color:var(--brass);}
.stepper .sep{width:26px;height:1px;background:var(--line-2);}
.mgrid{display:grid;grid-template-columns:1.2fr 1fr;gap:44px;}
.mtitle{display:flex;justify-content:space-between;gap:20px;align-items:start;flex-wrap:wrap;margin-bottom:14px;}
.mtitle h2{font-size:clamp(1.8rem,3.4vw,2.6rem);}
.specs{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:26px 0;}
.spec{padding:14px 16px;border-radius:14px;background:#fff;border:1px solid var(--line);}
.spec small{display:block;color:var(--mist);font-size:.9rem;}
.spec b{font-family:var(--serif);font-weight:400;font-size:1.05rem;}
.lists{display:grid;grid-template-columns:1fr 1fr;gap:26px;}
.lists h4{margin:0 0 10px;font-size:.95rem;color:var(--brass-hi);font-weight:600;}
.lists ul{list-style:none;padding:0;margin:0;display:grid;gap:7px;font-size:.95rem;color:rgba(var(--text-rgb),.85);}
.lists li{display:flex;gap:10px;}
.lists li::before{content:"";flex:none;width:6px;height:6px;margin-top:9px;border-radius:50%;background:var(--brass);}
.plans{display:grid;gap:10px;}
.plan{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;padding:16px 18px;border-radius:16px;border:1px solid var(--line-2);background:rgba(var(--tint),.035);cursor:pointer;text-align:left;transition:all .3s var(--ease);width:100%;color:inherit;}
.plan:hover{border-color:rgba(200,168,110,.6);}
.plan[aria-checked="true"]{border-color:var(--brass);background:linear-gradient(150deg,rgba(200,168,110,.22),rgba(200,168,110,.05));box-shadow:0 12px 32px -18px rgba(200,168,110,.9);}
.plan .radio{width:20px;height:20px;border-radius:50%;border:1.5px solid var(--line-2);display:grid;place-items:center;}
.plan[aria-checked="true"] .radio{border-color:var(--brass-hi);}
.plan[aria-checked="true"] .radio::after{content:"";width:10px;height:10px;border-radius:50%;background:var(--brass-hi);}
.plan .pct{font-family:var(--serif);font-size:1.35rem;}
.plan .pct small{display:block;font-family:var(--sans);font-size:.92rem;color:#E6ECF3;}
.plan .amt{text-align:right;font-weight:600;font-variant-numeric:tabular-nums;}
.plan .amt small{display:block;font-weight:400;color:#E6ECF3;font-size:.92rem;}
.side-card{padding:24px;border-radius:20px;position:sticky;top:20px;}
.side-card h3{margin-bottom:6px;}
.side-card .fine{font-size:.92rem;color:#E6ECF3;}
.side-price{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:14px 0;border-bottom:1px solid var(--line);}
.side-price small{color:#E6ECF3;font-size:.9rem;}
.side-price b{font-family:var(--serif);font-weight:400;font-size:1.5rem;color:#F4C430;}

.form{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.field{display:grid;gap:7px;align-content:start;}
.field.full{grid-column:1/-1;}
.field label,fieldset.field legend{font-size:.88rem;color:var(--mist);}
.field input,.field select,.field textarea{width:100%;padding:14px 16px;border-radius:12px;border:1px solid var(--line-2);background-color:var(--input-bg);transition:border .25s,background .25s,box-shadow .25s;font-size:1rem;color:var(--ivory);line-height:1.4;}
.field textarea{min-height:120px;resize:vertical;}
.field select{appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--brass) 50%),linear-gradient(135deg,var(--brass) 50%,transparent 50%);background-position:calc(100% - 20px) 55%,calc(100% - 15px) 55%;background-size:5px 5px;background-repeat:no-repeat;padding-right:40px;}
.field select option{background:#fff;color:var(--navy);}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--brass);box-shadow:0 0 0 4px rgba(200,168,110,.15);}
.field .err{font-size:.82rem;color:var(--err);}
.field.bad input,.field.bad select,.field.bad textarea{border-color:#E08A7A;}
.check{grid-column:1/-1;display:flex;gap:12px;align-items:flex-start;font-size:.9rem;color:var(--mist);}
.check input{width:20px;height:20px;margin-top:2px;accent-color:var(--brass);flex:none;}
.check a{color:inherit;}
.hp-field{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden;}
.form-msg{grid-column:1/-1;font-size:.92rem;color:var(--err);}
.form-msg:empty{display:none;}
.form-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;}
.summary{padding:18px 20px;border-radius:16px;border:1px solid rgba(200,168,110,.4);background:rgba(200,168,110,.07);margin-bottom:22px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:center;}
.summary b{font-family:var(--serif);font-weight:400;font-size:1.15rem;}
.done{text-align:center;padding:40px 10px 10px;}
.done .seal{width:84px;height:84px;margin:0 auto 22px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(from 180deg,#A8873F,#F4C430,#C8A86E,#F4C430,#A8873F);animation:pop .7s var(--ease) both;}
.done .seal svg{width:34px;height:34px;stroke:var(--navy);stroke-width:2.4;fill:none;stroke-dasharray:40;stroke-dashoffset:40;animation:draw .6s .35s forwards;}
.done h2{margin-inline:auto;}
.done .lede{margin:12px auto 0;}
@keyframes pop{from{transform:scale(.4);opacity:0}}
@keyframes draw{to{stroke-dashoffset:0}}
.article{padding:40px clamp(22px,5vw,64px) 56px;}
.article h2{font-size:clamp(1.8rem,3.6vw,2.6rem);margin:8px 0 22px;max-width:22ch;}
.article h3{margin:30px 0 12px;font-size:1.2rem;}

/* CV upload */
.drop{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:26px 18px;border:1.5px dashed var(--line-2);border-radius:12px;background:#fff;text-align:center;cursor:pointer;transition:border-color .25s,background .25s;}
.drop:hover,.drop.over{border-color:#C8A86E;background:#FFFBEF;}
.drop input{position:absolute;width:1px;height:1px;opacity:0;}
.drop svg{width:28px;height:28px;stroke:var(--navy);fill:none;stroke-width:1.5;}
.drop .dt{font-weight:600;color:var(--navy);}
.drop small{color:var(--mist);}
.drop.has{border-style:solid;border-color:var(--navy);background:#F5F6F8;}
.field.bad .drop{border-color:#E08A7A;}

/* full review list ("Read all reviews" pop-up) */
.rsum{display:grid;grid-template-columns:auto 1fr;gap:36px;align-items:center;padding:26px 30px;margin-bottom:22px;}
.rsum .avg{font-family:var(--serif);font-size:3.6rem;line-height:1;color:var(--brass-hi);}
.rsum small{display:block;color:var(--mist);margin-top:8px;font-size:.88rem;}
.rtools{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap;}
.rtools select{padding:9px 36px 9px 14px;border-radius:999px;border:1px solid var(--line-2);background-color:#fff;appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--brass) 50%),linear-gradient(135deg,var(--brass) 50%,transparent 50%);background-position:calc(100% - 18px) 55%,calc(100% - 13px) 55%;background-size:5px 5px;background-repeat:no-repeat;font-size:.9rem;}
.rlist{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.review{padding:26px;display:flex;flex-direction:column;gap:14px;}
.review .rh{display:flex;justify-content:space-between;gap:12px;align-items:center;}
.review .date{font-size:.82rem;color:var(--mist);}
.review h4{margin:0;font-family:var(--serif);font-weight:400;font-size:1.12rem;line-height:1.35;}
.review p{color:rgba(var(--text-rgb),.82);font-size:.97rem;}
.review .who{margin-top:auto;padding-top:8px;display:flex;align-items:center;gap:12px;font-size:.88rem;color:var(--mist);}
.review .who b{display:block;color:var(--ivory);font-weight:600;}
fieldset.field{border:0;padding:0;margin:0;min-width:0;}
fieldset.field legend{padding:0;margin-bottom:7px;}
.star-input{display:flex;gap:6px;align-items:center;flex-wrap:wrap;}
.star-input input{position:absolute;opacity:0;width:1px;height:1px;}
.star-input label{cursor:pointer;line-height:0;border-radius:8px;}
.star-input label svg{width:36px;height:36px;fill:rgba(var(--tint),.14);stroke:rgba(var(--tint),.25);stroke-width:.8;transition:transform .25s var(--ease),fill .2s;}
.star-input label.lit svg{fill:var(--star);stroke:var(--star);filter:drop-shadow(0 0 10px rgba(244,196,48,.45));}
.star-input label:hover svg{transform:scale(1.15) rotate(-6deg);}
.star-input input:focus-visible+label{outline:2px solid var(--brass-hi);outline-offset:3px;}
.star-hint{margin-left:12px;font-size:.92rem;color:var(--brass-hi);}

.tsg-toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,30px);opacity:0;z-index:9995;padding:14px 22px;border-radius:999px;transition:all .4s var(--ease);font-size:.94rem;pointer-events:none;}
.tsg-toast.show{opacity:1;transform:translate(-50%,0);}

/* ========== 5. Elementor glue ========== */
/* Containers carrying the design classes. Padding is set through Elementor's own
   variables so values changed in the editor still win. */
.e-con.sec{--padding-top:120px;--padding-bottom:120px;--padding-left:0px;--padding-right:0px;}
.e-con.sec-tight{--padding-top:64px;--padding-bottom:100px;--padding-left:0px;--padding-right:0px;}
.e-con.wrap{width:min(1200px,100% - 48px);max-width:none;margin-inline:auto;--padding-left:0px;--padding-right:0px;}
.e-con.wrap.narrow{width:min(860px,100% - 48px);}
.e-con.split{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start;}
.e-con.adv{display:grid;grid-template-columns:1fr 1.1fr;gap:72px;align-items:center;}
.e-con.cta-band{display:grid;}
.e-con.cta-band > .e-con{gap:14px;}
.e-con.fhero,.e-con.legal .row{display:flex;flex-direction:row;}
.e-con.fgrid{display:grid;}
.e-con.fgrid > .e-con{gap:0;}
.e-con.legal{display:grid;}
.e-con.full-bleed{--padding-top:0px;--padding-bottom:0px;}
.e-con.sec,.e-con.sec-tight,.e-con.full-bleed,.e-con.wrap,.e-con.cta-copy,.e-con.story,.e-con.fbrand,.e-con.legal,.e-con.fgrid>.e-con,.e-con.site-footer{--flex-wrap:nowrap;--flex-wrap-mobile:nowrap;flex-wrap:nowrap;}
.e-con.mt-40{--margin-top:40px;}
.e-con.mt-60{--margin-top:60px;}
.e-con.cta-copy{gap:14px;}
.e-con.post-end{max-width:760px;margin:44px auto 0;padding-top:30px;border-top:1px solid var(--line);gap:12px;}
.elementor-widget-theme-post-content.post-body{max-width:760px;margin-inline:auto;width:100%;}
.elementor-widget-heading .elementor-heading-title{line-height:1.12;}
.elementor-widget-heading h1.elementor-heading-title{line-height:1.05;}
.elementor-widget-heading h2.elementor-heading-title{line-height:1.1;}
.elementor-widget-heading h3.elementor-heading-title{line-height:1.3;}
.elementor-widget-text-editor.lede,.elementor-widget-text-editor .lede{color:var(--mist);font-size:1.12rem;}
.elementor-widget-text-editor p:last-child{margin-bottom:0;}
.cta-band .elementor-widget-text-editor{color:var(--mist);font-size:1.12rem;}
.elementor-widget-button[class*="tsg-btn-"] .elementor-button-content-wrapper{gap:10px;}
.elementor-widget-button[class*="tsg-btn-"] .elementor-button-text{flex-grow:0;}
.elementor-widget-tsg-home-hero,.elementor-widget-tsg-sub-hero,.elementor-widget-tsg-post-hero,.elementor-widget-tsg-stats{width:100%;}
.story h2{margin-bottom:26px;}

/* header (Elementor Theme Builder: containers with classes topbar / hdr) */
.e-con.topbar{position:fixed;top:var(--hdr-top);left:0;right:0;z-index:9000;height:38px;display:flex;flex-direction:row;align-items:center;background:var(--navy-2);color:#A9B6C8;font-size:.84rem;transition:transform .45s var(--ease);--padding-top:0px;--padding-bottom:0px;}
.e-con.topbar > .e-con.wrap{flex-direction:row;justify-content:space-between;align-items:center;gap:16px;}
.topbar p{margin:0;}
.topbar a{color:#F5F6F8;text-decoration:none;}
.topbar .cities,.topbar .cities p{display:flex;gap:18px;flex-wrap:wrap;justify-content:flex-end;}
body.scrolled .e-con.topbar{transform:translateY(-100%);}
.e-con.hdr{position:fixed;top:calc(var(--hdr-top) + 38px);left:0;right:0;z-index:8999;background:rgba(255,255,255,.97);-webkit-backdrop-filter:blur(18px) saturate(160%);backdrop-filter:blur(18px) saturate(160%);border-bottom:1px solid color-mix(in srgb,var(--navy) 8%,transparent);transition:top .45s var(--ease),box-shadow .45s;--padding-top:0px;--padding-bottom:0px;}
body.scrolled .e-con.hdr{top:var(--hdr-top);box-shadow:0 12px 30px -20px color-mix(in srgb,var(--navy) 45%,transparent);}
.e-con.hdr > .e-con.hbar{flex-direction:row;align-items:center;justify-content:space-between;height:80px;gap:20px;}
.hdr .brand img{height:40px;width:auto;display:block;}
.hdr .hdr-actions{flex-direction:row;align-items:center;gap:10px;width:auto;}
.hdr .elementor-widget-nav-menu{flex:1;}
.hdr .elementor-nav-menu--main .elementor-nav-menu{gap:34px;justify-content:center;}
.hdr .elementor-nav-menu--main .elementor-nav-menu > li > a.elementor-item{padding:8px 0;color:var(--navy);font-family:var(--sans);font-weight:500;font-size:.95rem;position:relative;background:none;}
.hdr .elementor-nav-menu--main .elementor-nav-menu > li > a.elementor-item::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:#F4C430;transform:scaleX(0);transform-origin:right;transition:transform .35s var(--ease);opacity:1;}
.hdr .elementor-nav-menu--main .elementor-nav-menu > li > a.elementor-item:hover::after,
.hdr .elementor-nav-menu--main .elementor-nav-menu > li > a.elementor-item.elementor-item-active::after{transform:scaleX(1);transform-origin:left;}
.hdr .elementor-menu-toggle{background:#fff;border:1px solid var(--line-2);border-radius:10px;width:44px;height:44px;color:var(--navy);--nav-menu-icon-size:20px;}
.hdr .elementor-menu-toggle svg{fill:var(--navy);}
.hdr .elementor-nav-menu--dropdown{background:#fff;box-shadow:0 20px 40px -20px color-mix(in srgb,var(--navy) 40%,transparent);border-top:1px solid var(--line);}
.hdr .elementor-nav-menu--dropdown a,.hdr .elementor-nav-menu--dropdown a.elementor-item-active{color:var(--navy);background:#fff;padding:14px 24px;font-weight:500;font-size:1.05rem;border-left:3px solid transparent;}
.hdr .elementor-nav-menu--dropdown a:hover,.hdr .elementor-nav-menu--dropdown a.elementor-item-active{background:#F5F6F8;color:var(--navy);border-left-color:#F4C430;}
body.admin-bar{--hdr-top:32px;}
.elementor-editor-active .e-con.topbar,.elementor-editor-active .e-con.hdr,.elementor-editor-preview .e-con.topbar,.elementor-editor-preview .e-con.hdr{position:relative;top:auto;}

/* footer (Elementor Theme Builder: container with classes site-footer dark) */
.site-footer .fhero .e-con{width:auto;}
.site-footer .fhero .elementor-widget-image img{height:52px;width:auto;}
.site-footer .fbrand{gap:16px;}
.site-footer .elementor-widget-text-editor p{margin:0;}
.site-footer .fgrid ul{list-style:none;margin:0;padding:0;display:grid;gap:10px;}
.site-footer .fgrid li{color:var(--mist);}
.site-footer .elementor-heading-title{font-family:var(--sans);font-size:.92rem;color:var(--brass);font-weight:500;margin:0 0 16px;line-height:1.4;}

/* theme pages that are not built with Elementor (blog archive, search, 404) */
body:not(.elementor-page):not(.single-post) .site-main{padding-top:170px;padding-bottom:100px;max-width:1200px;margin-inline:auto;width:calc(100% - 48px);}
body:not(.elementor-page) .site-main .page-header .entry-title{font-family:var(--serif);font-weight:400;font-size:clamp(2.2rem,4vw,3.4rem);}

/* editor: show everything without waiting for scroll reveal */
.elementor-editor-active .rv,.elementor-editor-preview .rv{opacity:1;transform:none;clip-path:none;}
.elementor-editor-active .chart .btrack i{width:var(--w);}

/* ========== 6. Responsive ========== */
@media (max-width:1020px){
  .split-hero,.sub-hero{grid-template-columns:1fr;}
  .sh-left{padding-top:150px;}
  .sh-left .inner{margin-left:0;}
  .sh-right{padding:40px 24px 0;min-height:480px;}
  .sub-hero .sh-img{min-height:300px;}
  .sub-hero.no-img .sh-left{padding-left:24px;}
  .ribbon .wrap{grid-template-columns:1fr 1fr;}
  .ribbon .wrap>div:nth-child(3){border-left:0;padding-left:0;}
  .hsteps{grid-template-columns:1fr 1fr;row-gap:44px;}
  .fv{grid-template-columns:1fr;}
  .fv-img,.fv-card{grid-column:1;}
  .fv-card{grid-row:2;margin:-60px 16px 0;}
  .adv,.e-con.adv,.rev2,.k2,.cta2,.ct2,.split,.e-con.split,.mgrid{grid-template-columns:1fr;}
  .k2-photo{justify-self:center;}
  .adv-points,.why{grid-template-columns:1fr;}
  .tgrid{grid-template-columns:1fr 1fr;}
  .hstepper{grid-template-columns:1fr 1fr;row-gap:36px;}
  .hstepper::before{display:none;}
  .prow{grid-template-columns:1fr;}
  .prow-side{border-left:0;border-top:1px solid var(--line);flex-direction:row;align-items:center;padding:16px 4px 4px;}
  .post.lead{flex-direction:column;}.post.lead .bimg,.post.lead .bb{width:100%;}
  .post.lead .bimg{min-height:0;aspect-ratio:16/9;}
  .bgrid .stack{grid-template-columns:1fr;}
  .vline{left:10px;}
  .vitem,.vitem:nth-child(odd){width:100%;margin-left:0;padding:0 0 30px 44px;}
  .vitem::before,.vitem:nth-child(odd)::before{left:1px;right:auto;}
  .vcard{grid-template-columns:1fr;}
  .vcard .vimg{min-height:0;aspect-ratio:16/9;}
  .proof .wrap{grid-template-columns:1fr;}
  .pf{border-left:0;padding-left:0;border-top:1px solid rgba(245,246,248,.12);}
  .pf:first-child{border-top:0;}
  .rlist{grid-template-columns:1fr;}
  .side-card{position:static;}
  .k2-photo .c2{right:-8px;}.k2-photo .c1{left:-8px;}
}
@media (max-width:1024px){
  .hdr .hdr-actions .nav-cta{display:none;}
  .hdr .elementor-widget-nav-menu{flex:0 0 auto;order:3;}
}
@media (max-width:860px){
  .topbar .cities{display:none;}
}
@media (max-width:782px){
  body.admin-bar{--hdr-top:0px;}
}
@media (max-width:640px){
  body{font-size:16px;}
  .wrap,.e-con.wrap{width:calc(100% - 32px);}
  .sec{padding:84px 0;}
  .e-con.sec{--padding-top:84px;--padding-bottom:84px;}
  .e-con.sec-tight{--padding-top:44px;--padding-bottom:72px;}
  .form,.specs,.lists,.fgrid,.e-con.fgrid{grid-template-columns:1fr;}
  .share-pick{grid-template-columns:repeat(2,1fr);}
  .cta-band,.e-con.cta-band{grid-template-columns:1fr;}
  .role{grid-template-columns:1fr;}
  .gallery .gmain{aspect-ratio:4/3;}
  .thumbs{left:12px;bottom:12px;}
  .thumbs button{width:48px;height:38px;}
  .ribbon .wrap,.hsteps,.tgrid,.k2-facts,.hstepper{grid-template-columns:1fr;}
  .ribbon .wrap>div{border-left:0;padding-left:0;border-top:1px solid var(--line);}
  .ribbon .wrap>div:first-child{border-top:0;}
  .brow{grid-template-columns:1fr;gap:6px;}
  .k2-photo .c1{left:-6px}.k2-photo .c2{right:-6px}
  .ct-info,.ct-form{padding:28px;}
  .fv-card{padding:26px;margin:-40px 8px 0;}
  .rsum{grid-template-columns:1fr;gap:20px;}
  .sh-right{min-height:420px;}
  .hbadge.b1{top:38%;}
  .e-con.topbar > .e-con.wrap{justify-content:center;}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important;}
  .rv{opacity:1;transform:none;}
  .wipe{display:none;}
}

/* ========== 7. Property portal (v3): carousel, cards, property page, ways to own, cookie banner ========== */
/* First screen band: the fixed header (38px top bar + 80px bar) sits over it */
.e-con.pc-band{--padding-top:150px;--padding-bottom:58px;--padding-left:0px;--padding-right:0px;overflow:hidden;}
.e-con.ps-sec{padding-top:150px;padding-bottom:110px;}
.e-con.more-sec{padding-top:84px;padding-bottom:96px;}
.elementor-widget-tsg-property-carousel,.elementor-widget-tsg-property-single,.elementor-widget-tsg-property-list,.elementor-widget-tsg-ownership{width:100%;}

/* hero banner: full-width landing photo with the text over it (Home page) */
.elementor-widget-tsg-hero-banner{width:100%;}
.hb{position:relative;display:flex;align-items:center;min-height:100vh;min-height:100svh;max-height:1080px;overflow:hidden;background:var(--navy-2);color:#F5F6F8;}
.hb-media{position:absolute;inset:0;}
.hb-media img{width:100%;height:100%;max-width:none;object-fit:cover;object-position:50% 60%;transform:scale(1.1);animation:kenburns 14s var(--ease) forwards;}
.hb-shade{position:absolute;inset:0;background:
  radial-gradient(ellipse 70% 60% at 50% 52%,rgba(11,16,21,.62) 0%,rgba(11,16,21,.38) 55%,rgba(11,16,21,.2) 100%),
  linear-gradient(180deg,rgba(11,16,21,.35) 0%,rgba(11,16,21,0) 30%,rgba(11,16,21,0) 62%,rgba(11,16,21,.55) 100%);}
/* centred, symmetric text block: every heading line is sized (tsg.js) to the same width */
.hb-inner{position:relative;z-index:1;padding:150px 0 120px;display:flex;flex-direction:column;align-items:center;text-align:center;}
.hb .kicker{color:#E7CF9A;margin-bottom:20px;}
.hb-title{display:inline-block;max-width:100%;font-size:clamp(2.4rem,5vw,4.6rem);line-height:1.04;color:#fff;text-shadow:0 2px 30px rgba(0,0,0,.3);}
.hb-line{display:block;white-space:nowrap;}
.hb-line + .hb-line{font-size:1.14em;}
.hb-title em{font-style:normal;color:#F4C430;}
.hb-lede{text-wrap:balance;margin-top:24px;max-width:46ch;font-size:clamp(1.05rem,1.4vw,1.25rem);color:#E6ECF3;}
.hb-btns{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin-top:34px;}
.hb .hb-ghost{color:#fff;border-color:rgba(255,255,255,.45);background:rgba(255,255,255,.08);}
.hb .hb-ghost:hover{color:#fff;background:rgba(255,255,255,.18);}
.hb-cue{position:absolute;z-index:1;left:50%;bottom:28px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;color:#fff;text-decoration:none;font-size:.86rem;font-weight:600;letter-spacing:.02em;opacity:.9;}
.hb-cue svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;animation:hbcue 2.2s var(--ease) infinite;}
.hb-cue:hover{opacity:1;}
@keyframes hbcue{0%,100%{transform:translateY(0)}50%{transform:translateY(6px)}}
/* the property listing now follows the banner */
.e-con.pc-band.pc-below{--padding-top:96px;--padding-bottom:64px;}
#properties,#reviews{scroll-margin-top:60px;}

/* carousel */
.pc-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px 40px;flex-wrap:wrap;margin-bottom:28px;}
.pc-copy{max-width:760px;}
.pc-copy .lede{max-width:none;}
.pc-copy .kicker{margin-bottom:12px;}
.pc-title{font-size:clamp(2.2rem,3.8vw,3.5rem);line-height:1.05;color:var(--ivory);}
.dark .pc-title{color:#F5F6F8;}
.pc-copy .lede{margin-top:12px;}
.pc-tools{display:flex;align-items:center;gap:18px;flex-wrap:wrap;}
.pc .filters{display:flex;gap:8px;flex-wrap:wrap;}
.pc .chip{padding:9px 17px;border-radius:999px;border:1px solid var(--line-2);background:var(--ghost-bg);color:var(--ivory);font-weight:600;font-size:.9rem;cursor:pointer;transition:background .25s,color .25s,border-color .25s;}
.pc .chip:hover{background:var(--ghost-hover);}
.pc .chip[aria-pressed="true"]{background:#F4C430;border-color:#F4C430;color:#131A22;}
.pc-arrows{display:flex;gap:8px;}
.pc-btn{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line-2);background:var(--ghost-bg);color:var(--ivory);cursor:pointer;transition:background .25s,opacity .25s,transform .25s;}
.pc-btn:hover:not(:disabled){background:var(--ghost-hover);transform:translateY(-2px);}
.pc-btn:disabled{opacity:.35;cursor:default;}
.pc-btn svg,.sl-btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.pc.no-scroll .pc-arrows{display:none;}
/* The row stays inside the centred page width (same edges as the header); a fade on the right shows there is more to scroll */
.pc-track{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;overscroll-behavior-x:contain;padding:6px 0 18px;scrollbar-width:none;}
.pc-track::-webkit-scrollbar{display:none;}
.pc-track.more-right{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 90px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 90px),transparent);}
.pc-track:focus-visible{outline-offset:6px;}
.pc-track > .pcard{flex:0 0 calc((100% - 40px) / 3.25);scroll-snap-align:start;}
.pc.no-scroll .pc-track{justify-content:center;}
@media (min-width:1021px){ .pc.no-scroll .pc-track > .pcard{flex-basis:calc((100% - 40px) / 3);} }
.pc-foot{margin-top:14px;}
.pc-all{display:inline-flex;align-items:center;gap:8px;color:var(--brass-hi);font-weight:600;text-decoration:none;}
.pc-all svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;transition:transform .3s var(--ease);}
.pc-all:hover svg{transform:translateX(4px);}

/* property card (light palette even inside navy sections) */
.pcard{--ivory:var(--navy);--mist:#53627A;--kicker:#8A6A1F;--brass-hi:#8A6A1F;--tint:19,26,34;--text-rgb:19,26,34;--star:#E0A41A;--line:color-mix(in srgb,var(--navy) 12%,transparent);
  position:relative;display:flex;flex-direction:column;background:#fff;color:var(--navy);border-radius:18px;overflow:hidden;
  border:1px solid color-mix(in srgb,var(--navy) 10%,transparent);box-shadow:0 22px 50px -34px rgba(11,16,21,.55);transition:transform .45s var(--ease),box-shadow .45s var(--ease);}
.pcard:hover{transform:translateY(-4px);box-shadow:0 34px 60px -34px rgba(11,16,21,.6);}
.pcard[hidden]{display:none;}
.pcard-media{position:relative;aspect-ratio:16/11;background:#E9ECF1;overflow:hidden;}
.slides{display:flex;height:100%;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;}
.slides::-webkit-scrollbar{display:none;}
.slides > .slide{flex:0 0 100%;scroll-snap-align:start;margin:0;height:100%;display:block;}
.slides > .slide img{width:100%;height:100%;max-width:none;object-fit:cover;display:block;}
.sl-btn{position:absolute;top:50%;transform:translateY(-50%);width:38px;height:38px;border-radius:50%;border:0;display:grid;place-items:center;cursor:pointer;
  background:rgba(255,255,255,.92);color:var(--navy);box-shadow:0 8px 20px -8px rgba(0,0,0,.45);opacity:0;transition:opacity .25s,background .25s;z-index:2;}
.sl-btn.prev{left:10px;}
.sl-btn.next{right:10px;}
.sl-btn:hover{background:#fff;}
.pcard:hover .sl-btn,.pcard-media:focus-within .sl-btn,.ps-stage .sl-btn{opacity:1;}
.pcard .dots{position:absolute;left:0;right:0;bottom:10px;display:flex;justify-content:center;gap:5px;pointer-events:none;z-index:2;}
.pcard .dots i{width:6px;height:6px;border-radius:999px;background:rgba(255,255,255,.6);box-shadow:0 1px 3px rgba(0,0,0,.3);transition:width .3s,background .3s;}
.pcard .dots i.on{width:16px;background:#fff;}
.pcard .tag,.ps-stage .tag{position:absolute;top:12px;left:12px;z-index:2;display:inline-flex;align-items:center;padding:7px 12px;border-radius:8px;font-size:.85rem;font-weight:600;
  background:color-mix(in srgb,var(--navy) 82%,transparent);color:#F5F6F8;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);}
.pcard-body{position:relative;flex:1;display:flex;flex-direction:column;gap:6px;padding:18px 20px;}
.pcard-body .place{color:var(--kicker);font-weight:600;font-size:.86rem;}
.pcard-body h3{font-size:1.38rem;line-height:1.25;color:var(--navy);}
.pcard-link{color:inherit;text-decoration:none;}
.pcard-link::after{content:"";position:absolute;inset:0;}
.pcard-link:focus-visible{outline:none;}
.pcard-link:focus-visible::after{outline:2px solid #A8873F;outline-offset:-4px;border-radius:12px;}
.pcard-price{display:flex;align-items:baseline;gap:8px;margin-top:2px;}
.pcard-price small{color:var(--mist);font-size:.82rem;}
.pcard-price b{font-family:var(--serif);font-weight:400;font-size:1.5rem;color:var(--navy);}
.pcard-facts{list-style:none;margin:2px 0 12px;padding:0;display:flex;flex-wrap:wrap;gap:4px 14px;font-size:.86rem;color:var(--mist);}
.pcard-facts b{color:var(--navy);font-weight:600;}
.pcard-foot{margin-top:auto;padding-top:12px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:10px;}
.pcard-own{font-size:.82rem;color:var(--mist);}
.pcard-go{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:.9rem;color:#8A6A1F;white-space:nowrap;}
.pcard-go svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;transition:transform .3s var(--ease);}
.pcard:hover .pcard-go svg{transform:translateX(4px);}

#enquire{scroll-margin-top:100px;}
.all-reviews h2{margin-bottom:26px;}

/* shares: list on the property page (available / under offer / taken) and the summary on cards */
.ps-share-intro{margin:-4px 0 12px;}
.share-list{list-style:none;margin:0;padding:0;display:grid;gap:8px;}
.share-row{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:12px;padding:10px 10px 10px 14px;border-radius:12px;border:1px solid rgba(245,246,248,.18);background:rgba(255,255,255,.04);}
.share-row .sh-name b{display:block;color:#F5F6F8;font-weight:600;font-size:.97rem;line-height:1.3;}
.share-row .sh-name small{color:#D6DEE9;font-size:.84rem;}
.sh-status{display:inline-flex;align-items:center;gap:7px;font-size:.84rem;font-weight:600;white-space:nowrap;}
.sh-status i{width:8px;height:8px;border-radius:50%;background:currentColor;flex:none;}
.share-row.st-available .sh-status{color:#5FD18B;}
.share-row.st-offer .sh-status{color:#F4C430;}
.share-row.st-taken .sh-status,.share-row.st-off .sh-status{color:#A7B2C1;}
.share-row.st-taken,.share-row.st-off{background:transparent;}
.share-row.st-taken .sh-name b,.share-row.st-off .sh-name b{color:#A7B2C1;}
.share-row.outright{margin-top:4px;border-style:dashed;}
.sh-btn{min-width:84px;padding:8px 14px;border-radius:999px;border:1px solid #C8A86E;background:transparent;color:#F4C430;font-weight:600;font-size:.85rem;cursor:pointer;text-align:center;transition:background .25s,color .25s;}
.sh-btn:hover{background:rgba(244,196,48,.14);}
.sh-btn[aria-pressed="true"]{background:#F4C430;border-color:#F4C430;color:#131A22;}
.sh-btn.is-off{border-color:transparent;color:#A7B2C1;cursor:default;}
.pcard-shares{display:inline-flex;align-items:center;gap:8px;font-size:.82rem;color:var(--mist);}
.sh-dots{display:inline-flex;gap:3px;}
.sh-dots i{width:8px;height:8px;border-radius:50%;background:#2E9E5B;}
.sh-dots i.st-offer{background:#E0A41A;}
.sh-dots i.st-taken{background:#C3CAD4;}

/* Properties page grid */
.pgrid-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}

/* property page */
.crumbs{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:.9rem;color:var(--mist);margin-bottom:18px;}
.crumbs a{color:var(--navy);text-decoration:none;font-weight:600;}
.crumbs a:hover{text-decoration:underline;text-underline-offset:4px;}
.ps-stage{position:relative;border-radius:20px;overflow:hidden;background:#E9ECF1;aspect-ratio:16/8;max-height:640px;width:100%;}
.ps-stage .slides{height:100%;}
.ps-count{position:absolute;right:14px;bottom:14px;z-index:2;padding:6px 12px;border-radius:999px;background:color-mix(in srgb,var(--navy) 80%,transparent);color:#F5F6F8;font-size:.85rem;}
.ps-thumbs{display:flex;gap:10px;margin-top:12px;overflow-x:auto;padding-bottom:4px;}
.ps-thumbs button{flex:0 0 auto;width:96px;height:64px;padding:0;border-radius:10px;overflow:hidden;border:2px solid transparent;cursor:pointer;background:#E9ECF1;opacity:.75;transition:opacity .25s,border-color .25s;}
.ps-thumbs button img{width:100%;height:100%;object-fit:cover;display:block;max-width:none;}
.ps-thumbs button[aria-pressed="true"],.ps-thumbs button:hover{opacity:1;border-color:#C8A86E;}
.ps-grid{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:56px;margin-top:40px;align-items:start;}
.ps-info .place{color:var(--kicker);font-weight:600;font-size:.95rem;}
.ps-info h1{font-size:clamp(2.2rem,4vw,3.4rem);margin:8px 0 16px;}
.ps-badge{margin-bottom:16px;}
.ps-info .lede{max-width:none;margin-bottom:14px;}
.ps-desc{color:rgba(var(--text-rgb),.85);margin-bottom:14px;max-width:72ch;}
.ps-h{font-size:clamp(1.5rem,2.4vw,1.9rem);margin:40px 0 16px;color:var(--navy);}
.ps-h3{font-family:var(--sans);font-size:.95rem;font-weight:600;color:var(--brass-hi);margin:0 0 10px;}
.ps-dh{font-size:1.2rem;color:var(--navy);margin:26px 0 8px;}
.ps-plans{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;}
.ps-plans a{display:block;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff;text-decoration:none;}
.ps-plans img{display:block;width:100%;height:260px;object-fit:contain;padding:12px;}
.ps-plans span{display:block;padding:10px 14px;border-top:1px solid var(--line);font-size:.88rem;color:var(--brass-hi);font-weight:600;}
.pcard-shares.is-whole{font-weight:600;color:var(--navy);}
.ps-info .lists{margin-top:28px;}
.ps-info .lists ul + .ps-h3{margin-top:22px;}
.ps-info .specs{grid-template-columns:repeat(3,1fr);margin:0;}
.ps-side .side-card{top:136px;padding:26px;}
.ps-side .side-card h3{margin:20px 0 12px;font-size:1.25rem;color:#F5F6F8;}
.own-opts{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.own-opt{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 14px;border-radius:12px;border:1px solid rgba(245,246,248,.26);background:rgba(255,255,255,.05);
  color:#F5F6F8;font-weight:600;font-size:.95rem;text-align:left;cursor:pointer;transition:border-color .25s,background .25s,box-shadow .25s;}
.own-opt small{font-weight:400;color:#D6DEE9;font-size:.85rem;}
.own-opt.wide{grid-column:1/-1;flex-direction:row;justify-content:space-between;align-items:baseline;}
.own-opt:hover{background:rgba(255,255,255,.1);}
.own-opt[aria-pressed="true"]{border-color:#F4C430;background:rgba(244,196,48,.12);box-shadow:inset 0 0 0 1px #F4C430;}
.ps-side .fine{margin-top:14px;}
.ps-form{margin-top:22px;padding-top:22px;border-top:1px solid rgba(245,246,248,.14);}
.ps-form h4{font-family:var(--serif);font-weight:400;font-size:1.25rem;margin:0 0 14px;color:#F5F6F8;}
.form.one-col{grid-template-columns:1fr;gap:12px;}
.form.one-col .check{font-size:.86rem;}
.ps-form .btn{width:100%;margin-top:4px;}

/* ways to own */
.own2{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.own-tile{padding:34px;border-radius:20px;display:flex;flex-direction:column;align-items:flex-start;}
.own-top{display:flex;justify-content:space-between;align-items:center;width:100%;margin-bottom:20px;}
.own-tile .ic2{width:52px;height:52px;border-radius:50%;background:var(--navy);display:grid;place-items:center;}
.own-tile .ic2 svg{width:22px;height:22px;stroke:#C8A86E;fill:none;stroke-width:1.5;}
.own-k{font-family:var(--serif);font-size:1.7rem;color:var(--brass-hi);}
.own-tile h3{font-size:1.55rem;margin-bottom:10px;}
.own-tile p{color:var(--mist);}
.own-tile ul{list-style:none;padding:0;margin:16px 0 0;display:grid;gap:8px;font-size:.96rem;color:rgba(var(--text-rgb),.85);}
.own-tile li{display:flex;gap:10px;}
.own-tile li::before{content:"";flex:none;width:6px;height:6px;margin-top:10px;border-radius:50%;background:var(--brass);}
.own-tile .btn{margin-top:24px;}

/* cookie banner */
.tsg-cookie{position:fixed;left:20px;bottom:20px;z-index:9996;max-width:520px;padding:18px 20px;border-radius:16px;}
.tsg-cookie p{font-size:.92rem;color:#E6ECF3;}
.tsg-cookie a{color:#F4C430;}
.tsg-cookie-btns{display:flex;gap:10px;margin-top:12px;}

@media (max-width:1020px){
  .pc-track > .pcard{flex-basis:calc((100% - 20px) / 2.15);}
  .pgrid-cards{grid-template-columns:1fr 1fr;}
  .ps-grid{grid-template-columns:1fr;gap:40px;}
  .ps-side .side-card{position:static;}
  .ps-stage{aspect-ratio:16/10;}
  .own2{grid-template-columns:1fr;}
}
@media (max-width:640px){
  .e-con.pc-band{--padding-top:128px;--padding-bottom:44px;}
  .e-con.pc-band.pc-below{--padding-top:64px;--padding-bottom:44px;}
  .hb{min-height:88vh;min-height:88svh;}
  .hb-inner{padding:130px 0 110px;}
  .hb-shade{background:linear-gradient(180deg,rgba(11,16,21,.5) 0%,rgba(11,16,21,.45) 45%,rgba(11,16,21,.75) 100%);}
  .hb-btns .btn{flex:1 1 auto;}
  .e-con.ps-sec{padding-top:124px;padding-bottom:84px;}
  .e-con.more-sec{padding-top:64px;padding-bottom:72px;}
  .pc-head{margin-bottom:20px;}
  .pc-tools{width:100%;justify-content:space-between;}
  .pc-track{gap:14px;}
  .pc-track > .pcard{flex-basis:84%;}
  .pgrid-cards{grid-template-columns:1fr;}
  .ps-stage{aspect-ratio:4/3;border-radius:14px;}
  .ps-info .specs{grid-template-columns:1fr 1fr;}
  .own-tile{padding:26px;}
  .tsg-cookie{left:12px;right:12px;bottom:12px;}
}
@media (hover:none){
  .pcard .sl-btn,.pc-arrows{display:none;}
}
