
  :root {
    --forest: #1a2d1e; --moss: #3d5a40; --sage: #7a9e7e;
    --linen: #f4f0e8; --warm-white: #faf8f3; --cream: #e8e0d0;
    --text-dark: #1a1a18; --text-mid: #4a4a42;
  }
  * { margin:0; padding:0; box-sizing:border-box; }
  html { scroll-behavior:smooth; }
  body { font-family:'DM Sans',sans-serif; background:var(--warm-white); color:var(--text-dark); overflow-x:hidden; }

  /* LANG */
  .lang-block { display:none; }
  html[lang="ca"] .lang-block-ca { display:block; }
  html[lang="es"] .lang-block-es { display:block; }
  .lang-inline { display:none; }
  html[lang="ca"] .lang-inline-ca { display:inline; }
  html[lang="es"] .lang-inline-es { display:inline; }

  /* NAV */
  nav { position:fixed; top:0; left:0; right:0; z-index:100; padding:1.4rem 4rem;
    display:flex; justify-content:space-between; align-items:center;
    background:rgba(250,248,243,0.92); backdrop-filter:blur(12px);
    border-bottom:1px solid rgba(26,45,30,0.08); transition:all 0.3s ease; }
  nav ul { list-style:none; display:flex; gap:2.5rem; align-items:center; }
  nav a { text-decoration:none; font-size:0.82rem; font-weight:500; letter-spacing:0.08em;
    text-transform:uppercase; color:var(--text-mid); transition:color 0.2s; }
  nav a:hover { color:var(--forest); }
  .nav-cta { background:var(--forest)!important; color:var(--warm-white)!important;
    padding:0.6rem 1.4rem; border-radius:2px; transition:background 0.2s!important; }
  .nav-cta:hover { background:var(--moss)!important; }
  .lang-switcher { display:flex; align-items:center; gap:0.3rem; margin-left:1.5rem;
    border-left:1px solid rgba(26,45,30,0.12); padding-left:1.5rem; }
  .lang-btn { font-size:0.72rem; font-weight:500; letter-spacing:0.1em; text-transform:uppercase;
    color:var(--text-mid); background:none; border:none; cursor:pointer; padding:0.25rem 0.5rem;
    border-radius:2px; transition:all 0.2s; font-family:'DM Sans',sans-serif; }
  .lang-btn.active { background:var(--forest); color:var(--linen); }
  .lang-btn:hover:not(.active) { color:var(--forest); }
  .lang-sep { color:var(--cream); font-size:0.8rem; }

  /* HERO */
  .hero { min-height:100vh; display:grid; grid-template-columns:1fr 1fr; position:relative; overflow:hidden; }
  .hero-left { background:var(--forest); display:flex; flex-direction:column; justify-content:center;
    padding:8rem 5rem 6rem 4rem; position:relative; overflow:hidden; }
  .hero-left::before { content:''; position:absolute; inset:0;
    background-image:radial-gradient(ellipse at 80% 20%, rgba(122,158,126,0.18) 0%, transparent 60%),
    radial-gradient(ellipse at 20% 80%, rgba(193,127,90,0.1) 0%, transparent 50%); }
  .hero-eyebrow { font-size:0.72rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--sage);
    margin-bottom:1.5rem; position:relative; display:flex; align-items:center; gap:0.8rem; }
  .hero-eyebrow::before { content:''; width:2rem; height:1px; background:var(--sage); display:inline-block; }
  .hero-title { font-family:'Cormorant Garamond',serif; font-size:clamp(3rem,5vw,4.5rem); font-weight:300;
    line-height:1.1; color:var(--linen); margin-bottom:1.5rem; }
  .hero-title em { color:var(--sage); font-style:italic; }
  .hero-subtitle { font-size:0.95rem; line-height:1.7; color:rgba(244,240,232,0.65);
    max-width:380px; margin-bottom:3rem; font-weight:300; }
  .hero-badges { display:flex; gap:1rem; flex-wrap:wrap; margin-bottom:3rem; }
  .badge { display:flex; align-items:center; gap:0.5rem; background:rgba(122,158,126,0.15);
    border:1px solid rgba(122,158,126,0.3); padding:0.5rem 1rem; border-radius:2px;
    font-size:0.72rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--sage); }
  .badge-icon { display:inline-flex; align-items:center; }
  .badge-icon svg { width:16px; height:16px; }
  .passivhaus-badge { background:rgba(193,127,90,0.12); border-color:rgba(193,127,90,0.35); color:#d4956e; }
  .hero-cta-group { display:flex; gap:1rem; align-items:center; }
  .btn-primary { background:var(--sage); color:var(--forest); padding:0.9rem 2rem; text-decoration:none;
    font-size:0.8rem; font-weight:500; letter-spacing:0.1em; text-transform:uppercase;
    border-radius:2px; transition:all 0.2s; display:inline-block; }
  .btn-primary:hover { background:var(--linen); }
  .btn-ghost { color:rgba(244,240,232,0.6); font-size:0.8rem; letter-spacing:0.1em;
    text-transform:uppercase; text-decoration:none; transition:color 0.2s; display:flex; align-items:center; gap:0.5rem; }
  .btn-ghost:hover { color:var(--linen); }
  .btn-ghost::after { content:'→'; }
  .hero-right { background:var(--linen); display:flex; align-items:flex-end; justify-content:center;
    padding:4rem 3rem 0; position:relative; overflow:hidden; }
  .hero-illustration { width:100%; max-width:420px; position:relative; }
  .hero-stats { position:absolute; bottom:3rem; left:3rem; right:3rem; display:flex; gap:2rem;
    background:var(--warm-white); padding:1.5rem 2rem; border-top:2px solid var(--moss);
    box-shadow:0 -4px 40px rgba(26,45,30,0.08); }
  .stat { flex:1; border-right:1px solid var(--cream); padding-right:2rem; }
  .stat:last-child { border-right:none; padding-right:0; }
  .stat-number { font-family:'Cormorant Garamond',serif; font-size:2.2rem; font-weight:300;
    color:var(--forest); line-height:1; margin-bottom:0.3rem; }
  .stat-label { font-size:0.72rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--text-mid); }

  /* STRIP */
  .strip { background:var(--forest); padding:1.2rem 4rem; display:flex; align-items:center;
    justify-content:center; gap:4rem; flex-wrap:wrap; }
  .strip-item { display:flex; align-items:center; gap:0.8rem; font-size:0.78rem;
    letter-spacing:0.1em; text-transform:uppercase; color:rgba(244,240,232,0.7); }
  .strip-item .dot { width:6px; height:6px; border-radius:50%; background:var(--sage); }

  /* COMMON */
  section { padding:7rem 4rem; }
  .section-label { font-size:0.72rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--sage);
    margin-bottom:1rem; display:flex; align-items:center; gap:0.8rem; }
  .section-label::before { content:''; width:1.5rem; height:1px; background:var(--sage); display:inline-block; }
  .section-title { font-family:'Cormorant Garamond',serif; font-size:clamp(2rem,3.5vw,3rem);
    font-weight:300; line-height:1.15; color:var(--forest); margin-bottom:1.5rem; }
  .section-title em { font-style:italic; color:var(--moss); }

  /* SERVICES */
  .services { background:var(--warm-white); }
  .services-header { display:grid; grid-template-columns:1fr 1fr; gap:4rem; margin-bottom:5rem; align-items:end; }
  .services-intro { font-size:1rem; line-height:1.75; color:var(--text-mid); font-weight:300; }
  .services-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5px; background:var(--cream); border:1.5px solid var(--cream); }
  .service-card { background:var(--warm-white); padding:3rem 2.5rem; transition:all 0.3s ease; position:relative; overflow:hidden; cursor:pointer; }
  .service-card::before { content:''; position:absolute; bottom:0; left:0; width:100%; height:3px;
    background:var(--sage); transform:scaleX(0); transform-origin:left; transition:transform 0.3s ease; }
  .service-card:hover { background:var(--forest); }
  .service-card:hover .service-num { color:rgba(122,158,126,0.4); }
  .service-card:hover .service-title { color:var(--linen); }
  .service-card:hover .service-desc { color:rgba(244,240,232,0.6); }
  .service-card:hover::before { transform:scaleX(1); }
  .service-num { font-family:'Cormorant Garamond',serif; font-size:3.5rem; font-weight:300;
    color:var(--cream); line-height:1; margin-bottom:1.5rem; transition:color 0.3s; }
  .service-icon { display:block; width:44px; height:44px; margin-bottom:1rem; }
  .service-icon svg { width:44px; height:44px; }
  .service-title { font-family:'Cormorant Garamond',serif; font-size:1.5rem; font-weight:400;
    color:var(--forest); margin-bottom:0.8rem; transition:color 0.3s; }
  .service-desc { font-size:0.85rem; line-height:1.65; color:var(--text-mid); font-weight:300; transition:color 0.3s; }

  /* EFICIÈNCIA */
  .eficiencia { background:var(--linen); padding:7rem 4rem; }
  .eficiencia-header { display:grid; grid-template-columns:1fr 1fr; gap:4rem; margin-bottom:5rem; align-items:end; }
  .eficiencia-intro { font-size:1rem; line-height:1.75; color:var(--text-mid); font-weight:300; }
  .tech-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem; }
  .tech-card { background:var(--warm-white); border:1px solid var(--cream); padding:2rem 1.5rem;
    border-radius:2px; position:relative; overflow:hidden; transition:all 0.3s ease; }
  .tech-card::after { content:''; position:absolute; top:0; left:0; width:3px; height:100%;
    background:var(--sage); transform:scaleY(0); transform-origin:top; transition:transform 0.3s ease; }
  .tech-card:hover { border-color:transparent; box-shadow:0 8px 32px rgba(26,45,30,0.08); }
  .tech-card:hover::after { transform:scaleY(1); }
  .tech-icon { display:block; width:44px; height:44px; margin-bottom:1rem; }
  .tech-icon svg { width:44px; height:44px; }
  .tech-title { font-family:'Cormorant Garamond',serif; font-size:1.2rem; font-weight:400;
    color:var(--forest); margin-bottom:0.6rem; line-height:1.2; }
  .tech-desc { font-size:0.82rem; line-height:1.6; color:var(--text-mid); font-weight:300; }
  .eficiencia-bottom { margin-top:4rem; background:var(--forest); padding:3rem 3.5rem;
    display:grid; grid-template-columns:1fr auto; gap:3rem; align-items:center; border-radius:2px; }
  .eficiencia-bottom-text { font-family:'Cormorant Garamond',serif; font-size:1.5rem; font-weight:300;
    color:var(--linen); line-height:1.4; }
  .eficiencia-bottom-text em { color:var(--sage); font-style:italic; }
  .eficiencia-kpis { display:flex; gap:3rem; flex-shrink:0; }
  .eficiencia-kpi { text-align:center; }
  .eficiencia-kpi-num { font-family:'Cormorant Garamond',serif; font-size:2.2rem; font-weight:300;
    color:var(--sage); display:block; line-height:1; margin-bottom:0.3rem; }
  .eficiencia-kpi-label { font-size:0.72rem; letter-spacing:0.08em; text-transform:uppercase; color:rgba(244,240,232,0.45); }

  /* PASSIVHAUS */
  .passivhaus { background:var(--forest); padding:7rem 4rem; position:relative; overflow:hidden; }
  .passivhaus::before { content:''; position:absolute; right:-10%; top:-20%; width:600px; height:600px;
    border-radius:50%; background:radial-gradient(circle, rgba(122,158,126,0.12) 0%, transparent 70%); }
  .passivhaus-inner { display:grid; grid-template-columns:1fr 1.2fr; gap:6rem; align-items:center;
    max-width:1200px; margin:0 auto; }
  .passivhaus .section-title { color:var(--linen); }
  .passivhaus .section-label { color:var(--sage); }
  .ph-description { font-size:1rem; line-height:1.75; color:rgba(244,240,232,0.65);
    font-weight:300; margin-bottom:2.5rem; }
  .ph-cert { display:inline-flex; align-items:center; gap:1.5rem;
    background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.12);
    padding:1.2rem 1.8rem; border-radius:2px; }
  .ph-cert-text { font-size:0.72rem; letter-spacing:0.12em; text-transform:uppercase; color:#d4956e; }
  .ph-cert-text strong { display:block; font-size:0.85rem; margin-bottom:0.1rem; }
  .passivhaus-pillars { display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; }
  .pillar { background:rgba(244,240,232,0.05); border:1px solid rgba(244,240,232,0.08);
    padding:2rem; border-radius:2px; transition:border-color 0.3s; }
  .pillar:hover { border-color:rgba(122,158,126,0.4); }
  .pillar-icon { display:block; width:36px; height:36px; margin-bottom:1rem; }
  .pillar-icon svg { width:36px; height:36px; }
  .pillar-title { font-family:'Cormorant Garamond',serif; font-size:1.15rem; font-weight:400;
    color:var(--linen); margin-bottom:0.5rem; }
  .pillar-text { font-size:0.82rem; line-height:1.6; color:rgba(244,240,232,0.5); font-weight:300; }

  /* PROCESS */
  .process { background:var(--linen); padding:7rem 4rem; }
  .process-header { text-align:center; max-width:640px; margin:0 auto 5rem; }
  .process-header .section-label { justify-content:center; }
  .process-header .section-label::before { display:none; }
  .process-steps { display:grid; grid-template-columns:repeat(4,1fr); gap:0; position:relative; }
  .process-steps::before { content:''; position:absolute; top:3rem; left:12%; right:12%; height:1px; background:var(--cream); }
  .step { text-align:center; padding:0 2rem; position:relative; }
  .step-circle { width:6rem; height:6rem; border-radius:50%; background:var(--warm-white);
    border:1px solid var(--cream); display:flex; align-items:center; justify-content:center;
    margin:0 auto 2rem; font-family:'Cormorant Garamond',serif; font-size:1.4rem; font-weight:300;
    color:var(--moss); position:relative; z-index:1; transition:all 0.3s; }
  .step:hover .step-circle { background:var(--forest); border-color:var(--forest); color:var(--linen); }
  .step-title { font-family:'Cormorant Garamond',serif; font-size:1.15rem; font-weight:400;
    color:var(--forest); margin-bottom:0.5rem; }
  .step-text { font-size:0.82rem; line-height:1.6; color:var(--text-mid); font-weight:300; }

  /* COMPROMIS */
  .compromis { background:var(--warm-white); padding:7rem 4rem; }
  .compromis-grid { display:grid; grid-template-columns:1.2fr 1fr; gap:6rem; align-items:center; max-width:1200px; margin:0 auto; }
  .compromis-body { font-size:1rem; line-height:1.75; color:var(--text-mid); font-weight:300; margin-bottom:2.5rem; }
  .values-list { display:flex; flex-direction:column; gap:1rem; }
  .value-item { display:flex; align-items:flex-start; gap:1rem; padding:1.2rem 1.5rem;
    border-left:2px solid transparent; transition:all 0.2s; cursor:default; }
  .value-item:hover { border-left-color:var(--sage); background:rgba(122,158,126,0.05); }
  .value-icon { font-size:1.2rem; flex-shrink:0; margin-top:0.1rem; display:flex; align-items:flex-start; }
  .value-icon svg { width:28px; height:28px; }
  .value-text strong { display:block; font-size:0.85rem; font-weight:500; color:var(--forest);
    margin-bottom:0.2rem; letter-spacing:0.02em; }
  .value-text span { font-size:0.82rem; color:var(--text-mid); font-weight:300; line-height:1.5; }
  .eco-visual { background:var(--forest); padding:4rem 3rem; border-radius:2px; text-align:center; position:relative; overflow:hidden; }
  .eco-visual::before { content:''; position:absolute; inset:0;
    background:radial-gradient(circle at 50% 30%, rgba(122,158,126,0.2) 0%, transparent 70%); }
  .eco-big { font-family:'Cormorant Garamond',serif; font-size:7rem; font-weight:300;
    color:rgba(122,158,126,0.2); line-height:1; position:relative; z-index:1; margin-bottom:0.5rem; }
  .eco-label { font-size:0.72rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--sage);
    position:relative; z-index:1; margin-bottom:2.5rem; }
  .eco-stats { display:flex; flex-direction:column; gap:1rem; position:relative; z-index:1; }
  .eco-stat { display:flex; align-items:center; justify-content:space-between; padding:0.8rem 1.2rem;
    background:rgba(244,240,232,0.05); border:1px solid rgba(244,240,232,0.08); border-radius:2px; }
  .eco-stat-label { font-size:0.78rem; color:rgba(244,240,232,0.6); font-weight:300; }
  .eco-stat-val { font-family:'Cormorant Garamond',serif; font-size:1.3rem; font-weight:300; color:var(--sage); }

  /* CONTACTE */
  .contacte { background:var(--forest); padding:7rem 4rem; position:relative; overflow:hidden; }
  .contacte::after { content:'20°'; position:absolute; right:4%; top:50%; transform:translateY(-50%);
    font-family:'Cormorant Garamond',serif; font-size:18rem; font-weight:300;
    color:rgba(122,158,126,0.06); line-height:1; pointer-events:none; user-select:none; }
  .contacte-inner { max-width:700px; position:relative; z-index:1; }
  .contacte .section-label { color:var(--sage); }
  .contacte .section-title { color:var(--linen); margin-bottom:2rem; }
  .contacte-desc { font-size:1rem; line-height:1.75; color:rgba(244,240,232,0.6); font-weight:300; margin-bottom:3rem; }
  .contact-form { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
  .form-group { display:flex; flex-direction:column; gap:0.5rem; }
  .form-group.full { grid-column:1/-1; }
  .form-group label { font-size:0.72rem; letter-spacing:0.1em; text-transform:uppercase; color:rgba(244,240,232,0.5); }
  .form-group input, .form-group select, .form-group textarea { background:rgba(244,240,232,0.07);
    border:1px solid rgba(244,240,232,0.12); color:var(--linen); padding:0.9rem 1rem;
    font-family:'DM Sans',sans-serif; font-size:0.9rem; font-weight:300; border-radius:2px;
    outline:none; transition:border-color 0.2s; resize:none; }
  .form-group input::placeholder, .form-group textarea::placeholder { color:rgba(244,240,232,0.25); }
  .form-group input:focus, .form-group select:focus, .form-group textarea:focus { border-color:var(--sage); }
  .form-group select { appearance:none; cursor:pointer; }
  .form-group select option { background:var(--forest); }
  .form-submit { grid-column:1/-1; display:flex; align-items:center; gap:2rem; margin-top:1rem; }
  .btn-submit { background:var(--sage); color:var(--forest); border:none; padding:1rem 2.5rem;
    font-family:'DM Sans',sans-serif; font-size:0.8rem; font-weight:500; letter-spacing:0.1em;
    text-transform:uppercase; border-radius:2px; cursor:pointer; transition:background 0.2s; }
  .btn-submit:hover { background:var(--linen); }
  .contact-info { font-size:0.82rem; color:rgba(244,240,232,0.4); font-weight:300; }
  .contact-info strong { display:block; color:rgba(244,240,232,0.6); margin-bottom:0.2rem; font-weight:400; }

  /* PARTNERS */
  .partners { background:var(--warm-white); border-top:1px solid var(--cream); border-bottom:1px solid var(--cream);
    padding:3.5rem 4rem; display:flex; align-items:center; gap:4rem; flex-wrap:wrap; }
  .partners-label { font-size:0.7rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--sage);
    white-space:nowrap; flex-shrink:0; padding-right:2rem; border-right:1px solid var(--cream); }
  .partners-logos { display:flex; align-items:center; gap:3.5rem; flex-wrap:wrap; flex:1; }
  .partner-item { display:flex; flex-direction:column; align-items:flex-start; gap:0.5rem;
    text-decoration:none; transition:opacity 0.2s; }
  .partner-item:hover { opacity:0.75; }
  .partner-img { display:block; object-fit:contain; }
  .partner-img-ph { height:80px; width:auto; }
  .partner-img-nova { height:60px; width:auto; }
  .partner-caption { font-size:0.68rem; letter-spacing:0.06em; color:var(--text-mid); opacity:0.55; font-weight:300; }
  .partner-divider { width:1px; height:60px; background:var(--cream); flex-shrink:0; }

  /* FOOTER */
  footer { background:#111a13; padding:3rem 4rem; display:flex; justify-content:space-between;
    align-items:center; flex-wrap:wrap; gap:1rem; }
  .footer-links { display:flex; gap:2rem; }
  .footer-links a { font-size:0.75rem; color:rgba(244,240,232,0.35); text-decoration:none;
    letter-spacing:0.06em; transition:color 0.2s; }
  .footer-links a:hover { color:var(--sage); }
  .footer-copy { font-size:0.75rem; color:rgba(244,240,232,0.3); font-weight:300; }

  /* ANIMATIONS */
  @keyframes fadeUp { from { opacity:0; transform:translateY(30px); } to { opacity:1; transform:translateY(0); } }
  .hero-left > * { animation:fadeUp 0.8s ease forwards; opacity:0; }
  .hero-left .hero-eyebrow { animation-delay:0.1s; }
  .hero-left .hero-title { animation-delay:0.25s; }
  .hero-left .hero-subtitle { animation-delay:0.4s; }
  .hero-left .hero-badges { animation-delay:0.55s; }
  .hero-left .hero-cta-group { animation-delay:0.7s; }

  /* RESPONSIVE */
  @media (max-width:900px) {
    nav { padding:1.2rem 2rem; }
    nav ul { display:none; }
    .hero { grid-template-columns:1fr; }
    .hero-left { padding:7rem 2rem 4rem; }
    .hero-right { min-height:280px; padding:3rem 2rem 0; }
    .hero-stats { position:static; margin:2rem; flex-wrap:wrap; }
    section { padding:4rem 2rem; }
    .services-header { grid-template-columns:1fr; gap:2rem; }
    .services-grid { grid-template-columns:1fr; }
    .eficiencia-header { grid-template-columns:1fr; gap:2rem; }
    .tech-grid { grid-template-columns:1fr 1fr; }
    .eficiencia-bottom { grid-template-columns:1fr; }
    .passivhaus-inner { grid-template-columns:1fr; gap:3rem; }
    .passivhaus-pillars { grid-template-columns:1fr; }
    .process-steps { grid-template-columns:1fr 1fr; }
    .process-steps::before { display:none; }
    .compromis-grid { grid-template-columns:1fr; gap:3rem; }
    .contact-form { grid-template-columns:1fr; }
    footer { flex-direction:column; align-items:flex-start; padding:2rem; }
    .strip { flex-wrap:wrap; padding:1rem 2rem; gap:1.5rem; }
    .partners { flex-direction:column; align-items:flex-start; gap:2rem; padding:2.5rem 2rem; }
    .partners-label { border-right:none; padding-right:0; border-bottom:1px solid var(--cream); padding-bottom:1rem; width:100%; }
    .partner-divider { width:60px; height:1px; }
  }

  /* ── PROMOCIONS ── */
  .promocions { background: var(--linen); padding: 7rem 4rem; }
  .promocions-header { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; margin-bottom: 4rem; align-items: end; }
  .promo-intro { font-size: 1rem; line-height: 1.75; color: var(--text-mid); font-weight: 300; }
  .promo-card { background: var(--warm-white); border: 1px solid var(--cream); border-radius: 2px; overflow: hidden; transition: box-shadow 0.3s; }
  .promo-card:hover { box-shadow: 0 12px 48px rgba(26,45,30,0.1); }
  .promo-visual { background: var(--forest); height: 240px; position: relative; overflow: hidden; display: flex; align-items: flex-end; }
  .promo-visual-bg { position: absolute; inset: 0; }
  .promo-badge-overlay { position: absolute; top: 1.5rem; right: 1.5rem; background: var(--sage); color: var(--forest); font-size: 0.68rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; padding: 0.35rem 0.8rem; border-radius: 2px; }
  .promo-cert { position: absolute; top: 1.5rem; left: 1.5rem; background: rgba(26,45,30,0.85); padding: 0.4rem 0.8rem; border-radius: 2px; display: flex; align-items: center; gap: 0.5rem; }
  .promo-cert-letter { font-family: 'Josefin Sans', sans-serif; font-size: 1.4rem; font-weight: 700; color: #4caf50; line-height: 1; }
  .promo-cert-label { font-size: 0.6rem; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(244,240,232,0.6); line-height: 1.3; }
  .promo-body { padding: 2.5rem; }
  .promo-location { font-size: 0.72rem; letter-spacing: 0.15em; text-transform: uppercase; color: var(--sage); margin-bottom: 0.6rem; display: flex; align-items: center; gap: 0.5rem; }
  .promo-location svg { width: 12px; height: 12px; }
  .promo-title { font-family: 'Cormorant Garamond', serif; font-size: 1.8rem; font-weight: 400; color: var(--forest); margin-bottom: 0.8rem; line-height: 1.15; }
  .promo-desc { font-size: 0.88rem; line-height: 1.65; color: var(--text-mid); font-weight: 300; margin-bottom: 2rem; }
  .promo-highlights { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-bottom: 2rem; padding: 1.5rem; background: var(--linen); border-radius: 2px; }
  .promo-hl { text-align: center; }
  .promo-hl-num { font-family: 'Cormorant Garamond', serif; font-size: 1.8rem; font-weight: 300; color: var(--forest); line-height: 1; display: block; }
  .promo-hl-label { font-size: 0.68rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-mid); }
  .promo-typologies { display: flex; gap: 0.8rem; flex-wrap: wrap; margin-bottom: 2rem; }
  .promo-typo { background: var(--cream); color: var(--text-mid); font-size: 0.75rem; font-weight: 500; padding: 0.4rem 0.9rem; border-radius: 2px; letter-spacing: 0.05em; }
  .promo-typo.highlight { background: var(--moss); color: var(--linen); }
  .qualitats { margin-top: 2rem; border-top: 1px solid var(--cream); padding-top: 2rem; }
  .qualitats-title { font-size: 0.72rem; letter-spacing: 0.15em; text-transform: uppercase; color: var(--moss); margin-bottom: 1.2rem; font-weight: 500; }
  .qualitats-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.6rem; }
  .qualitat-item { display: flex; align-items: flex-start; gap: 0.7rem; padding: 0.7rem 0.9rem; background: var(--linen); border-radius: 2px; }
  .qualitat-ico { flex-shrink: 0; margin-top: 1px; }
  .qualitat-ico svg { width: 18px; height: 18px; }
  .qualitat-text { font-size: 0.78rem; line-height: 1.4; color: var(--text-mid); font-weight: 300; }
  .qualitat-text strong { display: block; font-size: 0.8rem; font-weight: 500; color: var(--forest); margin-bottom: 0.1rem; }
  .promo-cta { display: flex; gap: 1rem; align-items: center; margin-top: 2rem; }
  .btn-promo { background: var(--forest); color: var(--linen); padding: 0.85rem 2rem; text-decoration: none; font-size: 0.78rem; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; border-radius: 2px; transition: background 0.2s; display: inline-block; border: none; cursor: pointer; font-family: 'DM Sans', sans-serif; }
  .btn-promo:hover { background: var(--moss); }
  .btn-promo-ghost { color: var(--moss); font-size: 0.78rem; letter-spacing: 0.08em; text-transform: uppercase; text-decoration: none; font-weight: 500; transition: color 0.2s; }
  .btn-promo-ghost:hover { color: var(--forest); }
  .promo-status { display: inline-flex; align-items: center; gap: 0.5rem; font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--sage); margin-left: auto; }
  .promo-status::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--sage); animation: pulse 2s infinite; }
  @keyframes pulse { 0%,100% { opacity:1; } 50% { opacity:0.3; } }

  /* ── RESSENYES ── */
  .ressenyes { background: var(--forest); padding: 7rem 4rem; }
  .ressenyes .section-label { color: var(--sage); }
  .ressenyes .section-title { color: var(--linen); }
  .ressenyes-header { display: grid; grid-template-columns: 1fr auto; gap: 4rem; align-items: end; margin-bottom: 4rem; }
  .ressenyes-score { text-align: right; }
  .score-num { font-family: 'Cormorant Garamond', serif; font-size: 5rem; font-weight: 300; color: var(--linen); line-height: 1; }
  .score-stars { display: flex; justify-content: flex-end; gap: 0.3rem; margin: 0.5rem 0; }
  .star svg { width: 20px; height: 20px; }
  .score-base { font-size: 0.75rem; color: rgba(244,240,232,0.4); letter-spacing: 0.08em; }
  .ressenyes-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
  .resseny-card { background: rgba(244,240,232,0.05); border: 1px solid rgba(244,240,232,0.08); padding: 2rem; border-radius: 2px; transition: border-color 0.3s; }
  .resseny-card:hover { border-color: rgba(122,158,126,0.3); }
  .resseny-header { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.2rem; }
  .resseny-avatar { width: 44px; height: 44px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-family: 'Josefin Sans', sans-serif; font-size: 1rem; font-weight: 700; color: var(--linen); flex-shrink: 0; }
  .resseny-meta { flex: 1; }
  .resseny-name { font-size: 0.88rem; font-weight: 500; color: var(--linen); margin-bottom: 0.15rem; }
  .resseny-date { font-size: 0.72rem; color: rgba(244,240,232,0.35); }
  .resseny-stars { display: flex; gap: 0.2rem; margin-bottom: 1rem; }
  .resseny-stars svg { width: 14px; height: 14px; }
  .resseny-text { font-size: 0.85rem; line-height: 1.65; color: rgba(244,240,232,0.65); font-weight: 300; font-style: italic; }
  .resseny-source { display: flex; align-items: center; gap: 0.5rem; margin-top: 1.2rem; padding-top: 1rem; border-top: 1px solid rgba(244,240,232,0.06); }
  .resseny-source svg { width: 14px; height: 14px; }
  .resseny-source span { font-size: 0.68rem; letter-spacing: 0.08em; color: rgba(244,240,232,0.3); text-transform: uppercase; }

  @media (max-width: 900px) {
    .promocions-header { grid-template-columns: 1fr; gap: 2rem; }
    .promo-highlights { grid-template-columns: repeat(3,1fr); }
    .qualitats-grid { grid-template-columns: 1fr; }
    .ressenyes-header { grid-template-columns: 1fr; gap: 2rem; }
    .ressenyes-grid { grid-template-columns: 1fr; }
    .ressenyes-score { text-align: left; }
    .score-stars { justify-content: flex-start; }
  }


  /* SOCIAL */
  .footer-social { display: flex; align-items: center; gap: 0.8rem; }
  .social-btn { display: flex; align-items: center; justify-content: center;
    width: 36px; height: 36px; border-radius: 2px;
    background: rgba(244,240,232,0.06); border: 1px solid rgba(244,240,232,0.1);
    transition: all 0.2s; text-decoration: none; }
  .social-btn:hover { background: var(--moss); border-color: var(--moss); }
  .social-btn svg { width: 18px; height: 18px; }

