:root{--navy:#0f2742;--navy2:#173a5e;--gold:#d4a744;--gold2:#b98b26;--sand:#faf7f0;--ink:#1c2633;--muted:#5a6676;--line:#e6dfd0;--r:14px}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;font-size:17px;line-height:1.65;color:var(--ink);background:var(--sand)}
img{max-width:100%;height:auto;display:block}a{color:var(--navy2)}
h1,h2,h3{font-family:"Playfair Display",Georgia,serif;line-height:1.15;color:var(--navy);margin:0 0 .5em}
.wrap{max-width:1140px;margin:0 auto;padding:0 20px}
.top{background:rgba(255,255,255,.97);position:sticky;top:0;z-index:30;border-bottom:1px solid var(--line);backdrop-filter:blur(6px)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:68px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--navy);font-family:"Playfair Display",Georgia,serif;font-weight:700;font-size:1.15rem}
.brand img{width:46px;height:46px;border-radius:50%}
.top nav{display:flex;gap:22px;align-items:center}
.top nav a{color:var(--ink);text-decoration:none;font-weight:600;font-size:.94rem}
.top nav a:hover{color:var(--gold2)}
.top nav a.call{background:var(--navy);color:#fff;padding:9px 16px;border-radius:999px;display:inline-flex;gap:6px;align-items:center}
@media(max-width:900px){.top nav a:not(.call){display:none}}
@media(max-width:760px){.top nav{display:none}}
.hero{position:relative;color:#fff;background:linear-gradient(100deg,rgba(15,39,66,.9) 0%,rgba(15,39,66,.65) 50%,rgba(15,39,66,.2) 100%),url("/images/hero-beach.jpg") center/cover no-repeat,var(--navy);padding:110px 0 120px}
.eyebrow{display:inline-block;text-transform:uppercase;letter-spacing:.14em;font-size:.76rem;font-weight:700;color:var(--gold);border:1px solid rgba(212,167,68,.6);padding:6px 12px;border-radius:999px;margin:0 0 18px}
.hero h1{color:#fff;font-size:clamp(2.3rem,5.6vw,3.9rem);max-width:720px;text-shadow:0 2px 16px rgba(0,0,0,.3)}
.hero h1 em{color:var(--gold);font-style:normal}
.hero .lead{font-size:1.2rem;max-width:560px;color:#e7eef6;margin:0 0 30px}
.ctas{display:flex;flex-wrap:wrap;gap:12px}
.btn{display:inline-flex;align-items:center;gap:8px;text-decoration:none;font-weight:700;border-radius:10px;padding:14px 22px;font-size:1rem;border:0;cursor:pointer;font-family:inherit}
.btn-gold{background:var(--gold);color:#1e1503}.btn-gold:hover{background:var(--gold2);color:#fff}
.btn-ghost{border:2px solid rgba(255,255,255,.75);color:#fff}.btn-ghost:hover{background:rgba(255,255,255,.12)}
.btn-navy{background:var(--navy);color:#fff}.btn-navy:hover{background:var(--navy2)}
@media(max-width:760px){.hero{background:linear-gradient(180deg,rgba(15,39,66,.45) 0%,rgba(15,39,66,.8) 50%,rgba(15,39,66,.95) 100%),url("/images/hero-beach.jpg") 40% center/cover no-repeat,var(--navy);padding:140px 0 48px}.hero .ctas .btn{flex:1 1 100%;justify-content:center}}
section{padding:76px 0}
.kicker{text-transform:uppercase;letter-spacing:.14em;font-size:.76rem;font-weight:700;color:var(--gold2);margin:0 0 8px}
.head{max-width:680px;margin-bottom:34px}.head h2{font-size:clamp(1.8rem,3.6vw,2.6rem)}.head p{color:var(--muted);margin:0}
.white{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.listing{display:grid;grid-template-columns:1.1fr 1fr;background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:0 18px 40px rgba(15,39,66,.08)}
.listing .ph{position:relative;min-height:340px;background:var(--navy) center/cover no-repeat}
.listing .price{position:absolute;left:18px;top:18px;background:var(--gold);color:#1e1503;font-weight:800;padding:8px 14px;border-radius:10px}
.listing .price small{font-weight:600}
.listing .info{padding:30px}
.listing h3{font-size:1.6rem;margin-bottom:4px}
.listing .loc{color:var(--muted);margin:0 0 16px}
.facts{display:flex;gap:26px;margin:0 0 16px;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.facts b{display:block;font-size:1.3rem;color:var(--navy);font-family:"Playfair Display",Georgia,serif}
.facts span{font-size:.82rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.ticks{list-style:none;padding:0;margin:14px 0 22px}.ticks li{padding-left:24px;position:relative;margin:6px 0;color:var(--muted)}
.ticks li::before{content:"✓";position:absolute;left:0;color:var(--gold2);font-weight:800}
@media(max-width:860px){.listing{grid-template-columns:1fr}.listing .ph{min-height:240px}}
.svc{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.svc .card{background:var(--sand);border:1px solid var(--line);border-radius:var(--r);padding:26px}
.svc .ic{width:50px;height:50px;border-radius:12px;background:var(--navy);display:grid;place-items:center;margin-bottom:16px}
.svc .ic svg{stroke:var(--gold);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.svc h3{font-size:1.2rem}.svc p{margin:0;color:var(--muted);font-size:.97rem}
@media(max-width:980px){.svc{grid-template-columns:1fr 1fr}}@media(max-width:560px){.svc{grid-template-columns:1fr}}
.about{display:grid;grid-template-columns:420px 1fr;gap:50px;align-items:center}
.about img{border-radius:18px;box-shadow:0 18px 40px rgba(15,39,66,.18);width:100%}
.about .cap{font-size:.9rem;color:var(--muted);margin-top:10px;text-align:center}
@media(max-width:900px){.about{grid-template-columns:1fr}.about img{max-width:360px;margin:0 auto}}
.contact{display:grid;grid-template-columns:1fr 1.2fr;gap:44px;align-items:start}
.cinfo a{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--navy);font-weight:700;font-size:1.1rem;margin:14px 0}
.cinfo a svg{color:var(--gold2)}
.cinfo p{color:var(--muted)}
form.inq{background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px;box-shadow:0 18px 40px rgba(15,39,66,.08)}
.inq label{display:block;font-weight:700;font-size:.92rem;margin:14px 0 6px;color:var(--navy)}
.inq input,.inq textarea{width:100%;padding:12px 14px;border:1px solid #cfc7b6;border-radius:10px;font:inherit;background:#fffdf8}
.inq input:focus,.inq textarea:focus{outline:2px solid var(--gold);border-color:var(--gold)}
.roles{display:flex;flex-wrap:wrap;gap:8px}
.roles input{position:absolute;opacity:0;pointer-events:none}
.roles label{margin:0;font-weight:600;border:1px solid #cfc7b6;border-radius:999px;padding:8px 14px;cursor:pointer;background:#fffdf8}
.roles input:checked+label{background:var(--navy);color:#fff;border-color:var(--navy)}
.roles input:focus-visible+label{outline:2px solid var(--gold)}
.inq .btn{margin-top:20px;width:100%;justify-content:center}
.hp{position:absolute;left:-9999px}
.ok{display:none;background:#e9f6ee;border:1px solid #9fd3b2;color:#14532d;padding:14px 16px;border-radius:10px;margin-bottom:14px;font-weight:600}
.ok.err{background:#fdecec;border-color:#f0b4b4;color:#7f1d1d}
@media(max-width:900px){.contact{grid-template-columns:1fr}}
footer{background:var(--navy);color:#c9d5e3;padding:48px 0 28px;font-size:.95rem}
footer .cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:28px}
footer h3{color:#fff;font-size:1.05rem;margin-bottom:10px}footer a{color:#fff}
footer ul{list-style:none;padding:0;margin:0}footer li{margin:5px 0}
.ehos{display:flex;align-items:center;gap:10px;margin-top:10px}
.copy{border-top:1px solid rgba(255,255,255,.14);margin-top:26px;padding-top:16px;font-size:.85rem;color:#93a6bd}
.page{max-width:800px;padding:40px 20px 70px}
.callbar{display:none}
@media(max-width:760px){body{padding-bottom:62px}
 .callbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;background:var(--navy);box-shadow:0 -3px 12px rgba(0,0,0,.2);padding-bottom:env(safe-area-inset-bottom)}
 .callbar a{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;color:#fff;font-weight:700;text-decoration:none;padding:17px 0}
 .callbar a svg{color:var(--gold)}
 .callbar a+a{border-left:1px solid rgba(255,255,255,.18)}}
