
:root { --ink:#0d3038; --ink-2:#174551; --sea:#6db7b3; --sea-light:#a9dad5; --sand:#d9c2a1; --sand-light:#f1e9dc; --foam:#f7f8f4; --cream:#fdfcf9; --line:rgba(13,48,56,.15); --muted:#627479; --max:1180px; --serif:'Playfair Display',Georgia,serif; --sans:Manrope,Arial,sans-serif; --mono:'DM Mono',monospace; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--cream); color:var(--ink); font-family:var(--sans); font-size:16px; line-height:1.55; overflow-x:hidden; }
body:has(.lightbox[open]) { overflow:hidden; }
a { color:inherit; text-decoration:none; } img { display:block; max-width:100%; } button { font:inherit; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }.sprite{position:absolute;pointer-events:none}
.site-header { position:relative; z-index:20; height:90px; background:var(--cream); border-bottom:1px solid rgba(13,48,56,.08); }.nav-wrap { width:min(var(--max),calc(100% - 56px)); height:100%; margin:auto; display:flex; align-items:center; justify-content:space-between; }.brand { display:flex; align-items:center; gap:10px; min-width:max-content; }.brand-mark { width:35px; height:35px; fill:none; stroke:var(--sea); stroke-width:2.1; stroke-linecap:round; }.brand span { display:grid; line-height:1; gap:3px; text-transform:uppercase; letter-spacing:.15em; font-size:10px; }.brand b { font-family:var(--serif); font-size:18px; font-weight:600; letter-spacing:.025em; text-transform:none; }.brand small { color:var(--muted); font-size:8px; letter-spacing:.19em; }.site-nav { display:flex; align-items:center; gap:29px; font-size:12px; font-weight:600; color:#405b60; }.site-nav > a:not(.nav-cta) { position:relative; padding:8px 0; }.site-nav > a:not(.nav-cta)::after { content:''; position:absolute; left:0; bottom:3px; width:0; height:1px; background:var(--sea); transition:width .2s ease; }.site-nav > a:hover::after,.site-nav .is-active::after { width:100%; }.nav-cta { padding:10px 16px; margin-left:6px; color:var(--ink); border:1px solid var(--ink); transition:all .2s ease; }.nav-cta:hover { background:var(--ink); color:var(--cream); }.menu-toggle { display:none; background:none; border:0; padding:8px; cursor:pointer; }.menu-toggle span { display:block; height:1.5px; width:25px; background:var(--ink); margin:5px 0; }
.hero { min-height:680px; display:grid; grid-template-columns:minmax(0,1.03fr) minmax(410px,.97fr); background:var(--ink); color:var(--cream); overflow:hidden; }.hero-content { padding:clamp(90px,11vw,150px) max(28px,calc((100vw - var(--max))/2)) 86px; padding-right:clamp(30px,7vw,100px); position:relative; z-index:2; }.eyebrow { font-family:var(--mono); color:var(--sea); text-transform:uppercase; letter-spacing:.14em; font-size:10px; font-weight:500; margin:0 0 18px; }.eyebrow-light{color:var(--sea-light)}h1,h2,h3,p { margin-top:0; }h1,h2 { font-family:var(--serif); font-weight:500; letter-spacing:-.04em; line-height:.98; }h1 { font-size:clamp(52px,6vw,84px); margin:0 0 28px; }h2 { font-size:clamp(38px,4.5vw,64px); margin:0; }h1 em,h2 em { color:var(--sea); font-weight:500; }.hero h1 em { color:var(--sand); }.hero-lead { max-width:440px; font-size:16px; color:rgba(255,255,255,.77); margin:0 0 34px; }.hero-actions { display:flex; gap:21px; align-items:center; flex-wrap:wrap; }.button { min-height:48px; padding:13px 18px; display:inline-flex; align-items:center; justify-content:center; gap:12px; font-size:11px; letter-spacing:.04em; font-weight:700; transition:transform .2s ease,box-shadow .2s ease,background .2s ease; cursor:pointer; }.button:hover { transform:translateY(-2px); box-shadow:0 8px 20px rgba(0,0,0,.12); }.button-sand { color:var(--ink); background:var(--sand); }.button-primary { background:var(--ink); color:var(--cream); }.hero-text-link { display:inline-flex; align-items:center; gap:8px; color:rgba(255,255,255,.75); font-size:11px; font-weight:600; }.hero-text-link svg { width:16px; height:16px; fill:none; stroke:var(--sea-light); stroke-width:1.5; }.hero-composition { position:relative; min-height:540px; }.hero-image { overflow:hidden; position:absolute; }.hero-image img { width:100%; height:100%; object-fit:cover; }.hero-image-main { width:73%; height:78%; right:0; top:0; }.hero-image-small { width:45%; height:40%; left:5%; bottom:0; border:10px solid var(--ink); }.hero-stamp { width:117px; height:117px; border-radius:50%; background:var(--sand); color:var(--ink); position:absolute; right:50%; top:53%; transform:translate(50%,-50%) rotate(-12deg); display:grid; align-content:center; justify-items:center; gap:8px; font-family:var(--mono); font-size:9px; text-transform:uppercase; letter-spacing:.11em; z-index:2; }.hero-stamp svg { width:54px; fill:none; stroke:var(--ink); stroke-width:1.25; }
.intro-band { max-width:var(--max); margin:0 auto; min-height:157px; display:grid; grid-template-columns:repeat(3,1fr) 1.35fr; align-items:center; gap:20px; border-bottom:1px solid var(--line); }.intro-band>div { display:flex; align-items:baseline; gap:9px; font-family:var(--mono); font-size:10px; text-transform:uppercase; letter-spacing:.08em; }.intro-number { color:var(--sea); font-family:var(--serif); font-size:34px; line-height:1; letter-spacing:-.04em; }.intro-band p { margin:0; color:var(--muted); font-size:12px; padding-left:16px; border-left:1px solid var(--line); }.section { padding:clamp(88px,10vw,145px) max(28px,calc((100vw - var(--max))/2)); }.section-heading { max-width:760px; }.split-heading { display:flex; justify-content:space-between; gap:50px; align-items:end; max-width:none; }.split-heading>p { width:min(100%,330px); margin:0 0 3px; color:var(--muted); font-size:14px; }.houses-section { padding-bottom:36px; }.house-list { margin-top:60px; display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }.house-card { background:white; min-width:0; transition:transform .25s ease,box-shadow .25s ease; }.house-card:hover { transform:translateY(-7px); box-shadow:0 18px 38px rgba(13,48,56,.11); }.house-card-image { display:block; height:274px; overflow:hidden; background:#dce3e2; }.house-card-image img { width:100%; height:100%; object-fit:cover; transition:transform .65s cubic-bezier(.2,.7,.2,1); }.house-card:hover .house-card-image img { transform:scale(1.045); }.house-card-body { padding:25px 23px 22px; }.eyebrow-row { display:flex; justify-content:space-between; gap:12px; }.house-number { font-family:var(--mono); color:var(--ink); font-size:10px; letter-spacing:.08em; }.house-card h3 { font:500 26px/1.08 var(--serif); letter-spacing:-.025em; margin:11px 0 14px; }.house-card p { font-size:12px; line-height:1.65; color:var(--muted); min-height:77px; margin:0; }.card-facts { list-style:none; padding:14px 0 15px; margin:17px 0 15px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); display:flex; flex-wrap:wrap; gap:10px 14px; }.card-facts li { display:flex; gap:5px; align-items:center; color:#496167; font-size:9px; font-weight:700; letter-spacing:.015em; }.card-facts svg { width:15px; height:15px; fill:none; stroke:var(--sea); stroke-width:1.65; }.card-actions { display:flex; align-items:center; justify-content:space-between; gap:10px; }.text-link { display:inline-flex; gap:9px; align-items:center; padding:5px 0; color:var(--ink); font-size:11px; font-weight:700; }.text-link span { color:var(--sea); font-size:16px; transition:transform .2s ease; }.text-link:hover span { transform:translateX(3px); }.card-wa { color:var(--ink); font-family:var(--mono); font-size:9px; letter-spacing:.05em; border-bottom:1px solid var(--sea); padding-bottom:3px; }.whatsapp-glyph { font-size:15px; font-weight:bold; color:var(--sea); }
.experience-section { background:var(--foam); display:grid; grid-template-columns:1.05fr .95fr; align-items:center; gap:clamp(46px,8vw,110px); padding-top:110px; padding-bottom:110px; }.experience-visual { position:relative; padding-bottom:40px; }.experience-visual>img { aspect-ratio:1.14; width:90%; object-fit:cover; }.image-caption { position:absolute; display:flex; gap:7px; right:0; bottom:0; background:var(--sand); color:var(--ink); padding:15px 16px; font:9px var(--mono); letter-spacing:.06em; text-transform:uppercase; }.experience-copy p:not(.eyebrow) { max-width:470px; color:var(--muted); font-size:14px; margin:28px 0 20px; }.amenities-section { background:var(--cream); }.amenity-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); margin-top:62px; }.amenity { min-height:195px; padding:27px 24px 20px 0; margin-right:24px; border-bottom:1px solid var(--line); }.amenity-index { display:block; font:10px var(--mono); color:var(--sea); margin-bottom:25px; }.amenity h3 { font:500 19px/1.12 var(--serif); letter-spacing:-.02em; margin:0 0 9px; }.amenity p { color:var(--muted); font-size:11px; line-height:1.6; margin:0; }.location-section { padding-top:0; }.location-card { background:var(--ink); color:white; display:grid; grid-template-columns:.92fr 1.08fr; min-height:526px; }.location-copy { padding:70px clamp(35px,5vw,75px); }.location-copy h2 em { color:var(--sand); }.location-copy>p:not(.eyebrow) { color:rgba(255,255,255,.7); max-width:350px; margin:25px 0; font-size:13px; }.location-copy address,.location-compact address { color:var(--sea-light); font-style:normal; font-size:12px; line-height:1.75; margin:0 0 27px; }.map-frame { min-height:290px; background:#d9e2df; }.map-frame iframe { border:0; display:block; width:100%; height:100%; min-height:290px; filter:grayscale(.2) contrast(1.02); }.closing-cta { text-align:center; padding-top:110px; padding-bottom:116px; background:linear-gradient(var(--cream),#eef2ef); }.closing-cta .eyebrow{margin-bottom:16px}.closing-cta h2{margin-bottom:30px}.site-footer { padding:60px max(28px,calc((100vw - var(--max))/2)) 22px; color:rgba(255,255,255,.76); background:#09272e; }.site-footer .brand { color:var(--cream); }.footer-top { display:grid; grid-template-columns:1.2fr .8fr .8fr; gap:48px; padding-bottom:50px; }.footer-top .brand+p { max-width:330px; color:rgba(255,255,255,.58); font-size:12px; margin:20px 0 0; }.footer-details { font-size:12px; }.footer-label { display:block; color:var(--sea-light); text-transform:uppercase; letter-spacing:.11em; font:10px var(--mono); margin-bottom:13px; }.footer-details a { line-height:1.7; color:var(--cream); }.footer-details p { color:rgba(255,255,255,.55); font-size:11px; line-height:1.6; margin:10px 0 0; }.footer-bottom { padding-top:20px; border-top:1px solid rgba(255,255,255,.13); display:flex; justify-content:space-between; gap:14px; color:rgba(255,255,255,.45); font:9px var(--mono); letter-spacing:.04em; }
.house-hero { height:min(720px,calc(100vh - 90px)); min-height:550px; position:relative; color:white; overflow:hidden; }.house-hero-image,.house-hero-overlay { position:absolute; inset:0; }.house-hero-image img { width:100%; height:100%; object-fit:cover; }.house-hero-overlay { background:linear-gradient(90deg,rgba(5,27,32,.82) 0%,rgba(5,27,32,.48) 47%,rgba(5,27,32,.08) 100%),linear-gradient(0deg,rgba(5,27,32,.35),transparent 55%); }.house-hero-content { position:relative; z-index:1; padding:47px max(28px,calc((100vw - var(--max))/2)) 70px; height:100%; display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-end; }.back-link { position:absolute; top:35px; color:rgba(255,255,255,.8); font-size:11px; font-weight:600; }.back-link:hover { color:var(--sand); }.house-hero-content h1 { color:var(--cream); font-size:clamp(58px,7vw,98px); margin:0 0 11px; }.house-hero-content>p:not(.eyebrow) { max-width:390px; font:500 20px/1.22 var(--serif); margin:0 0 25px; }.house-hero-counter { position:absolute; z-index:1; right:max(28px,calc((100vw - var(--max))/2)); bottom:45px; display:flex; flex-direction:column; gap:7px; align-items:end; color:rgba(255,255,255,.78); font:10px var(--mono); letter-spacing:.09em; text-transform:uppercase; }.house-overview { display:grid; grid-template-columns:1fr 1fr; column-gap:12%; row-gap:57px; padding-bottom:80px; }.house-overview-title h2 { font-size:clamp(36px,4vw,54px); }.house-overview-copy { padding-top:31px; }.house-overview-copy>p:first-child { font:500 20px/1.48 var(--serif); color:#254951; }.highlight-line { color:var(--sea); font:10px var(--mono); letter-spacing:.07em; text-transform:uppercase; padding-top:17px; margin:22px 0 0; border-top:1px solid var(--line); }.house-facts { grid-column:1/-1; display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }.house-facts>div { display:flex; gap:9px; align-items:center; padding:17px 0; font-size:11px; font-weight:700; }.house-facts svg { width:22px; height:22px; fill:none; stroke:var(--sea); stroke-width:1.5; }.pet-icon { color:var(--sea); font-size:23px; line-height:1; }.gallery-section { padding-top:66px; background:#eef2ef; }.gallery-heading { display:flex; justify-content:space-between; align-items:end; gap:40px; margin-bottom:49px; }.gallery-heading>p { max-width:260px; color:var(--muted); font-size:12px; margin:0 0 7px; }.gallery-grid { display:grid; grid-template-columns:repeat(4,1fr); grid-auto-flow:dense; gap:10px; }.gallery-item { position:relative; display:block; overflow:hidden; aspect-ratio:1.08; background:#dce4e2; }.gallery-item.gallery-large { grid-column:span 2; grid-row:span 2; aspect-ratio:auto; }.gallery-item img { width:100%; height:100%; object-fit:cover; transition:transform .4s ease; }.gallery-item:hover img { transform:scale(1.04); }.gallery-zoom { position:absolute; bottom:10px; right:10px; width:26px; height:26px; background:rgba(255,255,255,.88); color:var(--ink); display:grid; place-items:center; opacity:0; transform:translateY(5px); transition:.2s ease; }.gallery-item:hover .gallery-zoom { opacity:1; transform:none; }.detail-amenities { display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(40px,10vw,145px); background:var(--cream); padding-top:115px; padding-bottom:115px; }.detail-amenities ul { list-style:none; padding:0; margin:7px 0 0; border-top:1px solid var(--line); }.detail-amenities li { color:#3b585f; font:500 14px/1.3 var(--serif); padding:16px 28px 16px 25px; border-bottom:1px solid var(--line); position:relative; }.detail-amenities li::before { content:'~'; position:absolute; left:2px; color:var(--sea); font:20px var(--serif); top:11px; }.booking-section { display:grid; grid-template-columns:1fr 1fr; padding:0; min-height:500px; background:var(--ink); color:white; }.booking-image { min-height:390px; }.booking-image img { width:100%; height:100%; object-fit:cover; }.booking-copy { padding:65px clamp(34px,7vw,90px); display:flex; flex-direction:column; align-items:flex-start; justify-content:center; }.booking-copy h2 em { color:var(--sand); }.booking-copy>p:not(.eyebrow) { color:rgba(255,255,255,.66); font-size:13px; max-width:360px; margin:23px 0 29px; }.location-compact { display:grid; grid-template-columns:.8fr 1.2fr; gap:70px; align-items:stretch; padding-top:100px; padding-bottom:100px; }.location-compact h2 { margin-bottom:25px; }.location-compact .map-frame { min-height:350px; }.more-houses { padding-top:30px; }.more-houses .house-list { margin-top:50px; }.house-list.two-col { grid-template-columns:repeat(2, minmax(0,1fr)); }.house-list.two-col .house-card-image { height:310px; }.floating-wa { position:fixed; z-index:10; bottom:23px; right:22px; display:flex; align-items:center; gap:8px; background:#1a9b6f; color:white; box-shadow:0 9px 24px rgba(0,0,0,.2); padding:13px 17px; font-size:11px; font-weight:700; transition:transform .2s ease; }.floating-wa:hover{transform:translateY(-3px)}.floating-wa span{font-size:19px;font-weight:bold}.lightbox { width:min(100%,1100px); height:100%; padding:35px 70px; border:0; background:rgba(3,17,21,.98); color:white; max-width:none; max-height:none; outline:0; align-items:center; justify-content:center; }.lightbox[open] { display:flex; }.lightbox::backdrop { background:rgba(3,17,21,.87); }.lightbox figure { margin:0; max-width:100%; max-height:100%; display:grid; gap:11px; justify-items:center; }.lightbox-image { max-height:calc(100vh - 120px); max-width:100%; object-fit:contain; }.lightbox figcaption { color:rgba(255,255,255,.68); font:10px var(--mono); letter-spacing:.05em; }.lightbox button { border:0; color:white; background:rgba(255,255,255,.1); cursor:pointer; }.lightbox-close { position:absolute; right:22px; top:17px; font-size:30px; line-height:1; width:40px; height:40px; }.lightbox-prev,.lightbox-next { position:absolute; top:50%; transform:translateY(-50%); width:43px; height:43px; font-size:21px; }.lightbox-prev{left:16px}.lightbox-next{right:16px}
.reveal { opacity:0; transform:translateY(14px); transition:opacity .55s ease,transform .55s ease; }.reveal.is-visible { opacity:1; transform:none; }@media (prefers-reduced-motion:reduce){*,::before,::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}}
@media (max-width:900px){.site-header{height:77px}.nav-wrap{width:min(var(--max),calc(100% - 38px))}.menu-toggle{display:block}.site-nav{display:none;position:absolute;top:77px;left:0;right:0;padding:17px 20px 22px;align-items:stretch;background:var(--cream);border-bottom:1px solid var(--line);box-shadow:0 11px 20px rgba(0,0,0,.06)}.site-nav.is-open{display:flex;flex-direction:column;gap:4px}.site-nav>a:not(.nav-cta){padding:10px 0}.nav-cta{text-align:center;margin:8px 0 0}.hero{min-height:600px;grid-template-columns:1fr}.hero-content{padding:74px max(28px,calc((100vw - 84vw)/2)) 48px}.hero-composition{display:none}.intro-band{margin:0 28px;grid-template-columns:repeat(3,1fr);padding:24px 0;min-height:0}.intro-band p{display:none}.intro-band>div{align-items:flex-start;flex-direction:column;gap:3px}.intro-number{font-size:29px}.section{padding-left:max(28px,calc((100vw - 84vw)/2));padding-right:max(28px,calc((100vw - 84vw)/2))}.house-list{grid-template-columns:1fr 1fr}.house-list .house-card:last-child{grid-column:span 2;max-width:calc(50% - 12px)}.amenity-grid{grid-template-columns:repeat(2,1fr)}.experience-section{grid-template-columns:1fr;gap:40px}.experience-visual>img{width:87%}.location-card{grid-template-columns:1fr}.location-copy{padding:57px}.map-frame,.map-frame iframe{min-height:330px}.footer-top{grid-template-columns:1.3fr 1fr}.footer-top>div:first-child{grid-column:span 2}.house-hero{height:620px;min-height:0}.house-overview{column-gap:7%}.gallery-grid{grid-template-columns:repeat(3,1fr)}.detail-amenities{gap:50px}.booking-copy{padding:50px}.location-compact{grid-template-columns:1fr;gap:40px}.location-compact .map-frame{min-height:330px}}
@media (max-width:600px){h1{font-size:50px}h2{font-size:39px}.hero{min-height:590px}.hero-content{padding-top:90px}.hero-lead{font-size:14px}.button{font-size:10px}.intro-band{grid-template-columns:repeat(3,1fr);gap:6px}.intro-band>div{font-size:8px}.intro-number{font-size:26px}.split-heading{display:block}.split-heading>p{margin-top:22px}.house-list{grid-template-columns:1fr;gap:18px;margin-top:39px}.house-list .house-card:last-child{grid-column:auto;max-width:none}.house-card-image{height:255px}.house-card p{min-height:auto}.experience-section{padding-top:78px;padding-bottom:78px}.amenities-section{padding-top:80px}.amenity-grid{margin-top:40px}.amenity{min-height:175px;margin-right:15px;padding-top:20px}.amenity h3{font-size:17px}.location-copy{padding:48px 29px}.location-section{padding-left:0;padding-right:0}.location-card{margin:0}.location-section .location-card{border-radius:0}.map-frame,.map-frame iframe{min-height:280px}.closing-cta{padding-top:85px;padding-bottom:87px}.footer-top{grid-template-columns:1fr;gap:29px}.footer-top>div:first-child{grid-column:auto}.footer-bottom{display:block;line-height:1.8}.house-hero{height:570px}.house-hero-content{padding:42px 28px 50px}.house-hero-counter{right:28px;bottom:22px}.house-hero-content>p:not(.eyebrow){font-size:18px}.house-overview{grid-template-columns:1fr;gap:22px;padding-top:76px;padding-bottom:58px}.house-overview-copy{padding-top:0}.house-overview-copy>p:first-child{font-size:18px}.house-facts{grid-template-columns:1fr 1fr}.house-facts>div{padding:12px 0;font-size:10px}.gallery-section{padding-top:70px;padding-bottom:80px}.gallery-heading{display:block;margin-bottom:32px}.gallery-heading>p{margin-top:21px}.gallery-grid{grid-template-columns:repeat(2,1fr);gap:6px}.gallery-item.gallery-large{grid-column:span 2;grid-row:span 1;aspect-ratio:1.28}.gallery-zoom{opacity:1;transform:none;width:23px;height:23px}.detail-amenities{grid-template-columns:1fr;padding-top:79px;padding-bottom:79px;gap:30px}.booking-section{grid-template-columns:1fr}.booking-image{min-height:285px;max-height:300px}.booking-copy{padding:58px 29px}.location-compact{padding-top:78px;padding-bottom:78px}.more-houses{padding-top:12px}.house-list.two-col{grid-template-columns:1fr}.house-list.two-col .house-card-image{height:250px}.floating-wa{bottom:15px;right:13px;padding:12px 14px;font-size:10px}.lightbox{padding:28px 12px 55px}.lightbox-prev,.lightbox-next{top:auto;bottom:10px;transform:none}.lightbox-prev{left:calc(50% - 55px)}.lightbox-next{right:calc(50% - 55px)}.lightbox-close{right:8px;top:7px}}

/* Conversion and seasonal hero refinements */
.card-view-link { flex:1 1 auto; min-height:42px; padding:12px 14px; display:inline-flex; align-items:center; justify-content:space-between; gap:12px; background:var(--sea); color:var(--ink); font-size:10px; font-weight:800; letter-spacing:.045em; transition:background .2s ease, transform .2s ease, box-shadow .2s ease; }
.card-view-link span { color:var(--ink); font-size:17px; transition:transform .2s ease; }
.card-view-link:hover { background:var(--sea-light); transform:translateY(-2px); box-shadow:0 7px 16px rgba(13,48,56,.14); }
.card-view-link:hover span { transform:translateX(3px); }
.card-actions .card-wa { flex:0 0 auto; }
.hero-image-third { width:33%; height:31%; right:3%; bottom:0; border:10px solid var(--ink); z-index:1; }
@media (max-width:900px) {
  .card-view-link { min-height:44px; }
}
@media (max-width:600px) {
  .hero { background-image:linear-gradient(90deg,rgba(5,27,32,.93) 0%,rgba(5,27,32,.76) 100%),url('/assets/casa-09-01.webp'); background-size:cover; background-position:center; }
  .hero-content { background:linear-gradient(90deg,rgba(5,27,32,.33),rgba(5,27,32,0)); }
}

/* Property preview carousel */
.house-card-carousel { position:relative; }
.carousel-link, .carousel-stage { display:block; width:100%; height:100%; }
.carousel-stage { position:relative; overflow:hidden; background:#dce3e2; touch-action:pan-y; cursor:grab; }
.carousel-stage:active { cursor:grabbing; }
.carousel-slide { position:absolute; inset:0; opacity:0; visibility:hidden; transform:scale(1.018); transition:opacity .7s ease, transform 1.15s cubic-bezier(.2,.7,.2,1), visibility .7s ease; }
.carousel-slide.is-active { opacity:1; visibility:visible; transform:scale(1); }
.carousel-slide img { width:100%; height:100%; object-fit:cover; }
.carousel-control { position:absolute; z-index:2; top:50%; transform:translateY(-50%); width:32px; height:32px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.8); border-radius:50%; background:rgba(13,48,56,.72); color:#fff; font-size:24px; line-height:1; opacity:0; cursor:pointer; transition:opacity .2s ease, background .2s ease, transform .2s ease; }
.house-card-carousel:hover .carousel-control, .house-card-carousel:focus-within .carousel-control { opacity:1; }
.carousel-control:hover { background:var(--sea); color:var(--ink); }
.carousel-prev { left:12px; }.carousel-next { right:12px; }
.carousel-dots { position:absolute; z-index:2; left:17px; bottom:15px; display:flex; gap:5px; }
.carousel-dot { width:7px; height:7px; border:1px solid rgba(255,255,255,.95); border-radius:50%; padding:0; background:transparent; cursor:pointer; }
.carousel-dot.is-active { background:var(--sand); transform:scale(1.25); }
.carousel-count { position:absolute; z-index:2; right:14px; bottom:11px; padding:5px 7px; background:rgba(13,48,56,.7); color:#fff; font:9px var(--mono); letter-spacing:.05em; }
@media (max-width:600px) {
  .carousel-control { opacity:1; width:29px; height:29px; }
  .carousel-prev { left:9px; }.carousel-next { right:9px; }
  .carousel-dots { left:14px; bottom:12px; }
  .carousel-count { right:11px; bottom:9px; }
}
@media (prefers-reduced-motion:reduce) {
  .carousel-slide { transition:none; transform:none; }
}

/* Preserve the supplied panoramic beach photo on narrow screens. */
.experience-visual > img { width:100%; height:auto; aspect-ratio:auto; object-fit:contain; }
@media (max-width:600px) {
  .experience-visual { padding-bottom:46px; }
  .experience-visual > img { width:100%; height:auto; aspect-ratio:auto; object-fit:contain; }
  .experience-visual .image-caption { right:8px; bottom:0; }
}

/* Four-property layout */
.house-list { grid-template-columns:repeat(4, minmax(0, 1fr)); }
@media (max-width:1050px) {
  .house-list { grid-template-columns:repeat(2, minmax(0, 1fr)); }
}
@media (max-width:600px) {
  .house-list, .house-list.two-col { grid-template-columns:1fr; }
}

/* Conversion-first WhatsApp actions */
.card-actions { display:grid; grid-template-columns:1fr; gap:9px; align-items:stretch; }
.card-view-link, .card-wa { width:100%; min-height:44px; justify-content:center; }
.card-wa { display:inline-flex; align-items:center; gap:8px; padding:12px 14px; border:0; background:#1a9b6f; color:#fff; font-family:var(--sans); font-size:10px; font-weight:800; letter-spacing:.025em; box-shadow:0 6px 14px rgba(26,155,111,.18); transition:transform .2s ease, background .2s ease, box-shadow .2s ease; }
.card-wa:hover { background:#13865e; color:#fff; transform:translateY(-2px); box-shadow:0 9px 18px rgba(26,155,111,.26); }
.whatsapp-icon { width:17px; height:17px; flex:0 0 auto; fill:currentColor; }
.button .whatsapp-icon { width:18px; height:18px; }
