/* Editorial homepage: sharp geometry, generous type and human photography. */
.premium-home { --sp-editorial-black:#10120f; --sp-editorial-gold:#ffdf36; }
.premium-home .navigation .navbar { padding:21px 0; }
.premium-home .navigation .navbar .navbar-nav>li>a { font-weight:600; }
.sp-home h1,.sp-home h2 { font-family:'Manrope',Arial,sans-serif; font-weight:500; letter-spacing:-2px; }
.sp-home h2 { font-size:44px; line-height:1.15; }
.sp-heading-muted { color:#646a60; }
.sp-home .sp-section { padding-top:100px; padding-bottom:100px; }
.sp-home .sp-eyebrow { font-size:10px; letter-spacing:2px; }
.sp-home .sp-button,.sp-home .sp-search-panel,.sp-home .sp-spotlight,
.sp-home .sp-property-card,.sp-home .sp-lifestyle-card,.sp-home .sp-calculator,
.sp-home .sp-agent-cta,.sp-home .sp-card-badge,.sp-home .sp-photo-label { border-radius:0; }
.sp-scroll-progress { position:fixed; top:0; left:0; right:0; height:3px; z-index:120; pointer-events:none; }
.sp-scroll-progress>span { display:block; height:100%; background:#ffdf36; width:100%; transform:scaleX(var(--sp-scroll,0)); transform-origin:left; }
.sp-home .sp-hero { height:650px; background:#10120f; }
.sp-hero-visual { position:absolute; inset:0; z-index:-3; overflow:hidden; }
.sp-home .sp-hero-image { position:relative; z-index:auto; display:block; width:100%; height:100%; object-position:center; animation:sp-editorial-photo 16s cubic-bezier(.15,.5,.3,1) both; }
.sp-home .sp-hero-shade { background:linear-gradient(90deg,#0c100df2 0%,#0c100dc9 30%,#0c100d52 51%,transparent 74%),linear-gradient(0deg,#0c100da6,transparent 38%); }
.sp-hero-grid { position:absolute; width:1px; top:0; bottom:0; left:5%; background:#fff1; z-index:-1; }
.sp-home .sp-hero-content { padding-top:83px; }
.sp-home .sp-hero h1 { font-family:'Manrope',Arial,sans-serif; font-size:84px; line-height:1.04; font-weight:500; letter-spacing:-4.8px; max-width:650px; margin:26px 0 0; text-shadow:none; }
.sp-title-line { display:block; animation:sp-title-enter 1.1s cubic-bezier(.2,.8,.2,1) both; }
.sp-title-line:nth-child(2) { animation-delay:.15s; }
.sp-title-gold { color:#ffe45c; }
.sp-home .sp-hero .sp-eyebrow { color:#ffe45c; animation:sp-soft-enter .8s .05s both; }
.sp-home .sp-hero .sp-eyebrow>span { height:2px; width:29px; animation:sp-rule-enter 1s .4s both; transform-origin:left; }
.sp-home .sp-hero-content>p { font-size:15px; line-height:1.9; color:#f4f4ec; margin-top:26px; animation:sp-soft-enter .8s .35s both; }
.sp-home .sp-hero-bottom { margin-top:30px; gap:31px; animation:sp-soft-enter .8s .5s both; }
.sp-home .sp-hero-bottom .sp-hero-explore { display:inline-flex; align-items:center; gap:13px; border:0; padding:0; color:white; font-size:12px; font-weight:500; }
.sp-hero-arrow { display:grid; place-items:center; width:43px; height:43px; background:#ffdf36; color:#10120f; font-size:25px; transition:transform .3s,background .3s; }
.sp-hero-explore:hover .sp-hero-arrow { transform:translate(3px,-3px); background:#fff08c; }
.sp-motion-toggle { display:inline-flex; gap:9px; align-items:center; border:0; background:transparent; color:#f5f6ed; font-size:10px!important; padding:10px 0; }
.sp-motion-toggle .sp-icon { height:13px; width:13px; }
.sp-hero-caption { position:absolute; bottom:85px; right:5%; left:58%; display:flex; gap:14px; align-items:center; color:#fff; font-size:9px; letter-spacing:1.5px; line-height:1.7; }
.sp-caption-line { width:33px; height:2px; background:#ffdf36; flex-shrink:0; animation:sp-rule-enter 1s .8s both; transform-origin:left; }
.sp-hero-caption small { display:block; font-size:11px; letter-spacing:0; margin-top:5px; color:white; }
.sp-caption-index { font-size:8px; writing-mode:vertical-rl; margin-left:auto; white-space:nowrap; }
.sp-scroll-cue { position:absolute; left:calc(50% - 10px); bottom:91px; width:20px; height:30px; border:1px solid #ffffff8c; border-radius:12px; }
.sp-scroll-cue>span { position:absolute; height:6px; width:2px; top:6px; left:8px; background:#ffe45c; animation:sp-scroll-dot 2.4s ease infinite; }
.sp-home .sp-search-wrap { margin-top:-44px; }
.sp-home .sp-search-panel { border-top:3px solid #ffdf36; box-shadow:0 18px 50px #11180d12; padding:0 32px 25px; }
.sp-home .sp-search-tabs { gap:34px; }
.sp-home .sp-search-tabs button,.sp-home .sp-search-tabs a { font-size:12px; }
.sp-home .sp-search-tabs .active:after { height:3px; }
.sp-home .sp-popular-searches { padding-top:23px; }
.sp-home .sp-section-heading { align-items:flex-end; margin-bottom:38px; }
.sp-home .sp-section-heading>.sp-text-link { margin-bottom:5px; }
.sp-home .sp-spotlight { background:#111510; color:white; border:0; }
.sp-home .sp-spotlight-slide { grid-template-columns:1.25fr 1fr; }
.sp-home .sp-spotlight-photo { min-height:405px; }
.sp-home .sp-spotlight-copy { padding:40px 38px 80px; }
.sp-home .sp-spotlight-copy h3 { font-family:'Manrope',Arial,sans-serif; font-size:29px; font-weight:500; line-height:1.35; letter-spacing:-1px; }
.sp-home .sp-spotlight-copy .sp-eyebrow { color:#ffe45c; font-size:9px; }
.sp-home .sp-spotlight-copy>p,.sp-home .sp-spotlight .sp-specs,
.sp-home .sp-spotlight .sp-specs .sp-icon,.sp-home .sp-spotlight-price small { color:#e0e5d9; }
.sp-home .sp-spotlight-copy>p>.sp-icon { color:#ffe45c; }
.sp-home .sp-spotlight .sp-text-link { color:#fff!important; border-color:#ffdf36; }
.sp-home .sp-spotlight .sp-text-link>span { color:#ffdf36; }
.sp-home .sp-spotlight-price { font-size:29px; font-weight:600; letter-spacing:-1px; margin-top:25px; }
.sp-home .sp-spotlight-controls { left:58.5%; right:29px; bottom:20px; }
.sp-home .sp-spotlight-controls>span { color:#e0e5d9; }
.sp-home .sp-spotlight-controls button { color:white; border-color:#4f5847; }
.sp-home .sp-spotlight-controls button:hover { color:#111510; background:#ffdf36; }
.sp-home .sp-slide-dots button { background:#56604e; border-radius:0; height:3px; }
.sp-home .sp-slide-dots button.active { background:#ffdf36; }
.sp-home .sp-property-card { border:0; border-bottom:1px solid #dfe2d8; }
.sp-home .sp-card-image { height:245px; }
.sp-home .sp-card-copy { padding:23px 0; }
.sp-home .sp-card-price { font-size:23px; font-weight:650; letter-spacing:-.7px; }
.sp-home .sp-card-copy h3 { font-size:15px; font-weight:600; }
.sp-home .sp-card-arrow { border-radius:0; width:34px; height:34px; transition:background .3s,transform .3s; }
.sp-home .sp-property-card:hover .sp-card-arrow { background:#ffdf36; transform:translate(2px,-2px); }
.sp-home .sp-pill-group button { font-size:11px; padding:10px 20px; border-radius:0; }
.sp-home .sp-rail-controls button { border-radius:0; height:33px; width:36px; }
.sp-home .sp-lifestyle-section { background:#f3f4ee; }
.sp-home .sp-lifestyle-grid { grid-template-columns:1.1fr 1fr 1fr; gap:20px; align-items:start; }
.sp-home .sp-lifestyle-card { height:440px; }
.sp-home .sp-lifestyle-card:nth-child(2) { margin-top:45px; }
.sp-home .sp-lifestyle-card:nth-child(3) { height:395px; }
.sp-home .sp-lifestyle-card>div { left:26px; bottom:30px; right:40px; }
.sp-home .sp-lifestyle-card h3 { font-family:'Manrope',Arial,sans-serif; font-size:28px; font-weight:500; line-height:1.25; letter-spacing:-1px; }
.sp-home .sp-lifestyle-card p { font-size:12px; line-height:1.8; }
.sp-home .sp-lifestyle-card>img { object-position:center; transition:transform 1s cubic-bezier(.2,.7,.2,1); }
.sp-home .sp-lifestyle-card:hover>img { transform:scale(1.06); }
.sp-home .sp-lifestyle-card>b { border:1px solid #ffffff70; display:grid; place-items:center; height:32px; width:32px; bottom:30px; right:17px; color:#ffe45c; transition:background .3s,color .3s; }
.sp-home .sp-lifestyle-card:hover>b { background:#ffdf36; border-color:#ffdf36; color:#10120f; }
.sp-human-section { background:#10140e; color:white; padding:100px 0; }
.sp-human-grid { display:grid; grid-template-columns:1.13fr 1fr; gap:75px; align-items:center; }
.sp-human-photo { position:relative; margin:0; }
.sp-human-photo>img { display:block; width:100%; height:440px; object-fit:cover; }
.sp-human-photo figcaption { display:flex; justify-content:space-between; gap:20px; margin-top:18px; font-size:8px; letter-spacing:1.2px; color:#ecf0e5; line-height:1.8; }
.sp-photo-corner { position:absolute; top:0; right:0; width:59px; height:59px; display:grid; place-items:center; background:#ffdf36; color:#10140e; font-size:32px; }
.sp-human-copy .sp-eyebrow { color:#ffe45c; }
.sp-human-copy h2 { font-size:43px; line-height:1.2; }
.sp-human-copy .sp-heading-muted { color:#cad2c0; }
.sp-human-copy>p { color:#e0e6d9; font-size:13px; line-height:1.9; margin-top:22px; max-width:430px; }
.sp-human-copy .sp-text-link { color:white!important; border-color:#ffdf36; margin-top:29px; font-size:11px; gap:15px; white-space:normal; }
.sp-human-copy .sp-text-link>span { color:#ffdf36; }
.sp-human-details { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:38px; padding-top:24px; border-top:1px solid #58604c; }
.sp-human-details span { font-size:9px; letter-spacing:1.2px; color:#ffe45c; }
.sp-human-details p { margin-top:10px; font-size:11px; line-height:1.7; color:#f0f3e9; }
.sp-home .sp-destination-grid>a { padding:30px 0; }
.sp-home .sp-destination-grid h3 { font-size:21px; font-weight:500; letter-spacing:-.8px; }
.sp-home .sp-destination-grid a>span:last-child { font-size:27px; }
.sp-home .sp-calculator { box-shadow:none; padding:35px; border-color:#d9ddcf; }
.sp-home .sp-calc-fields input { border-radius:0!important; }
.sp-home .sp-agent-cta { padding:62px 55px; border-top:3px solid #ffdf36; }
.sp-home .sp-agent-cta h2 { font-family:'Manrope',Arial,sans-serif; font-size:43px; line-height:1.2; }
.sp-home .sp-agent-cta .sp-eyebrow { color:#ffe45c; }
.sp-home .sp-agent-cta p { color:#f0f3e9; }
.sp-motion .sp-reveal { transform:translateY(32px); transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1); }
.sp-motion .sp-reveal.is-visible { transform:none; }
.sp-lifestyle-card:nth-child(2) { transition-delay:.12s; }
.sp-lifestyle-card:nth-child(3) { transition-delay:.24s; }
.sp-home .sp-button-gold { position:relative; overflow:hidden; }
.sp-home .sp-button-gold:after { content:''; position:absolute; top:-50%; bottom:-50%; left:-80%; width:40%; background:linear-gradient(90deg,transparent,#ffffff70,transparent); transform:skewX(-22deg); transition:left .65s ease; pointer-events:none; }
.sp-home .sp-button-gold:hover:after { left:140%; }
.sp-home .sp-text-link>span { transition:transform .3s; }
.sp-home .sp-text-link:hover>span { transform:translate(3px,-3px); }
@keyframes sp-title-enter { from { opacity:0; transform:translateY(28px); clip-path:inset(0 0 100% 0); } to { opacity:1; transform:none; clip-path:inset(0); } }
@keyframes sp-soft-enter { from { opacity:0; transform:translateY(15px); } to { opacity:1; transform:none; } }
@keyframes sp-rule-enter { from { transform:scaleX(0); } to { transform:scaleX(1); } }
@keyframes sp-editorial-photo { from { transform:scale(1.065); } to { transform:scale(1); } }
@keyframes sp-scroll-dot { 0%,100% { transform:translateY(0); opacity:.3; } 50% { transform:translateY(10px); opacity:1; } }
@media(min-width:1600px) {
    .sp-home .sp-hero { height:710px; }
    .sp-home .sp-hero-content { padding-top:100px; }
    .sp-home .sp-hero h1 { font-size:94px; }
}
@media(max-width:1100px) {
    .sp-home .sp-hero { height:600px; }
    .sp-home .sp-hero h1 { font-size:72px; }
    .sp-home h2 { font-size:37px; }
    .sp-home .sp-section { padding:75px 0; }
    .sp-human-section { padding:75px 0; }
    .sp-human-grid { gap:40px; }
    .sp-human-copy h2 { font-size:35px; }
    .sp-human-photo>img { height:420px; }
    .sp-human-photo figcaption>span:last-child { display:none; }
    .sp-home .sp-spotlight-copy { padding:32px 27px 75px; }
    .sp-home .sp-spotlight-copy h3 { font-size:25px; }
    .sp-home .sp-spotlight-photo { min-height:390px; }
    .sp-home .sp-spotlight-controls { left:59%; right:20px; }
    .sp-home .sp-lifestyle-card h3 { font-size:24px; }
    .sp-home .sp-lifestyle-card { height:380px; }
    .sp-home .sp-lifestyle-card:nth-child(3) { height:335px; }
    .sp-home .sp-lifestyle-card>div { left:20px; right:33px; }
    .sp-home .sp-lifestyle-card p { font-size:11px; }
}
@media(max-width:767px) {
    .sp-home .sp-hero { height:650px; }
    .sp-home .sp-hero-content { padding-top:54px; }
    .sp-home .sp-hero h1 { font-size:64px; letter-spacing:-3.6px; line-height:1.04; max-width:100%; margin-top:22px; }
    .sp-home .sp-hero .sp-eyebrow { font-size:8px; letter-spacing:1.4px; }
    .sp-home .sp-hero-content>p { font-size:12px; line-height:1.85; margin-top:23px; }
    .sp-home .sp-hero-image { object-position:69% center; }
    .sp-home .sp-hero-shade { background:linear-gradient(90deg,#0a100de6,#0a100d6b),linear-gradient(0deg,#0a100d8c,transparent 30%); }
    .sp-home .sp-hero-bottom { gap:22px; margin-top:25px; }
    .sp-home .sp-hero-bottom .sp-hero-explore { font-size:11px; }
    .sp-motion-toggle { font-size:9px!important; }
    .sp-hero-arrow { width:38px; height:38px; font-size:22px; }
    .sp-hero-caption { left:5%; right:5%; bottom:88px; font-size:8px; }
    .sp-hero-caption small { font-size:10px; }
    .sp-caption-index,.sp-scroll-cue { display:none; }
    .sp-home .sp-search-wrap { margin-top:-46px; }
    .sp-home .sp-search-panel { padding:0 20px 20px; }
    .sp-home .sp-search-tabs { gap:24px; }
    .sp-home .sp-search-tabs button,.sp-home .sp-search-tabs a { font-size:10px; }
    .sp-home .sp-section { padding:58px 0; }
    .sp-home h2 { font-size:35px; letter-spacing:-1.7px; }
    .sp-home .sp-section-heading { margin-bottom:27px; }
    .sp-home .sp-section-heading>.sp-text-link { margin-top:20px; }
    .sp-home .sp-spotlight-slide { grid-template-columns:1fr; }
    .sp-home .sp-spotlight-photo { min-height:255px; }
    .sp-home .sp-spotlight-copy { padding:28px 23px 74px; }
    .sp-home .sp-spotlight-copy h3 { font-size:25px; }
    .sp-home .sp-spotlight-controls { left:23px; right:23px; bottom:20px; }
    .sp-home .sp-spotlight-price { font-size:27px; }
    .sp-home .sp-pill-group button { font-size:10px; padding:9px 12px; }
    .sp-home .sp-rail-controls button { width:28px; height:30px; }
    .sp-home .sp-card-image { height:245px; }
    .sp-home .sp-card-copy { padding:21px 0; }
    .sp-home .sp-lifestyle-grid { grid-template-columns:1fr; gap:22px; }
    .sp-home .sp-lifestyle-card,.sp-home .sp-lifestyle-card:nth-child(3) { height:380px; }
    .sp-home .sp-lifestyle-card:nth-child(2) { margin-top:0; }
    .sp-home .sp-lifestyle-card>div { left:25px; right:45px; bottom:29px; }
    .sp-home .sp-lifestyle-card h3 { font-size:30px; }
    .sp-home .sp-lifestyle-card p { font-size:12px; }
    .sp-human-section { padding:58px 0; }
    .sp-human-grid { grid-template-columns:1fr; gap:39px; }
    .sp-human-photo>img { height:330px; }
    .sp-human-copy h2 { font-size:35px; }
    .sp-human-copy>p { font-size:12px; }
    .sp-human-copy .sp-text-link { font-size:11px; }
    .sp-human-details { margin-top:29px; padding-top:22px; }
    .sp-home .sp-destination-grid h3 { font-size:20px; }
    .sp-home .sp-calculator { padding:27px 22px; }
    .sp-home .sp-agent-cta { padding:35px 26px; }
    .sp-home .sp-agent-cta h2 { font-size:34px; }
    .sp-lifestyle-card:nth-child(2),.sp-lifestyle-card:nth-child(3) { transition-delay:0s; }
}
@media(max-width:370px) {
    .sp-home .sp-hero h1 { font-size:56px; letter-spacing:-3px; }
    .sp-home .sp-hero-bottom { gap:15px; }
}
.sp-motion-off .sp-home *, .sp-motion-off .sp-home *:before, .sp-motion-off .sp-home *:after {
    animation:none!important; transition:none!important; scroll-behavior:auto!important;
}
.sp-motion-off .sp-reveal { opacity:1; transform:none; }
@media(prefers-reduced-motion:reduce) {
    .sp-home *, .sp-home *:before, .sp-home *:after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
    .sp-motion .sp-reveal { opacity:1; transform:none; }
}
.sp-home .sp-lifestyle-card:nth-child(3)>img { object-position:74% center; }
.sp-home .sp-hero .sp-motion-toggle:focus-visible,
.sp-home .sp-hero a:focus-visible,
.sp-home .sp-spotlight a:focus-visible,
.sp-home .sp-spotlight button:focus-visible,
.sp-home .sp-human-section a:focus-visible { outline-color:#ffe45c; box-shadow:none; }
/* Explicit heading colors override the legacy anchor heading palette. */
.sp-home h2,.sp-home .sp-property-card h3,.sp-home .sp-tool-link h3,
.sp-home .sp-destination-grid h3 { color:#171916; }
.sp-home .sp-human-copy h2,.sp-home .sp-spotlight-copy h3,
.sp-home .sp-lifestyle-card h3,.sp-home .sp-agent-cta h2 { color:#fff; }
.premium-home .sp-home a:focus-visible { outline:3px solid #795b00!important; outline-offset:5px; }
.premium-home .sp-home .sp-hero a:focus-visible,
.premium-home .sp-home .sp-spotlight a:focus-visible,
.premium-home .sp-home .sp-human-section a:focus-visible { outline-color:#ffe45c!important; }
/* Rotating editorial stories; the search stays in a fixed layout below. */
.sp-home .sp-hero-visual>.sp-hero-image { position:absolute; inset:0; opacity:0; transform:scale(1.045); animation:none; transition:opacity 1.2s ease,transform 9s linear; }
.sp-home .sp-hero-visual>.sp-hero-image.is-active { opacity:1; transform:scale(1); }
.sp-hero-controls { position:absolute; right:5%; bottom:25px; display:flex; align-items:center; gap:15px; color:white; }
.sp-hero-controls>span { font-size:9px; letter-spacing:1.2px; }
.sp-hero-controls>button { background:transparent; color:white; border:1px solid #c4cdbb; width:31px; height:31px; font-size:19px; }
.sp-hero-controls>button:hover { color:#10140e; background:#ffdf36; border-color:#ffdf36; }
.sp-hero-dots { display:flex; gap:7px; align-items:center; }
.sp-hero-dots button { padding:0; width:18px; height:3px; border:0; background:#c1c8b8; }
.sp-hero-dots button.is-active { width:30px; background:#ffdf36; }
.sp-home .sp-hero h1 { min-height:175px; }
@media(max-width:1100px) { .sp-home .sp-hero h1 { font-size:65px; min-height:145px; } }
@media(max-width:767px) {
 .sp-hero-controls { bottom:65px; right:5%; gap:10px; }
 .sp-hero-caption { bottom:120px; }
 .sp-home .sp-hero h1 { font-size:clamp(40px,12.5vw,54px); min-height:120px; letter-spacing:-3px; }
}
@media(max-width:370px) { .sp-home .sp-hero h1 { font-size:clamp(38px,12.5vw,46px); min-height:105px; } }
@media(prefers-reduced-motion:reduce) { .sp-home .sp-hero-visual>.sp-hero-image { transform:none; transition:none; } }
