:root{
  --bg:#f7f1ec;
  --paper:#fffaf6;
  --ink:#171317;
  --muted:#6f646e;
  --plum:#4f3248;
  --plum-2:#2b1828;
  --gold:#d9b67e;
  --gold-soft:#ecd6ae;
  --line:#e7ddd6;
  --white:#fff;
  --shadow:0 18px 46px rgba(38,20,35,.08);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:linear-gradient(180deg,#fcf7f2 0%, #f7f1ec 100%);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.6}
a{text-decoration:none;color:inherit}
img{display:block;width:100%;height:100%;object-fit:cover}
button{font:inherit}
.shell{max-width:1200px;margin:0 auto;padding-left:24px;padding-right:24px}
.shell-wide{max-width:1400px;margin:0 auto;padding-left:24px;padding-right:24px}
.backbar{height:36px;background:#1b1218;color:#f6efe8;display:flex;align-items:center;padding:0 4.5vw;font-size:11px;letter-spacing:.06em;text-transform:uppercase}
.backbar a{opacity:.88}
.header{height:92px;display:flex;align-items:center;justify-content:space-between;padding:0 4.5vw;background:rgba(252,247,242,.88);position:sticky;top:0;z-index:30;border-bottom:1px solid rgba(23,21,23,.08);backdrop-filter:blur(18px)}
.brand{display:flex;align-items:center;gap:16px;min-width:0}
.brand-logo{width:58px;height:58px;border-radius:18px;object-fit:cover;box-shadow:0 10px 28px rgba(49,27,42,.16)}
.brand-copy{display:flex;flex-direction:column;line-height:1.12}
.brand-name{font-size:12px;letter-spacing:.26em;font-weight:800}
.brand-sub{font-size:11px;color:var(--muted);margin-top:6px}
.header-right{display:flex;align-items:center;gap:28px}
.hero-nav{display:flex;gap:18px;font-size:12px;color:#605760}
.hero-nav a{position:relative}
.hero-nav a:after{content:"";position:absolute;left:0;bottom:-4px;width:100%;height:1px;background:var(--plum);transform:scaleX(0);transform-origin:left;transition:.2s}
.hero-nav a:hover:after{transform:scaleX(1)}
.langs{display:flex;gap:4px;border:1px solid rgba(23,21,23,.08);padding:4px;border-radius:999px;background:#fff}
.lang{border:0;background:transparent;padding:8px 10px;color:#867f82;font-size:11px;border-radius:999px;cursor:pointer}
.lang.active{background:var(--plum);color:#fff;font-weight:800}

.hero{height:min(88vh,900px);min-height:690px;position:relative;overflow:hidden;background:#22191f;border-bottom-left-radius:34px;border-bottom-right-radius:34px;margin:0 18px}
.hero>img{position:absolute;inset:0;object-position:center center}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(31,17,27,.86) 0%, rgba(49,28,44,.56) 34%, rgba(49,28,44,.22) 62%, rgba(49,28,44,.08) 100%)}
.hero-copy{position:absolute;left:max(5vw,48px);bottom:11%;color:#fff;max-width:720px;z-index:2}
.eyebrow,.section-label{font-size:11px;letter-spacing:.24em;font-weight:800;text-transform:uppercase}
.hero h1,.intro h2,.gallery h2,.details h2,.split h2,.location h2,.contact h2,.signature h2{font-family:Georgia,"Times New Roman",serif;font-weight:400;line-height:1.02;margin:0}
.hero h1{font-size:clamp(48px,6vw,86px);margin:20px 0 22px;max-width:740px}
.hero-text{font-size:18px;color:rgba(255,255,255,.84);max-width:620px;margin:0 0 34px}
.hero-actions,.signature-actions{display:flex;flex-wrap:wrap;gap:14px}
.cta{display:inline-flex;align-items:center;justify-content:center;padding:15px 24px;border-radius:999px;font-size:12px;font-weight:780;transition:.2s;border:1px solid transparent}
.cta.primary{background:linear-gradient(135deg,var(--gold-soft),var(--gold));color:#2c1928;box-shadow:0 8px 22px rgba(217,182,126,.28)}
.cta.ghost{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.22);backdrop-filter:blur(10px)}
.cta.ghost.dark{color:var(--plum-2);border-color:rgba(79,50,72,.2);background:#fff}
.cta:hover{transform:translateY(-2px)}
.hero-badge{position:absolute;right:34px;bottom:34px;z-index:2;background:rgba(255,248,241,.9);color:var(--plum-2);padding:18px 20px;border-radius:22px;min-width:220px;box-shadow:var(--shadow);backdrop-filter:blur(10px)}
.hero-badge span{display:block;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#7e6778}
.hero-badge strong{display:block;margin-top:6px;font-family:Georgia,serif;font-size:26px;font-weight:400}

.intro{padding-top:110px;padding-bottom:90px}
.intro-head{display:grid;grid-template-columns:1.25fr .75fr;gap:48px;align-items:start}
.section-label{color:var(--plum);margin:0 0 20px}
.intro h2,.gallery h2,.details h2,.location h2,.signature h2{font-size:clamp(40px,4.8vw,68px)}
.intro-text,.location>p:not(.section-label),.split-copy p:not(.section-label),.contact-copy>p:not(.section-label),.signature-copy p:not(.section-label){color:var(--muted);font-size:18px;margin:0}
.stats{margin-top:54px;display:grid;gap:16px}
.cards-4{grid-template-columns:repeat(4,1fr)}
.stats>div{background:rgba(255,255,255,.78);border:1px solid rgba(79,50,72,.08);border-radius:24px;padding:24px 22px;box-shadow:var(--shadow)}
.stats strong{display:block;font-family:Georgia,serif;font-size:33px;font-weight:400;color:var(--plum-2)}
.stats span{display:block;color:var(--muted);font-size:12px;margin-top:6px}

.section-head{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:34px}
.gallery{padding-top:14px;padding-bottom:118px}
.gallery-lux{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:240px;gap:16px}
.gallery-lux figure{margin:0;overflow:hidden;border-radius:24px;background:#ddd;box-shadow:var(--shadow)}
.gallery-lux .g-wide{grid-column:span 2}
.gallery-lux .g-tall{grid-row:span 2}
.gallery-lux img{transition:transform .6s ease}
.gallery-lux figure:hover img{transform:scale(1.02)}

.details{padding-top:110px;padding-bottom:110px;border-top:1px solid var(--line)}
.details h2{max-width:900px;margin-bottom:38px}
.feature-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:54px}
.feature-cards article{background:#fff;border:1px solid rgba(79,50,72,.08);border-radius:24px;padding:24px;box-shadow:var(--shadow)}
.feature-cards span{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:999px;background:#f4e9dc;color:var(--plum);font-size:12px;font-weight:800;margin-bottom:16px}
.feature-cards h3{margin:0 0 10px;font-size:19px;font-family:Georgia,serif;font-weight:400}
.feature-cards p{margin:0;color:var(--muted);font-size:15px}
.details-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px}
.details ul{list-style:none;padding:0;margin:0;background:rgba(255,255,255,.7);border:1px solid rgba(79,50,72,.06);border-radius:24px;overflow:hidden;box-shadow:var(--shadow)}
.details li{padding:18px 22px;border-bottom:1px solid var(--line);font-size:15px}
.details li:last-child{border-bottom:0}

.editorial{display:grid;grid-template-columns:1.06fr .94fr;gap:22px;align-items:stretch;margin-bottom:22px}
.editorial.reverse{grid-template-columns:.94fr 1.06fr}
.split-image{min-height:620px;border-radius:30px;overflow:hidden;box-shadow:var(--shadow)}
.split-copy{padding:78px 6vw;border-radius:30px;display:flex;flex-direction:column;justify-content:center;box-shadow:var(--shadow)}
.plum-panel{background:linear-gradient(135deg,#3d2235 0%, #5d3b56 100%);color:#fff}
.cream-panel{background:linear-gradient(180deg,#fffaf4 0%, #f7efe8 100%)}
.soft{color:#e6d1dc}
.split-copy h2{font-size:clamp(38px,4.3vw,62px);margin-bottom:24px}
.plum-panel p:not(.section-label){color:rgba(255,255,255,.84)}

.mini-gallery{padding-top:34px;padding-bottom:110px;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.mini-card{display:grid;grid-template-columns:180px 1fr;align-items:stretch;background:#fff;border:1px solid rgba(79,50,72,.08);border-radius:24px;overflow:hidden;box-shadow:var(--shadow)}
.mini-card img{height:100%}
.mini-card div{padding:20px}
.mini-card strong{display:block;font-family:Georgia,serif;font-size:22px;font-weight:400;margin-bottom:8px}
.mini-card span{display:block;color:var(--muted);font-size:15px}

.location{padding-top:110px;padding-bottom:118px}
.location h2{max-width:880px}
.location>p:not(.section-label){max-width:820px;margin:30px 0}
.location-tags{display:flex;flex-wrap:wrap;gap:10px}
.location-tags span{padding:11px 15px;border-radius:999px;background:#fff;border:1px solid rgba(23,21,23,.08);font-size:11px;box-shadow:var(--shadow)}

.contact{display:grid;grid-template-columns:1fr 1fr;min-height:660px;background:linear-gradient(135deg,#23141f,#4b3146);color:#fff;overflow:hidden;border-radius:30px;margin:0 24px 34px}
.contact-image,.contact-image img{min-height:660px}
.contact-copy{padding:84px 8vw;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
.light{color:#e4cddb}
.contact h2{max-width:580px;font-size:clamp(40px,4.5vw,64px)}
.contact-copy>p:not(.section-label){color:rgba(255,255,255,.76);max-width:520px;margin:24px 0 36px}
.contact-actions{display:flex;flex-wrap:wrap;gap:12px}
.contact-btn{display:inline-block;background:#fff;color:#271d24;padding:14px 20px;border-radius:999px;font-size:12px;font-weight:760;box-shadow:0 10px 30px rgba(0,0,0,.14)}
.idealista-btn{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.72);box-shadow:none}
.idealista-btn:hover{background:#fff;color:#271d24}
.email{margin-top:18px;font-size:12px;color:#f0dfe7}

.signature{padding-top:28px;padding-bottom:90px}
.signature-card{display:grid;grid-template-columns:1.02fr .98fr;gap:24px;align-items:stretch;background:linear-gradient(180deg,#fffdfb 0%, #f6ede7 100%);border-radius:32px;overflow:hidden;box-shadow:var(--shadow);border:1px solid rgba(79,50,72,.07)}
.signature-image{min-height:420px;background:linear-gradient(135deg,#55344d,#261620)}
.signature-copy{padding:64px 5vw;display:flex;flex-direction:column;justify-content:center}
.signature h2{margin-bottom:22px}
.signature-copy p:not(.section-label){max-width:620px;margin-bottom:28px}

.footer{padding-top:18px;padding-bottom:58px;display:grid;grid-template-columns:1fr auto;gap:18px;align-items:end}
.footer strong{display:block;letter-spacing:.16em;font-size:12px}
.footer span,.footer small{color:var(--muted);font-size:11px}
.footer-links{display:flex;gap:20px;font-size:11px}
.footer small{grid-column:1/-1;border-top:1px solid var(--line);padding-top:18px}

@media(max-width:1120px){
  .intro-head,.feature-cards,.mini-gallery,.signature-card{grid-template-columns:1fr 1fr}
  .feature-cards article:last-child:nth-child(odd){grid-column:1/-1}
}
@media(max-width:980px){
  .backbar{padding:0 18px}
  .header{height:auto;min-height:74px;padding:14px 18px;gap:16px;align-items:flex-start;flex-direction:column}
  .header-right{width:100%;justify-content:space-between;gap:14px}
  .hero-nav{display:none}
  .hero{min-height:720px;margin:0}
  .hero-copy{left:24px;right:24px;bottom:10%}
  .hero-badge{right:24px;left:24px;bottom:24px;min-width:0}
  .intro-head,.cards-4,.gallery-lux,.feature-cards,.details-grid,.editorial,.editorial.reverse,.mini-gallery,.contact,.signature-card,.footer{grid-template-columns:1fr}
  .gallery-lux{grid-auto-rows:310px}
  .gallery-lux .g-wide,.gallery-lux .g-tall{grid-column:auto;grid-row:auto}
  .split-image,.contact-image,.signature-image{min-height:420px}
  .contact{margin:0 0 24px;border-radius:0}
}
@media(max-width:560px){
  .shell,.shell-wide{padding-left:18px;padding-right:18px}
  .brand-logo{width:50px;height:50px;border-radius:16px}
  .brand-sub{display:none}
  .hero h1{font-size:46px}
  .hero-text,.intro-text,.location>p:not(.section-label),.split-copy p:not(.section-label),.contact-copy>p:not(.section-label),.signature-copy p:not(.section-label){font-size:16px}
  .intro{padding-top:82px;padding-bottom:72px}
  .gallery,.details,.location{padding-top:82px;padding-bottom:82px}
  .stats{margin-top:36px}
  .stats strong{font-size:28px}
  .feature-cards article,.mini-card div,.split-copy,.signature-copy,.contact-copy{padding-left:22px;padding-right:22px}
  .mini-card{grid-template-columns:1fr}
  .mini-card img{height:240px}
}
