/* ═══════════════════════════════════════════════════════════
   Pintocalafell Pintores Calafell — style.css
   Verde oscuro #1B4332 · Dorado #D4A017 · Moderno con carácter
   ═══════════════════════════════════════════════════════════ */
:root {
  --primary:#1B4332; --primary-dark:#102A20; --primary-light:#2D6A4F; --primary-soft:#E8F0EC;
  --accent:#D4A017; --accent-dark:#A87C10; --accent-soft:#FDF6E3;
  --text:#1C2321; --text-muted:#5A6560; --text-invert:#FFFFFF;
  --bg:#FFFFFF; --bg-light:#F6F8F7; --bg-dark:#102A20; --border:#DDE4E0;
  --radius:14px; --radius-sm:8px; --radius-lg:22px;
  --shadow:0 2px 8px rgba(16,42,32,.06); --shadow-md:0 8px 24px rgba(16,42,32,.10); --shadow-lg:0 18px 44px rgba(16,42,32,.16);
  --maxw:1180px; --gap:24px;
  --font:'Segoe UI', system-ui, -apple-system, 'Helvetica Neue', Arial, sans-serif;
}
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:96px;}
body{margin:0;font-family:var(--font);font-size:17px;line-height:1.65;color:var(--text);background:var(--bg);overflow-x:hidden;}
img{max-width:100%;height:auto;display:block;}
a{color:var(--primary);text-decoration:none;}
a:hover{color:var(--accent-dark);}
h1,h2,h3,h4{line-height:1.22;margin:0 0 .6em;font-weight:800;letter-spacing:-.02em;color:var(--primary-dark);}
h1{font-size:clamp(2rem,4.6vw,3.15rem);}
h2{font-size:clamp(1.6rem,3.1vw,2.35rem);}
h3{font-size:clamp(1.12rem,1.9vw,1.35rem);}
p{margin:0 0 1.05em;}
ul{margin:0 0 1.05em;padding-left:1.15em;}
li{margin-bottom:.45em;}
address{font-style:normal;}
.container{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 22px;}
section{padding:74px 0;}
.skip-link{position:absolute;left:-9999px;top:0;z-index:999;background:var(--primary);color:#fff;padding:12px 20px;border-radius:0 0 var(--radius-sm) 0;}
.skip-link:focus{left:0;color:#fff;}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px;}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 26px;border-radius:100px;border:2px solid transparent;font-size:1rem;font-weight:700;cursor:pointer;text-align:center;transition:transform .15s ease,background .2s ease,box-shadow .2s ease,color .2s ease;line-height:1.2;}
.btn:hover{transform:translateY(-2px);}
.btn-primary{background:var(--accent);color:var(--primary-dark);box-shadow:0 4px 14px rgba(212,160,23,.32);}
.btn-primary:hover{background:#E5AF20;color:var(--primary-dark);box-shadow:0 8px 22px rgba(212,160,23,.42);}
.btn-secondary{background:transparent;color:var(--primary);border-color:var(--primary);}
.btn-secondary:hover{background:var(--primary);color:#fff;}
.btn-sm{padding:10px 20px;font-size:.93rem;}
.btn-block{display:flex;width:100%;}
.hero .btn-secondary,.process .btn-secondary,.cta-final .btn-secondary,.service-cta .btn-secondary,.zones .btn-secondary,.bg-dark .btn-secondary{color:#fff;border-color:rgba(255,255,255,.55);}
.hero .btn-secondary:hover,.process .btn-secondary:hover,.cta-final .btn-secondary:hover,.service-cta .btn-secondary:hover,.zones .btn-secondary:hover,.bg-dark .btn-secondary:hover{background:#fff;color:var(--primary-dark);border-color:#fff;}
.header-top{background:var(--primary-dark);color:#E7EFE9;font-size:.86rem;}
.header-top-inner{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:40px;flex-wrap:wrap;}
.header-top a{color:var(--accent);font-weight:700;}
.header-top a:hover{color:#F0C34B;}
.site-header{position:sticky;top:0;z-index:200;background:#fff;box-shadow:var(--shadow);}
.header-main{display:flex;align-items:center;gap:20px;min-height:76px;}
.logo{flex:0 0 auto;}
.logo img{width:192px;height:48px;}
.nav-desktop{display:flex;align-items:center;gap:4px;margin-left:auto;}
.nav-desktop>a,.nav-dropdown-toggle{display:inline-block;padding:10px 14px;border-radius:var(--radius-sm);font-size:.97rem;font-weight:600;color:var(--primary-dark);background:none;border:0;font-family:inherit;cursor:pointer;}
.nav-desktop>a:hover,.nav-dropdown-toggle:hover{background:var(--primary-soft);color:var(--primary);}
.nav-desktop a[aria-current="page"]{color:var(--accent-dark);box-shadow:inset 0 -3px 0 var(--accent);}
.nav-dropdown{position:relative;}
.nav-dropdown-menu{position:absolute;top:calc(100% + 8px);left:0;min-width:260px;background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:8px;display:none;z-index:210;}
.nav-dropdown-menu a{display:block;padding:10px 14px;border-radius:var(--radius-sm);font-size:.95rem;font-weight:600;color:var(--text);}
.nav-dropdown-menu a:hover{background:var(--primary-soft);color:var(--primary);}
.nav-dropdown.is-open .nav-dropdown-menu{display:block;}
.nav-dropdown.is-open .chevron{transform:rotate(180deg);}
.chevron{display:inline-block;transition:transform .2s ease;font-size:.8em;}
.header-cta{flex:0 0 auto;}
.burger{display:none;width:46px;height:42px;background:none;border:0;cursor:pointer;padding:9px 8px;}
.burger span{display:block;height:3px;background:var(--primary-dark);border-radius:3px;margin:4px 0;transition:transform .25s ease,opacity .2s ease;}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0;}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
.mobile-nav{display:none;flex-direction:column;padding:10px 22px 22px;background:#fff;border-top:1px solid var(--border);}
.mobile-nav.is-open{display:flex;}
.mobile-nav>a,.mobile-dropdown-toggle{padding:13px 4px;font-size:1.02rem;font-weight:600;color:var(--primary-dark);border-bottom:1px solid var(--border);background:none;border-left:0;border-right:0;border-top:0;font-family:inherit;text-align:left;cursor:pointer;width:100%;}
.mobile-dropdown-menu{display:none;padding:6px 0 6px 14px;border-left:3px solid var(--accent);margin:6px 0 6px 4px;}
.mobile-dropdown-menu a{display:block;padding:9px 4px;font-size:.96rem;font-weight:600;color:var(--text);}
.mobile-dropdown.is-open .mobile-dropdown-menu{display:block;}
.mobile-dropdown.is-open .chevron{transform:rotate(180deg);}
.mobile-cta{margin-top:16px;}
.hero{background:var(--primary-dark);color:#fff;padding:0;overflow:hidden;}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:48px;}
.hero-content{padding:72px 0;}
.hero h1{color:#fff;margin-bottom:.45em;}
.hero h1 .accent{color:var(--accent);}
.hero-sub{font-size:1.13rem;color:#D5E3DA;max-width:55ch;margin-bottom:1.6em;}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:30px;}
.hero-badges{display:flex;gap:10px;flex-wrap:wrap;}
.hero-badge{display:inline-flex;align-items:center;gap:7px;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.2);padding:8px 15px;border-radius:100px;font-size:.87rem;font-weight:600;color:#fff;}
.hero-badge .dot{width:7px;height:7px;border-radius:50%;background:var(--accent);flex:0 0 auto;}
.hero-media{position:relative;align-self:stretch;min-height:420px;}
.hero-media img{width:100%;height:100%;object-fit:cover;}
.section-label{display:inline-block;font-size:.78rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-dark);margin-bottom:12px;}
.bg-dark .section-label,.cta-final .section-label,.process .section-label,.zones .section-label{color:#fff;}
.section-head{max-width:760px;margin:0 auto 46px;text-align:center;}
.section-head p{color:var(--text-muted);font-size:1.06rem;}
.services{background:var(--bg-light);}
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap);}
.service-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;display:flex;flex-direction:column;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;}
.service-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-md);border-color:var(--accent);}
.service-card-img{aspect-ratio:3 / 2;overflow:hidden;background:var(--primary-soft);}
.service-card-img img{width:100%;height:100%;object-fit:cover;}
.service-card-body{padding:22px 22px 24px;display:flex;flex-direction:column;flex:1;}
.service-card-body h3{margin-bottom:.5em;}
.service-card-body p{color:var(--text-muted);font-size:.97rem;flex:1;}
.service-card-link{font-weight:700;color:var(--accent-dark);margin-top:6px;display:inline-flex;align-items:center;gap:6px;}
.service-card-link:hover{color:var(--primary);gap:10px;}
.features-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--gap);}
.feature-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:26px 22px;}
.feature-icon{width:48px;height:48px;border-radius:12px;background:var(--primary-soft);display:flex;align-items:center;justify-content:center;margin-bottom:16px;font-size:1.35rem;color:var(--primary);}
.feature-card h3{font-size:1.08rem;}
.feature-card p{color:var(--text-muted);font-size:.95rem;margin:0;}
.process{background:var(--primary-dark);color:#fff;}
.process h2,.process h3{color:#fff;}
.process .section-head p{color:#C9DBD1;}
.process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--gap);}
.process-step{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.14);border-radius:var(--radius);padding:26px 22px;}
.process-num{width:42px;height:42px;border-radius:50%;background:var(--accent);color:var(--primary-dark);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1.05rem;margin-bottom:15px;}
.process-step p{color:#C9DBD1;font-size:.95rem;margin:0;}
.content-block{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;}
.content-block.reverse .content-block-media{order:-1;}
.content-block-media img{border-radius:var(--radius-lg);box-shadow:var(--shadow-md);}
.content-block + .content-block{margin-top:64px;}
.check-list{list-style:none;padding:0;}
.check-list li{position:relative;padding-left:30px;margin-bottom:.6em;}
.check-list li::before{content:"✓";position:absolute;left:0;top:0;color:var(--accent-dark);font-weight:900;}
.cost-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap);}
.cost-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:26px 22px;text-align:center;}
.cost-level{display:inline-block;padding:6px 16px;border-radius:100px;font-size:.82rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;margin-bottom:12px;}
.cost-level.eco{background:var(--primary-soft);color:var(--primary);}
.cost-level.mod{background:var(--accent-soft);color:var(--accent-dark);}
.cost-level.pre{background:var(--primary);color:#fff;}
.cost-card p{color:var(--text-muted);font-size:.95rem;margin:0;}
.reviews{background:var(--bg-light);}
.reviews-summary{text-align:center;margin-bottom:40px;}
.reviews-score{font-size:2.6rem;font-weight:800;color:var(--primary);line-height:1;}
.stars{color:var(--accent);font-size:1.2rem;letter-spacing:2px;}
.reviews-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap);}
.review-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:24px;}
.review-card .stars{margin-bottom:10px;display:block;}
.review-text{font-size:.97rem;color:var(--text);margin-bottom:14px;}
.review-author{font-weight:700;font-size:.93rem;color:var(--primary-dark);}
.review-date{font-size:.85rem;color:var(--text-muted);}
.zones{background:var(--primary);color:#fff;}
.zones h2,.zones h3{color:#fff;}
.zones .section-head p{color:#C9DBD1;}
.zones-columns{display:grid;grid-template-columns:1fr 1fr;gap:40px;}
.zones-list{display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:0;}
.zones-list li{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);padding:8px 16px;border-radius:100px;font-size:.92rem;font-weight:600;margin:0;}
.faq-list{max-width:860px;margin:0 auto;}
.faq-item{border:1px solid var(--border);border-radius:var(--radius);margin-bottom:12px;background:#fff;overflow:hidden;}
.faq-question{width:100%;text-align:left;background:none;border:0;cursor:pointer;padding:20px 54px 20px 22px;font-size:1.03rem;font-weight:700;color:var(--primary-dark);font-family:inherit;position:relative;line-height:1.4;}
.faq-question::after{content:"+";position:absolute;right:22px;top:50%;transform:translateY(-50%);font-size:1.5rem;font-weight:400;color:var(--accent-dark);transition:transform .2s ease;}
.faq-item.is-open .faq-question::after{content:"−";}
.faq-answer{display:none;padding:0 22px 20px;color:var(--text-muted);font-size:.98rem;}
.faq-item.is-open .faq-answer{display:block;}
.cta-final{background:var(--primary-dark);color:#fff;text-align:center;}
.cta-final h2{color:#fff;}
.cta-final p{color:#C9DBD1;max-width:640px;margin:0 auto 28px;font-size:1.08rem;}
.cta-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}
.breadcrumb{background:var(--bg-light);padding:14px 0;font-size:.89rem;border-bottom:1px solid var(--border);}
.breadcrumb ol{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;}
.breadcrumb li{margin:0;color:var(--text-muted);}
.breadcrumb li + li::before{content:"›";margin-right:8px;color:var(--text-muted);}
.related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.related-card{display:block;background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:20px;font-weight:700;color:var(--primary-dark);transition:border-color .2s ease,transform .2s ease;}
.related-card:hover{border-color:var(--accent);transform:translateY(-3px);color:var(--accent-dark);}
.related-card span{display:block;font-weight:500;font-size:.9rem;color:var(--text-muted);margin-top:5px;}
.contact-section{background:var(--bg-light);}
.contact-header{text-align:center;max-width:720px;margin:0 auto 44px;}
.contact-header p{color:var(--text-muted);font-size:1.05rem;}
.contact-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:34px;align-items:start;}
.contact-form-wrap{background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);padding:32px;box-shadow:var(--shadow);}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.form-group{margin-bottom:18px;}
.form-group label{display:block;font-weight:700;font-size:.93rem;margin-bottom:7px;color:var(--primary-dark);}
.form-group input,.form-group textarea,.form-group select{width:100%;padding:13px 15px;border:1.5px solid var(--border);border-radius:var(--radius-sm);font-family:inherit;font-size:1rem;color:var(--text);background:#fff;transition:border-color .18s ease,box-shadow .18s ease;}
.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(27,67,50,.12);}
.form-group textarea{resize:vertical;min-height:110px;}
.form-group input.is-error,.form-group textarea.is-error,.form-group select.is-error{border-color:#C0392B;}
.hp-field{position:absolute !important;left:-9999px !important;top:-9999px !important;width:1px;height:1px;opacity:0;}
.captcha-group{background:var(--accent-soft);border:1px solid #F0DFAE;border-radius:var(--radius-sm);padding:16px;}
.captcha-group label{margin-bottom:8px;}
.form-checkbox{margin-top:4px;}
.checkbox-label{display:flex;gap:12px;align-items:flex-start;cursor:pointer;font-weight:400;}
.checkbox-label input{position:absolute;opacity:0;width:1px;height:1px;}
.checkbox-custom{flex:0 0 auto;width:22px;height:22px;border:2px solid var(--border);border-radius:6px;margin-top:2px;background:#fff;position:relative;transition:all .18s ease;}
.checkbox-label input:checked + .checkbox-custom{background:var(--primary);border-color:var(--primary);}
.checkbox-label input:checked + .checkbox-custom::after{content:"";position:absolute;left:6px;top:2px;width:6px;height:11px;border:solid #fff;border-width:0 2.5px 2.5px 0;transform:rotate(45deg);}
.checkbox-label input:focus-visible + .checkbox-custom{outline:3px solid var(--accent);outline-offset:2px;}
.checkbox-text{font-size:.9rem;color:var(--text-muted);line-height:1.5;}
.checkbox-text a{color:var(--primary);text-decoration:underline;font-weight:600;}
.btn-submit{width:100%;margin-top:8px;}
.form-message{margin-top:16px;padding:14px 16px;border-radius:var(--radius-sm);font-size:.95rem;font-weight:600;}
.form-message.ok{background:var(--primary-soft);color:var(--primary);border:1px solid var(--primary-light);}
.form-message.err{background:#FDECEA;color:#A93226;border:1px solid #F5B7B1;}
.contact-info-wrap{display:flex;flex-direction:column;gap:16px;}
.contact-info-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:24px;}
.contact-info-card h3{font-size:1.05rem;margin-bottom:.5em;}
.contact-phone{font-size:1.6rem;font-weight:800;color:var(--primary);display:block;letter-spacing:-.01em;}
.contact-phone:hover{color:var(--accent-dark);}
.contact-schedule{font-size:.94rem;color:var(--text-muted);margin:8px 0 0;}
.contact-note{font-size:.89rem;color:var(--text-muted);margin:8px 0 0;}
.contact-nap{font-size:.96rem;color:var(--text-muted);line-height:1.7;}
.contact-nap strong{color:var(--primary-dark);}
.contact-info-highlight{background:var(--primary);color:#fff;border-color:var(--primary);}
.contact-info-highlight h3{color:#fff;}
.contact-info-highlight p{color:#C9DBD1;font-size:.95rem;margin:0;}
.site-footer{background:var(--primary-dark);color:#C9DBD1;padding:58px 0 26px;font-size:.95rem;}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.1fr;gap:34px;}
.footer-logo img{filter:brightness(0) invert(1);width:192px;height:48px;}
.footer-claim{margin-top:16px;font-size:.93rem;color:#A9C0B4;max-width:40ch;}
.footer-col h3{color:#fff;font-size:1rem;margin-bottom:1em;}
.footer-col a{display:block;color:#C9DBD1;padding:5px 0;font-size:.93rem;}
.footer-col a:hover{color:var(--accent);}
.footer-nap{color:#C9DBD1;line-height:1.75;font-size:.93rem;}
.footer-nap strong{color:#fff;}
.footer-nap a{color:var(--accent);font-weight:700;}
.footer-schedule{font-size:.9rem;color:#A9C0B4;margin-top:10px;}
.footer-email{color:var(--accent);}
.footer-zones{margin-top:40px;padding-top:26px;border-top:1px solid rgba(255,255,255,.13);}
.footer-zones h3{color:#fff;font-size:.95rem;margin-bottom:.6em;}
.footer-zones p{color:#A9C0B4;font-size:.88rem;margin:0;line-height:1.9;}
.footer-bottom{margin-top:26px;padding-top:20px;border-top:1px solid rgba(255,255,255,.13);text-align:center;}
.footer-bottom p{margin:0;font-size:.87rem;color:#A9C0B4;}
.cookie-banner{position:fixed;left:0;right:0;bottom:0;z-index:500;background:var(--primary-dark);color:#E7EFE9;transform:translateY(100%);transition:transform .25s ease;box-shadow:0 -6px 24px rgba(0,0,0,.22);}
.cookie-banner.is-visible{transform:translateY(0);}
.cookie-inner{max-width:var(--maxw);margin:0 auto;padding:18px 22px;display:flex;align-items:center;gap:20px;flex-wrap:wrap;justify-content:space-between;}
.cookie-text{margin:0;font-size:.89rem;max-width:76ch;}
.cookie-text a{color:var(--accent);text-decoration:underline;}
.cookie-actions{flex:0 0 auto;}
.legal-page{max-width:840px;margin:0 auto;}
.legal-page h2{margin-top:1.6em;}
.legal-page h3{margin-top:1.3em;}
.legal-page table{width:100%;border-collapse:collapse;margin:1em 0;font-size:.93rem;}
.legal-page th,.legal-page td{border:1px solid var(--border);padding:10px 12px;text-align:left;}
.legal-page th{background:var(--bg-light);}
.page-404{text-align:center;}
.page-404 .code-404{font-size:clamp(4rem,14vw,8rem);font-weight:800;color:var(--primary-soft);line-height:1;margin-bottom:.1em;}
@media (max-width:1024px){
  .services-grid,.cost-grid,.reviews-grid,.related-grid{grid-template-columns:repeat(2,1fr);}
  .features-grid,.process-grid{grid-template-columns:repeat(2,1fr);}
  .footer-grid{grid-template-columns:1fr 1fr;}
  .hero-grid{grid-template-columns:1fr;}
  .hero-media{min-height:300px;order:-1;}
  .hero-content{padding:48px 0 56px;}
}
@media (max-width:900px){
  .nav-desktop,.header-cta{display:none;}
  .burger{display:block;margin-left:auto;}
  .contact-grid{grid-template-columns:1fr;}
  .content-block{grid-template-columns:1fr;gap:28px;}
  .content-block.reverse .content-block-media{order:0;}
  .zones-columns{grid-template-columns:1fr;gap:28px;}
}
@media (max-width:680px){
  body{font-size:16px;}
  section{padding:52px 0;}
  .services-grid,.cost-grid,.reviews-grid,.related-grid,.features-grid,.process-grid,.footer-grid,.form-row{grid-template-columns:1fr;}
  .header-top-claim{display:none;}
  .header-top-inner{justify-content:center;}
  .contact-form-wrap{padding:22px;}
  .cookie-inner{flex-direction:column;align-items:stretch;gap:14px;}
  .cookie-actions .btn{width:100%;}
  .hero-actions .btn{flex:1 1 100%;}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.001ms !important;transition-duration:.001ms !important;}
}
@media print{
  .site-header,.header-top,.cookie-banner,.contact-form-wrap,.btn{display:none !important;}
}
