/* Layout de la segunda propuesta: contacto vertical y centrado. */
body:has(.hero-v2) .contact {
  grid-template-columns: 1fr;
}

body:has(.hero-v2) .contact > div {
  max-width: 850px;
  margin: auto;
  text-align: center;
}

body:has(.hero-v2) .contact .copy {
  margin-left: auto;
  margin-right: auto;
}

body:has(.hero-v2) .contact .contact-data {
  justify-content: center;
}

body:has(.hero-v2) .contact aside {
  width: 100%;
  max-width: 760px;
  margin: 56px auto 0;
}

body:has(.hero-v2) .contact aside h3 {
  max-width: 540px;
}

.hero-stacked {
  display: block;
  min-height: 0;
  padding: 135px clamp(24px, 10vw, 180px) 80px;
}

.hero-stacked .hero-content {
  max-width: 900px;
}

.hero-girona {
  position: relative;
  margin: 62px 0 0;
  height: clamp(300px, 38vw, 500px);
  overflow: hidden;
  border-radius: 14px 140px 14px 14px;
  box-shadow: 0 24px 54px #00235420;
}

.hero-girona img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

.hero-girona figcaption {
  position: absolute;
  right: 22px;
  bottom: 20px;
  background: #ffffffdf;
  color: var(--navy);
  padding: 9px 13px;
  border-radius: 3px;
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}

@media (max-width: 800px) {
  .hero-stacked {
    padding: 120px 24px 55px;
  }

  .hero-stacked .hero-girona {
    height: 310px;
    margin-top: 44px;
    border-radius: 12px 80px 12px 12px;
  }

  body:has(.hero-v2) .editorial-about > div,
  body:has(.hero-v2) .marketing .split > div,
  body:has(.hero-v2) .services .split > div {
    order: 1;
  }

  body:has(.hero-v2) .editorial-about > figure,
  body:has(.hero-v2) .marketing .split > figure,
  body:has(.hero-v2) .services .split > figure {
    order: 2;
  }

  .hero-stacked .results {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    margin-top: 34px;
  }

  .hero-stacked .results div {
    display: block;
    background: #fff;
    border: 1px solid #dce5ee;
    border-radius: 8px;
    padding: 15px 16px;
    box-shadow: 0 8px 20px #0023540d;
  }

  .hero-stacked .results b {
    display: block;
    font-size: 1.4rem;
  }

  .hero-stacked .results small {
    display: block;
    font-size: .8rem;
    line-height: 1.4;
    margin-top: 3px;
  }
}

/* Pàgines de servei SEO: llegibles, útils i coherents amb la portada. */
.page-shell .header{position:relative;background:#f7f9fc;border-bottom:1px solid var(--line)}
.page-shell .header nav{gap:26px}
.seo-hero{max-width:1400px;margin:auto;padding:94px clamp(24px,8vw,150px) 105px;display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(44px,8vw,130px);align-items:center;background:#f7f9fc}.seo-hero h1{font-size:clamp(3.2rem,5.6vw,6.2rem);line-height:.98;margin-bottom:26px;color:var(--navy)}.seo-hero>div>p:not(.eyebrow),.seo-band p{font-size:1.08rem;line-height:1.7;color:#415a79;max-width:620px}.seo-hero figure{margin:0;height:510px;overflow:hidden;border-radius:14px 130px 14px 14px;box-shadow:0 25px 50px #00235420}.seo-hero figure img{display:block;width:100%;height:100%;object-fit:cover}.seo-content,.seo-faq{max-width:1180px;margin:auto;padding:110px clamp(24px,6vw,90px)}.seo-content h2,.seo-faq h2{max-width:760px;margin-bottom:46px}.seo-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.seo-grid article{padding:30px;background:var(--pale);border:1px solid #e6edf5;border-radius:8px}.seo-grid b{font-family:'Playfair Display',Georgia,serif;color:var(--blue);font-size:1.35rem}.seo-grid h3{font-size:1.2rem;margin:14px 0 10px}.seo-grid p{color:#526887;line-height:1.6;margin:0}.seo-band{background:linear-gradient(135deg,#063979,var(--navy));padding:75px clamp(24px,8vw,150px);display:flex;align-items:center;justify-content:space-between;gap:48px;color:#fff}.seo-band>div{max-width:780px}.seo-band h2{font-size:clamp(2.2rem,4vw,4rem);line-height:1.04;margin-bottom:20px}.seo-band p{color:#d5e2f4}.seo-band .button{flex:none;margin:0}.seo-faq{padding-top:115px;padding-bottom:115px}.seo-faq details{border-top:1px solid var(--line);padding:20px 0}.seo-faq details:last-child{border-bottom:1px solid var(--line)}.seo-faq summary{cursor:pointer;font-weight:700;font-size:1.05rem;color:var(--navy);padding-right:32px;position:relative}.seo-faq summary::after{content:'+';position:absolute;right:6px;color:var(--blue);font-size:1.4rem;top:-5px}.seo-faq details[open] summary::after{content:'−'}.seo-faq details p{max-width:760px;color:#526887;line-height:1.65;margin:15px 0 0}.seo-contact{padding-top:105px;padding-bottom:105px}.section-link{margin:28px 0 0}.section-link a{font-weight:700;color:var(--blue);text-decoration:none}.section-link span{font-size:1.4rem;margin-left:9px}footer a{color:#bac9dc;text-decoration:none}footer a:hover{color:#fff;text-decoration:underline}

@media(max-width:800px){.page-shell .header nav{gap:18px}.seo-hero{display:grid;grid-template-columns:1fr;padding:52px 24px 58px;gap:34px}.seo-hero h1{font-size:clamp(2.55rem,10.5vw,3.2rem);line-height:1}.seo-hero>div>p:not(.eyebrow),.seo-band p{font-size:1rem;line-height:1.65}.seo-hero .button{width:100%;justify-content:center}.seo-hero figure{height:285px;border-radius:12px 76px 12px 12px}.seo-content,.seo-faq{padding-top:64px;padding-bottom:64px}.seo-content h2,.seo-faq h2,.seo-contact h2{font-size:clamp(2.15rem,9vw,2.7rem);line-height:1.08;margin-bottom:32px}.seo-grid{grid-template-columns:1fr}.seo-grid article{padding:23px}.seo-band{display:block;padding:54px 24px}.seo-band h2{font-size:clamp(2.05rem,8.8vw,2.55rem)}.seo-band .button{width:100%;justify-content:center;margin-top:22px}.seo-faq summary{font-size:1rem;line-height:1.45}.seo-contact{padding-top:64px;padding-bottom:64px}}

@media(max-width:360px){.seo-hero{padding-left:20px;padding-right:20px}.seo-hero h1{font-size:2.5rem}.seo-hero figure{height:250px}.seo-content,.seo-faq{padding-left:20px;padding-right:20px}.seo-band{padding-left:20px;padding-right:20px}}

/* Els enllaços visitats del peu mantenen el contrast sobre el blau corporatiu. */
footer a:visited{color:#bac9dc}footer a:focus-visible{color:#fff;text-decoration:underline}
