:root{--navy:#062f4f;--blue:#07577b;--yellow:#f2c400;--yellow-dark:#dca900;--soft:#f5f7f8;--ink:#123c56;--muted:#637988;--line:#dfe7eb}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--soft);color:var(--ink);font-family:Arial,Helvetica,sans-serif}header{height:84px;background:#fff;display:flex;align-items:center;gap:20px;padding:0 clamp(22px,8vw,120px);position:relative;z-index:3}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--navy);font-weight:800;letter-spacing:.07em;font-size:1.06rem}.brand img{width:53px;height:53px;object-fit:contain}.brand small{display:block;font-size:.51rem;letter-spacing:.14em;margin-top:4px;color:#77929f}.credential{font-size:.59rem;line-height:1.45;letter-spacing:.06em;color:#6e8794;border-left:1px solid var(--line);padding-left:18px;white-space:nowrap}.credential b{color:var(--navy);font-size:.68rem}nav{display:flex;gap:30px;margin-left:auto}nav a{font-size:.9rem;text-decoration:none;color:#1f5872;font-weight:600}.phone-header{color:var(--navy);text-decoration:none;font-size:.9rem;font-weight:800;white-space:nowrap;border-left:1px solid var(--line);padding-left:18px}.phone-header span{display:block;color:var(--muted);font-size:.6rem;line-height:1;margin-bottom:4px;letter-spacing:.08em;text-transform:uppercase}.top-cta,.gold{background:var(--yellow);color:var(--navy);text-decoration:none;font-size:.87rem;font-weight:900;padding:13px 18px;border-radius:5px;white-space:nowrap}.top-cta:hover,.gold:hover,.finder button:hover{background:var(--yellow-dark)}.nav-toggle{display:none}.hero{min-height:380px;background:linear-gradient(90deg,#032c49ee 0%,#07577bd9 48%,#07577b18 76%),url('images/villa-castelldefels.jpg') center 49%/cover;color:#fff;overflow:hidden;position:relative}.hero-inner{position:relative;z-index:1;max-width:1440px;margin:auto;padding:62px clamp(22px,8vw,120px)}.hero h1{font-size:clamp(2.25rem,4.1vw,3.4rem);line-height:1.08;font-weight:800;margin:0 0 9px}.hero p{font-size:1.08rem;margin:0 0 35px;color:#fff}.hero .eyebrow{font-size:.67rem;letter-spacing:.14em;font-weight:800;margin:0 0 13px;color:#fff274}.finder{background:#fff;padding:10px;display:grid;grid-template-columns:1.5fr 1.28fr 1.08fr auto;max-width:970px;border-radius:9px;box-shadow:0 12px 28px #00364a32}.finder label{display:flex;flex-direction:column;gap:5px;padding:8px 16px;border-right:1px solid var(--line);color:#7a929e;font-size:.62rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase}.finder input,.finder select{border:0;outline:0;font-size:.9rem;color:#266078;background:#fff;padding:3px 0}.finder button{border:0;background:var(--yellow);color:var(--navy);padding:0 27px;font-size:.88rem;font-weight:900;border-radius:5px;cursor:pointer}.zones{display:flex;gap:8px;margin-top:18px;flex-wrap:wrap}.zones a{color:#fff;text-decoration:none;border:1px solid #ffffff80;font-size:.77rem;padding:6px 13px;border-radius:18px}.catalog{max-width:1440px;margin:auto;padding:42px clamp(22px,8vw,120px) 58px}.section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:25px;gap:18px}.section-head h2,.valuation h2,.about h2{font-size:clamp(1.75rem,3vw,2.4rem);font-weight:800;letter-spacing:-.025em;line-height:1.1;margin:0 0 7px;color:var(--navy)}.section-head p{margin:0;color:var(--muted)}.all{color:var(--blue);text-decoration:none;font-size:.86rem;font-weight:800}.filter-note{background:#eaf5f7;border-left:3px solid var(--yellow);padding:12px 14px;margin:0 0 20px;color:#537083;font-size:.88rem}.filter-note a{color:var(--blue);font-weight:700}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.card{background:#fff;border-radius:9px;overflow:hidden;box-shadow:0 3px 11px #0b4b6510;border:1px solid #e5eef1;transition:.2s}.card:hover{transform:translateY(-3px);box-shadow:0 12px 24px #0b4b6520}.visual,.detail-visual{display:block;height:205px;position:relative;background:#07577b center/cover no-repeat;overflow:hidden;text-decoration:none}.visual:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#001f3838,transparent 44%,#001f3866)}.visual span,.detail-visual span{position:absolute;z-index:1;top:14px;left:14px;background:#fff;color:var(--blue);padding:5px 8px;border-radius:3px;font-size:.6rem;font-weight:800;letter-spacing:.06em}.visual em{position:absolute;z-index:1;right:14px;bottom:13px;color:#fff;font-style:normal;font-size:.61rem;font-weight:700;text-shadow:0 1px 4px #002a40}.card-body{padding:17px 19px 18px}.card-body>strong{font-size:1.45rem;color:var(--navy)}.card h3{font-size:1.08rem;line-height:1.26;margin:8px 0 7px;font-weight:800;min-height:42px}.card h3 a{color:var(--navy);text-decoration:none}.meta,.facts{font-size:.81rem;color:var(--muted);margin:0 0 6px}.facts{color:#426f82;font-weight:600;min-height:18px}.card-foot{border-top:1px solid var(--line);margin-top:14px;padding-top:12px;display:flex;justify-content:space-between;gap:8px;align-items:center}.card-foot small{font-size:.61rem;color:#8798a2}.card-foot a{font-size:.78rem;color:var(--blue);text-decoration:none;font-weight:800}.empty{background:#fff;padding:30px;border:1px solid var(--line)}.valuation{background:linear-gradient(90deg,var(--navy),var(--blue));color:#fff;padding:32px max(22px,calc((100vw - 1200px)/2));display:flex;align-items:center;justify-content:space-between;gap:40px}.valuation h2{color:#fff;font-size:1.7rem;margin-bottom:5px}.valuation p{color:#e3f4f6;margin:0}.about{max-width:900px;margin:auto;text-align:center;padding:72px 22px}.kicker{font-size:.68rem;letter-spacing:.18em;font-weight:700;margin:0 0 14px;color:#d6e6ed}.kicker.blue{color:#c79e00}.about p:last-child{max-width:650px;margin:auto;line-height:1.7;color:var(--muted)}footer{display:flex;align-items:center;gap:27px;flex-wrap:wrap;background:#fff;padding:36px clamp(22px,8vw,120px)}footer p{font-size:.84rem;line-height:1.7;color:var(--muted);margin:0}footer p a{color:var(--navy);font-weight:700}.whatsapp{margin-left:auto;text-decoration:none;color:#fff;background:#238c5b;border-radius:4px;padding:11px 14px;font-size:.85rem;font-weight:700}.detail{max-width:1110px;margin:auto;padding:32px 22px 75px}.crumb{font-size:.8rem;color:var(--muted);margin:0 0 21px}.crumb a{color:var(--blue)}.detail-visual{height:390px;border-radius:8px 8px 0 0}.detail-visual em{position:absolute;z-index:1;right:20px;bottom:20px;color:#fff;font-size:.8rem;font-style:normal}.detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:65px;background:#fff;padding:45px 52px}.detail h1{color:var(--navy);font-size:clamp(2.2rem,4vw,3.5rem);font-weight:800;line-height:1.08;margin:0 0 9px}.lead{color:var(--muted);margin:0 0 25px}.detail h2{font-size:1.8rem;color:var(--blue);margin:0 0 27px}.specs{display:flex;gap:1px;background:var(--line);margin-bottom:32px}.specs div{flex:1;padding:15px;background:#f8fafb}.specs b{display:block;color:var(--navy);font-size:1.05rem}.specs span{font-size:.73rem;color:var(--muted);display:block;margin-top:4px}.detail h3{font-size:1.45rem;font-weight:800;color:var(--navy)}.detail li,.detail article>p{color:#5b7281;line-height:1.65}.disclaimer{font-size:.8rem;margin-top:30px}.detail aside{align-self:start;background:var(--navy);color:#fff;padding:26px}.detail aside p{font-size:1.4rem;font-weight:800;line-height:1.2;margin:0 0 22px}.detail aside a{display:block;text-align:center;margin-top:10px}.outline{color:#fff;border:1px solid #ffffff61;text-decoration:none;padding:12px;font-size:.83rem;font-weight:700}.source{color:#cfdddf;text-decoration:none;font-size:.78rem;margin-top:22px!important}@media(max-width:1120px){.phone-header{display:none}}@media(max-width:980px){.credential{display:none}}@media(max-width:820px){header{height:72px;padding:0 20px}.brand img{width:42px;height:42px}.brand{font-size:.9rem}nav{display:none}.top-cta{margin-left:auto;font-size:.75rem;padding:10px}.hero-inner{padding-top:48px}.finder{grid-template-columns:1fr;max-width:520px}.finder label{border:0;border-bottom:1px solid var(--line)}.finder button{padding:15px;margin:2px}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.valuation{align-items:flex-start;flex-direction:column}.detail-layout{padding:30px;grid-template-columns:1fr;gap:25px}}@media(max-width:520px){.top-cta{display:none}.hero{min-height:420px;background:linear-gradient(145deg,#043c5ae6,#07577bc9),url('images/villa-castelldefels.jpg') center/cover}.hero-inner{padding-top:54px}.hero h1{font-size:2.28rem}.hero p{font-size:1rem;margin-bottom:26px}.grid{grid-template-columns:1fr}.section-head{align-items:flex-start;flex-direction:column}.catalog{padding-top:31px}.detail-visual{height:240px}.detail-layout{padding:24px 18px}.specs{flex-wrap:wrap}.specs div{min-width:45%}.visual{height:210px}}
.photo-gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:3px;background:#fff}.photo-gallery a{height:122px;overflow:hidden}.photo-gallery img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .2s}.photo-gallery a:hover img{transform:scale(1.04)}.attributes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line);margin:0 0 28px}.attributes div{padding:13px 15px;background:#f8fafb}.attributes dt{font-size:.72rem;color:var(--muted);margin-bottom:3px}.attributes dd{margin:0;font-weight:700;color:var(--navy);font-size:.9rem}@media(max-width:520px){.photo-gallery{grid-template-columns:repeat(2,1fr)}.photo-gallery a{height:110px}.attributes{grid-template-columns:1fr}}
.visual img,.detail-visual img{width:100%;height:100%;object-fit:cover;display:block}.gallery-wrap{background:#fff;padding:18px 22px 20px}.gallery-head{display:flex;justify-content:space-between;align-items:center;gap:15px}.gallery-head h2{font-size:1.1rem;color:var(--navy);margin:0}.photo-gallery{display:flex;overflow-x:auto;scroll-behavior:smooth;gap:8px;padding:4px 0 10px;scroll-snap-type:x mandatory}.photo-gallery a{height:126px;min-width:180px;scroll-snap-align:start;border-radius:4px}.gallery-control{border:1px solid var(--line);background:#fff;color:var(--navy);font-size:1.15rem;width:34px;height:34px;border-radius:50%;cursor:pointer}.gallery-control:hover{background:var(--yellow)}.location{border-top:1px solid var(--line);margin-top:34px;padding-top:20px}.location h3{margin-bottom:6px}.location p{margin-top:0}.location iframe{width:100%;height:310px;border:0;display:block;background:#e9edef}.legal-links{display:flex;gap:14px;flex-wrap:wrap;margin-left:auto!important}.legal-links a{font-size:.75rem!important;color:var(--muted)!important;text-decoration:underline}.cookie-banner{position:fixed;z-index:20;left:18px;bottom:18px;max-width:450px;background:#fff;padding:16px 17px;box-shadow:0 10px 35px #001d3080;border-left:4px solid var(--yellow);display:flex;align-items:center;gap:14px}.cookie-banner p{margin:0;color:var(--muted);font-size:.78rem;line-height:1.45}.cookie-banner a{color:var(--blue)}.cookie-banner button{border:0;background:var(--yellow);color:var(--navy);font-weight:800;padding:10px 13px;cursor:pointer}.legal-page{max-width:900px;margin:0 auto;padding:60px 24px 90px}.legal-page h1{font-size:2.4rem;color:var(--navy)}.legal-page h2{margin-top:34px;color:var(--navy)}.legal-page p,.legal-page li{color:#496777;line-height:1.7}@media(max-width:520px){.gallery-wrap{padding:14px}.photo-gallery a{height:110px;min-width:155px}.location iframe{height:250px}.cookie-banner{right:14px;left:14px}.legal-links{margin-left:0!important}}
.language-switch{display:flex;gap:4px;margin-left:8px}.language-switch a{display:inline-flex;align-items:center;gap:4px;font-size:.66rem;padding:5px 6px;color:var(--muted);text-decoration:none;border:1px solid var(--line);border-radius:3px;line-height:1}.language-switch .flag{width:17px;height:12px;object-fit:cover;border-radius:1px;box-shadow:0 0 0 1px #00000014}.language-switch a.active{background:var(--navy);border-color:var(--navy);color:#fff}
.cookie-reopen{position:fixed;right:18px;bottom:18px;z-index:1099;border:0;border-radius:24px;background:var(--navy);color:#fff;font-size:.76rem;font-weight:800;padding:10px 14px;box-shadow:0 4px 14px #001d3040;cursor:pointer}.cookie-reopen:hover{background:var(--blue)}
.contact-modal{position:fixed;inset:0;z-index:1200;background:#061823c9;display:grid;place-items:center;padding:20px}.contact-modal form{position:relative;width:min(100%,520px);max-height:90vh;overflow:auto;background:#fff;border-radius:9px;padding:30px;color:var(--navy)}.contact-modal h2{margin:0 0 8px}.contact-modal p{color:var(--muted);font-size:.88rem}.contact-modal label{display:block;margin:16px 0 0;font-size:.78rem;font-weight:800;color:var(--navy)}.contact-modal input:not([type=checkbox]),.contact-modal textarea{display:block;width:100%;border:1px solid var(--line);border-radius:4px;margin-top:6px;padding:11px;font:inherit;color:var(--ink)}.contact-modal textarea{min-height:112px;resize:vertical}.contact-modal .privacy-check{font-weight:400;line-height:1.4}.contact-modal .gold{border:0;margin-top:20px;cursor:pointer}.contact-close{position:absolute;right:14px;top:12px;border:0;background:transparent;color:var(--navy);font-size:1.8rem;cursor:pointer}
[hidden]{display:none!important}.gallery-help{margin:-8px 0 13px;color:var(--muted);font-size:.84rem}.no-scroll{overflow:hidden}.lightbox{position:fixed;inset:0;z-index:1000;background:#061823f2;display:grid;grid-template-columns:76px minmax(0,1fr) 76px;align-items:center;padding:28px}.lightbox figure{margin:0;display:grid;justify-items:center;gap:12px;max-height:100%}.lightbox figure img{max-height:82vh;max-width:100%;object-fit:contain;border-radius:5px}.lightbox figcaption{color:#fff;font-weight:700}.lightbox button{border:0;background:#fff;color:var(--navy);width:48px;height:48px;border-radius:50%;font-size:2rem;cursor:pointer}.lightbox-close{position:absolute;top:18px;right:18px}.lightbox-prev,.lightbox-next{justify-self:center}@media(max-width:600px){.lightbox{padding:16px;grid-template-columns:46px minmax(0,1fr) 46px}.lightbox button{width:38px;height:38px;font-size:1.6rem}.lightbox figure img{max-height:76vh}.lightbox-close{top:12px;right:12px}}
.visual .special-badge{position:absolute;z-index:1;top:45px;left:14px;background:#b42318;color:#fff;padding:6px 8px;border-radius:3px;font-size:.58rem;font-weight:800;letter-spacing:.05em}.special-card-text{margin:0 0 10px;color:#9d2118;font-size:.76rem;font-weight:800;line-height:1.4;text-transform:uppercase}.card-special{border:2px solid #e4b4ae}.special-notice{margin:18px 0 24px;padding:16px 18px;border-left:5px solid #b42318;background:#fff0ef;color:#68130e;border-radius:4px}.special-notice strong{font-size:1rem;text-transform:uppercase;letter-spacing:.04em}.special-notice p{margin:.4rem 0;font-weight:750}.special-notice small{display:block;line-height:1.45}
.hero{background-image:linear-gradient(90deg,#032c49ee 0%,#07577bd9 48%,#07577b18 76%),image-set(url('images/villa-castelldefels.avif') type('image/avif'),url('images/villa-castelldefels.webp') type('image/webp'),url('images/villa-castelldefels.jpg') type('image/jpeg'))}
@media(max-width:520px){.hero{background-image:linear-gradient(145deg,#043c5ae6,#07577bc9),image-set(url('images/villa-castelldefels.avif') type('image/avif'),url('images/villa-castelldefels.webp') type('image/webp'),url('images/villa-castelldefels.jpg') type('image/jpeg'))}}
.local-guide{background:#eef4f6;border-top:1px solid #dbe7eb;border-bottom:1px solid #dbe7eb}.local-guide-inner{max-width:1100px;margin:0 auto;padding:58px 22px 54px}.local-guide-intro{max-width:720px;text-align:center;margin:0 auto 30px}.local-guide .kicker{margin-bottom:11px}.local-guide h2{margin:0;color:var(--navy);font-size:clamp(1.55rem,2.6vw,2.1rem);line-height:1.18;letter-spacing:-.02em}.local-guide-intro>p:last-child{margin:13px auto 0;color:var(--muted);line-height:1.6}.faq{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.faq details{background:#fff;border:1px solid #d9e5e9;border-radius:7px;padding:17px 18px;box-shadow:0 2px 8px #0b4b6509}.faq summary{list-style:none;cursor:pointer;color:var(--navy);font-size:.91rem;font-weight:800;line-height:1.35;padding-right:20px;position:relative}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:'+';position:absolute;right:0;top:-2px;color:var(--blue);font-size:1.15rem;font-weight:500}.faq details[open] summary:after{content:'−'}.faq p{margin:12px 0 0;color:var(--muted);font-size:.84rem;line-height:1.55}.town-links{margin-top:34px;text-align:center}.town-links h3{margin:0 0 13px;color:var(--navy);font-size:.9rem;letter-spacing:.02em}.town-links-list{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.town-links a{display:inline-flex;align-items:center;min-height:32px;padding:6px 11px;border:1px solid #cddce2;border-radius:18px;background:#fff;color:var(--blue);font-size:.78rem;font-weight:700;text-decoration:none;transition:.16s}.town-links a:hover{background:var(--navy);border-color:var(--navy);color:#fff}@media(max-width:760px){.faq{grid-template-columns:1fr}.local-guide-inner{padding:42px 18px}.local-guide-intro{margin-bottom:22px}.town-links{margin-top:27px}}
.partners{background:#fff;border-top:1px solid var(--line)}.partners-inner{max-width:1200px;margin:auto;padding:56px 22px;display:grid;grid-template-columns:minmax(0,1fr) 1.45fr;gap:56px;align-items:center}.partners h2{margin:0;color:var(--navy);font-size:clamp(1.55rem,2.6vw,2.15rem);line-height:1.15;letter-spacing:-.025em}.partners-copy>p:last-child{margin:13px 0 0;max-width:515px;color:var(--muted);line-height:1.6}.partner-logos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.partner-logo{height:82px;display:flex;align-items:center;justify-content:center;border:1px solid #dce6ea;border-radius:7px;background:#fbfcfc;color:#163d54;font-weight:850;letter-spacing:.02em;font-size:1.13rem;box-shadow:0 2px 8px #0b4b6508}.partner-logo.hipoges{color:#e56538;letter-spacing:.07em}.partner-logo.sareb{color:#00a28a;font-size:1.55rem;font-weight:700;letter-spacing:-.07em}.partner-logo.servihabitat{color:#007e91;font-size:1.15rem;font-weight:700;letter-spacing:-.05em}.partner-logo.copernicus{color:#204c69;font-size:1rem;letter-spacing:.09em}.partner-logo.copernicus:before{content:'◐';color:#c89b22;font-size:1.55rem;margin-right:7px;line-height:1}@media(max-width:760px){.partners-inner{padding:36px 18px 40px;grid-template-columns:1fr;gap:24px}.partners-copy{text-align:center}.partners-copy>p:last-child{margin-left:auto;margin-right:auto}.partner-logos{gap:10px}.partner-logo{height:68px;font-size:.94rem}.partner-logo.sareb{font-size:1.28rem}.partner-logo.servihabitat{font-size:.98rem}.partner-logo.copernicus{font-size:.83rem}.partner-logo.copernicus:before{font-size:1.25rem;margin-right:5px}}
