
*,
*::before,
*::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  font-family: "DM Sans", sans-serif;
  color: #343436;
  background: #f8f7f3;
  line-height: 1.6;
}

a { color: inherit; text-decoration: none; }

:root {
  --green-950: #4A071C;
  --green-900: #950D37;
  --green-700: #B11246;
  --sage: #D9A6B6;
  --cream: #F6F2F3;
  --white: #fff;
  --soft: #58585A;
  --line: rgba(21,32,29,.12);
  --container: 1240px;
}

.container {
  width: min(calc(100% - 48px), var(--container));
  margin-inline: auto;
}

.section-kicker {
  display: inline-block;
  margin-bottom: 18px;
  color: var(--green-700);
  font-size: .74rem;
  font-weight: 700;
  letter-spacing: .16em;
}

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  min-height: 54px;
  padding: 0 24px;
  background: var(--green-900);
  color: white;
  border: 1px solid var(--green-900);
  transition: .25s ease;
}

.button:hover { transform: translateY(-2px); background: var(--green-700); }
.button-small { min-height: 42px; padding: 0 18px; }
.button-light { background: #fff; color: var(--green-900); border-color: #fff; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 10;
  background: rgba(248,247,243,.94);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(21,32,29,.07);
}

.nav-wrapper {
  height: 82px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
}

.logo { display: inline-flex; align-items: center; gap: 10px; }
.logo-mark {
  width: 38px; height: 38px;
  display: grid; place-items: center;
  background: var(--green-900); color: #fff;
  font-family: "Playfair Display", serif; font-size: 1.5rem;
}
.logo-text { display: flex; flex-direction: column; line-height: 1; }
.logo-text strong { letter-spacing: .16em; }
.logo-text small { margin-top: 5px; color: var(--soft); font-size: .56rem; letter-spacing: .25em; }

.main-nav { display: flex; gap: 28px; font-size: .86rem; }
.nav-actions { display: flex; gap: 18px; align-items: center; }
.language-link { font-size: .75rem; color: var(--soft); }

.hero { padding: 80px 0 100px; min-height: calc(100vh - 82px); }
.hero-grid { display: grid; grid-template-columns: 1fr .9fr; gap: 70px; align-items: center; }
.eyebrow { display: flex; gap: 14px; align-items: center; font-size: .75rem; letter-spacing: .15em; color: var(--green-700); }
.eyebrow-line { width: 38px; height: 1px; background: #950D37; }
.hero h1, .intro-section h2, .section-title-row h2, .about-content h2, .process-heading h2, .cta-card h2 {
  font-family: "Playfair Display", serif;
  font-weight: 600;
  letter-spacing: -.04em;
}
.hero h1 { margin: 24px 0 0; font-size: clamp(4rem, 6vw, 6.5rem); line-height: .96; }
.hero h1 span, .about-content h2 em, .process-heading h2 span { color: var(--green-700); font-style: italic; }
.hero-intro { max-width: 590px; margin-top: 32px; color: var(--soft); font-size: 1.08rem; }
.hero-actions { display: flex; align-items: center; gap: 30px; margin-top: 38px; }
.text-link { font-weight: 600; font-size: .9rem; }
.hero-trust { display: flex; gap: 34px; margin-top: 60px; padding-top: 24px; border-top: 1px solid var(--line); }
.hero-trust strong, .hero-trust span { display: block; }
.hero-trust strong { font-family: "Playfair Display", serif; color: var(--green-700); font-size: 1.2rem; }
.hero-trust span { color: var(--soft); font-size: .75rem; }

.hero-visual { min-height: 620px; position: relative; }
.hero-image {
  position: absolute; inset: 0;
  border-radius: 220px 220px 20px 20px;
  background:
    linear-gradient(to bottom, rgba(16,35,29,.02), rgba(16,35,29,.18)),
    url("recepcion-domus.jpg") center/cover no-repeat;
}
.floating-card {
  position: absolute; left: -45px; bottom: 35px;
  width: 290px; padding: 18px 20px;
  background: rgba(255,255,255,.95);
  display: flex; gap: 14px;
  box-shadow: 0 20px 60px rgba(16,35,29,.14);
}
.floating-card-icon { width: 34px; height: 34px; flex: 0 0 34px; display: grid; place-items: center; border-radius: 50%; background: #F0DCE3; }
.floating-card strong, .floating-card span { display: block; }
.floating-card span { color: var(--soft); font-size: .75rem; }

.intro-section, .services-section, .about-section, .process-section { padding: 120px 0; }
.intro-section { background: #fff; }
.intro-grid { display: grid; grid-template-columns: 1fr .75fr; gap: 100px; }
.intro-section h2, .section-title-row h2, .about-content h2, .process-heading h2, .cta-card h2 { margin: 0; font-size: clamp(2.7rem,4vw,4.5rem); line-height: 1.06; }
.intro-copy { padding-top: 35px; }
.intro-copy p:first-child { font-family: "Playfair Display", serif; font-size: 1.35rem; color: var(--green-900); }
.intro-copy p { color: var(--soft); }

.services-section { background: var(--cream); }
.section-title-row { display: grid; grid-template-columns: 1fr .5fr; gap: 80px; align-items: end; margin-bottom: 55px; }
.section-title-row > p { color: var(--soft); }
.services-grid { display: grid; grid-template-columns: repeat(4,1fr); }
.service-card { min-height: 380px; padding: 30px; border-top: 1px solid var(--line); border-right: 1px solid var(--line); position: relative; transition: .25s; }
.service-card:hover { background: var(--green-900); color: #fff; transform: translateY(-8px); }
.service-number { color: #950D37; font-size: .7rem; }
.service-card h3 { margin-top: 80px; font-family: "Playfair Display", serif; font-size: 1.5rem; }
.service-card p { color: var(--soft); font-size: .88rem; }
.service-card:hover p { color: rgba(255,255,255,.65); }
.service-card a { position: absolute; bottom: 28px; left: 30px; font-size: .8rem; font-weight: 600; }

.about-section { background: #fff; }
.about-grid { display: grid; grid-template-columns: .9fr 1fr; gap: 100px; align-items: center; }
.about-photo {
  min-height: 620px;
  background: url("oficina-domus.jpg") center/cover no-repeat;
}
.about-content .large-copy { font-family: "Playfair Display", serif; font-size: 1.3rem; color: var(--green-900); }
.about-content > p:not(.large-copy) { color: var(--soft); }
.benefits { margin-top: 40px; border-top: 1px solid var(--line); }
.benefit { display: grid; grid-template-columns: 48px 1fr; padding: 18px 0; border-bottom: 1px solid var(--line); }
.benefit > span { color: #950D37; font-size: .7rem; }
.benefit p { margin: 4px 0 0; color: var(--soft); font-size: .8rem; }

.process-section { background: var(--green-950); color: #fff; }
.section-kicker-light { color: var(--sage); }
.process-heading h2 span { color: var(--sage); }
.process-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 40px; margin-top: 70px; }
.process-grid article { border-top: 1px solid rgba(255,255,255,.15); padding-top: 24px; }
.process-grid article > span { color: rgba(255,255,255,.35); font-size: .7rem; }
.process-grid h3 { font-family: "Playfair Display", serif; font-size: 1.35rem; margin-top: 38px; }
.process-grid p { color: rgba(255,255,255,.55); font-size: .86rem; }

.cta-section { padding: 100px 0; }
.cta-card { display: grid; grid-template-columns: 1fr .55fr; gap: 70px; padding: 70px; background: var(--green-700); color: #fff; }
.cta-card .section-kicker { color: var(--sage); }
.cta-card p { color: rgba(255,255,255,.65); }
.cta-actions { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 25px; }

.site-footer { padding: 70px 0 25px; background: #3B0718; color: #fff; }
.logo-footer .logo-mark { background: #fff; color: var(--green-900); }
.logo-footer .logo-text small { color: rgba(255,255,255,.45); }
.footer-main { display: grid; grid-template-columns: 1.7fr .8fr .8fr 1fr; gap: 60px; padding-bottom: 55px; }
.footer-main p, .footer-column a { color: rgba(255,255,255,.55); font-size: .78rem; }
.footer-column { display: flex; flex-direction: column; gap: 9px; }
.footer-column > span { color: var(--sage); font-size: .7rem; letter-spacing: .12em; margin-bottom: 8px; }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.1); padding-top: 20px; display: flex; justify-content: space-between; color: rgba(255,255,255,.35); font-size: .7rem; }
.footer-bottom div { display: flex; gap: 20px; }

@media (max-width: 1050px) {
  .main-nav { display: none; }
  .services-grid { grid-template-columns: repeat(2,1fr); }
}

@media (max-width: 820px) {
  .hero-grid, .intro-grid, .section-title-row, .about-grid, .cta-card { grid-template-columns: 1fr; }
  .hero-visual { min-height: 500px; }
  .process-grid { grid-template-columns: repeat(2,1fr); }
  .footer-main { grid-template-columns: repeat(2,1fr); }
}

@media (max-width: 560px) {
  .container { width: min(calc(100% - 30px), var(--container)); }
  .nav-actions { display: none; }
  .hero { padding-top: 50px; }
  .hero h1 { font-size: clamp(3.2rem,15vw,4.6rem); }
  .hero-actions { flex-direction: column; align-items: flex-start; }
  .hero-trust { flex-wrap: wrap; }
  .hero-visual { min-height: 430px; }
  .hero-image { border-radius: 160px 160px 14px 14px; }
  .floating-card { left: -5px; width: min(280px, calc(100vw - 45px)); }
  .services-grid, .process-grid, .footer-main { grid-template-columns: 1fr; }
  .service-card { border-right: none; }
  .about-photo { min-height: 460px; }
  .cta-card { padding: 45px 28px; }
  .footer-bottom { flex-direction: column; gap: 14px; }
}

/* DOMUS corporate identity — sampled from supplied official logo */
.brand-logo { display:block; width:215px; max-width:100%; height:auto; }
.brand-logo-footer { background:#fff; padding:8px 12px; border-radius:3px; }
.button { background:#950D37; border-color:#950D37; }
.button:hover { background:#7B0B2E; border-color:#7B0B2E; }
.hero h1 span, .about-content h2 em { color:#950D37; }
.service-card:hover { background:#950D37; }
.process-section { background:#4A071C; }
.cta-card { background:#950D37; }
.main-nav a:hover, .text-link:hover { color:#950D37; }
@media (max-width:560px) { .brand-logo { width:180px; } }


/* ----------------------------------------------------------
   LANGUAGE SWITCHER
---------------------------------------------------------- */

.language-switcher {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px;
  border: 1px solid rgba(88,88,90,.18);
  background: #fff;
  border-radius: 999px;
}

.lang-btn {
  min-width: 38px;
  height: 34px;
  padding: 0 10px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: #58585A;
  cursor: pointer;
  font: inherit;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .04em;
  transition: background .2s ease, color .2s ease, transform .2s ease;
}

.lang-btn:hover {
  color: #950D37;
}

.lang-btn.active {
  background: #950D37;
  color: #fff;
}

.lang-btn:focus-visible {
  outline: 2px solid #950D37;
  outline-offset: 2px;
}

@media (max-width: 760px) {
  .nav-wrapper {
    gap: 14px;
  }

  .nav-actions {
    display: flex;
    margin-left: auto;
  }

  .nav-actions > .button {
    display: none;
  }

  .language-switcher {
    gap: 2px;
    padding: 3px;
  }

  .lang-btn {
    min-width: 34px;
    height: 32px;
    padding: 0 7px;
    font-size: .68rem;
  }
}

@media (max-width: 430px) {
  .brand-logo {
    width: 150px;
  }

  .lang-btn {
    min-width: 31px;
    padding: 0 5px;
  }
}


/* ----------------------------------------------------------
   CONTACT FORM
---------------------------------------------------------- */
.contact-layout {
  display: grid;
  grid-template-columns: .82fr 1.18fr;
  gap: 70px;
  align-items: start;
  padding: 72px;
  background: #950D37;
  color: #fff;
}

.contact-intro {
  position: sticky;
  top: 120px;
}

.contact-intro .section-kicker {
  color: #F0DCE3;
}

.contact-intro h2 {
  margin: 0;
  font-family: "Playfair Display", serif;
  font-size: clamp(2.6rem, 4vw, 4.4rem);
  line-height: 1.06;
  letter-spacing: -.04em;
}

.contact-intro > p {
  margin-top: 24px;
  color: rgba(255,255,255,.72);
}

.contact-direct {
  margin-top: 42px;
  padding-top: 24px;
  border-top: 1px solid rgba(255,255,255,.22);
}

.contact-direct span,
.contact-direct a {
  display: block;
}

.contact-direct span {
  color: rgba(255,255,255,.58);
  font-size: .76rem;
}

.contact-direct a {
  margin-top: 5px;
  font-size: 1rem;
  font-weight: 600;
}

.contact-form {
  padding: 38px;
  background: #fff;
  color: #343436;
}

.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

.form-field {
  margin-bottom: 20px;
}

.form-field label {
  display: block;
  margin-bottom: 8px;
  color: #343436;
  font-size: .78rem;
  font-weight: 700;
}

.form-field input,
.form-field select,
.form-field textarea {
  width: 100%;
  min-height: 50px;
  padding: 13px 14px;
  border: 1px solid rgba(88,88,90,.24);
  border-radius: 2px;
  background: #fff;
  color: #343436;
  font: inherit;
  font-size: .9rem;
  outline: none;
  transition: border-color .2s ease, box-shadow .2s ease;
}

.form-field textarea {
  min-height: 140px;
  resize: vertical;
}

.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus {
  border-color: #950D37;
  box-shadow: 0 0 0 3px rgba(149,13,55,.10);
}

.privacy-check {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 4px 0 24px;
  color: #58585A;
  font-size: .76rem;
  cursor: pointer;
}

.privacy-check input {
  margin-top: 3px;
  accent-color: #950D37;
}

.contact-submit {
  width: 100%;
  cursor: pointer;
}

.form-note {
  margin: 13px 0 0;
  color: #77777A;
  font-size: .7rem;
  line-height: 1.5;
}

@media (max-width: 900px) {
  .contact-layout {
    grid-template-columns: 1fr;
    gap: 40px;
    padding: 50px 40px;
  }
  .contact-intro {
    position: static;
  }
}

@media (max-width: 600px) {
  .contact-layout {
    margin-inline: -15px;
    padding: 42px 20px;
  }
  .contact-form {
    padding: 26px 20px;
  }
  .form-row {
    grid-template-columns: 1fr;
    gap: 0;
  }
}


/* ----------------------------------------------------------
   EXPANDED SERVICES
---------------------------------------------------------- */
.services-grid-expanded {
  grid-template-columns: repeat(2, 1fr);
  gap: 1px;
  background: rgba(88,88,90,.14);
}

.service-card-expanded {
  min-height: 520px;
  background: #F6F2F3;
  border: 0;
  padding: 38px 36px 76px;
}

.service-card-expanded h3 {
  margin-top: 42px;
  font-size: 1.7rem;
}

.service-card-expanded > p {
  max-width: 520px;
  line-height: 1.75;
}

.service-list {
  margin: 24px 0 0;
  padding: 22px 0 0;
  list-style: none;
  border-top: 1px solid rgba(88,88,90,.15);
}

.service-list li {
  position: relative;
  margin: 0 0 10px;
  padding-left: 20px;
  color: #58585A;
  font-size: .82rem;
  line-height: 1.55;
}

.service-list li::before {
  content: "—";
  position: absolute;
  left: 0;
  color: #950D37;
}

.service-card-expanded:hover .service-list li {
  color: rgba(255,255,255,.76);
}

.service-card-expanded:hover .service-list li::before {
  color: #fff;
}

@media (max-width: 800px) {
  .services-grid-expanded {
    grid-template-columns: 1fr;
  }
  .service-card-expanded {
    min-height: auto;
    padding-bottom: 85px;
  }
}


/* ----------------------------------------------------------
   COLLABORATORS / PARTNERS
---------------------------------------------------------- */
.partners-section {
  padding: 120px 0;
  background: #fff;
}
.partners-heading {
  max-width: 850px;
  margin-bottom: 55px;
}
.partners-heading h2 {
  margin: 0;
  font-family: "Playfair Display", serif;
  font-size: clamp(2.6rem,4vw,4.4rem);
  line-height: 1.07;
  letter-spacing: -.04em;
}
.partners-heading p {
  max-width: 720px;
  margin-top: 22px;
  color: #58585A;
}
.partners-grid {
  display: grid;
  grid-template-columns: repeat(2,1fr);
  gap: 28px;
}
.partner-card {
  border: 1px solid rgba(88,88,90,.15);
  background: #F6F2F3;
}
.partner-logo-wrap {
  height: 180px;
  padding: 35px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  border-bottom: 1px solid rgba(88,88,90,.12);
}
.partner-logo {
  max-width: 270px;
  max-height: 100px;
  width: auto;
  height: auto;
  object-fit: contain;
}
.partner-body {
  padding: 35px;
}
.partner-type {
  color: #950D37;
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .14em;
}
.partner-body h3 {
  margin: 12px 0;
  font-family: "Playfair Display", serif;
  font-size: 1.8rem;
}
.partner-body > p {
  min-height: 78px;
  color: #58585A;
  font-size: .88rem;
}
.partner-contact {
  min-height: 105px;
  margin: 25px 0;
  padding-top: 20px;
  border-top: 1px solid rgba(88,88,90,.15);
}
.partner-contact strong,
.partner-contact a {
  display: block;
}
.partner-contact a {
  margin-top: 5px;
  color: #950D37;
}
.partner-button {
  width: 100%;
}
.partners-note {
  margin: 28px 0 0;
  color: #77777A;
  font-size: .72rem;
}
@media (max-width: 760px) {
  .partners-grid { grid-template-columns: 1fr; }
  .partner-body > p { min-height: auto; }
  .partner-contact { min-height: auto; }
}

/* ----------------------------------------------------------
   TEAM
---------------------------------------------------------- */
.team-section {
  padding: 120px 0;
  background: #fff;
}

.team-heading {
  display: grid;
  grid-template-columns: 1fr .58fr;
  column-gap: 80px;
  align-items: end;
  margin-bottom: 52px;
}

.team-heading .section-kicker { grid-column: 1 / -1; }
.team-heading h2 {
  margin: 0;
  max-width: 780px;
  font-family: "Playfair Display", serif;
  font-weight: 600;
  font-size: clamp(2.7rem, 4vw, 4.5rem);
  line-height: 1.06;
  letter-spacing: -.04em;
}
.team-heading > p { margin: 0 0 8px; color: var(--soft); }

.team-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 36px;
  max-width: 1180px;
}

.team-card {
  display: grid;
  grid-template-columns: 220px 1fr;
  min-height: 270px;
  background: var(--cream);
  border: 1px solid var(--line);
  overflow: hidden;
  transition: transform .25s ease, box-shadow .25s ease;
}
.team-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 50px rgba(74,7,28,.10);
}
.team-photo-wrap { min-height: 270px; background: #1b1b1b; }
.team-photo { width: 100%; height: 100%; object-fit: cover; object-position: center top; display: block; }
.team-info { padding: 34px 28px; display: flex; flex-direction: column; justify-content: center; }
.team-info h3 { margin: 0; font-family: "Playfair Display", serif; font-size: 1.7rem; }
.team-role { margin: 12px 0 24px; color: #950D37; font-weight: 700; }
.team-email { margin-top: auto; font-size: .86rem; overflow-wrap: anywhere; font-weight: 600; }
.team-email:hover { color: #950D37; }

/* Make the official DOMUS logo more prominent in the header. */
.site-header .brand-logo { width: 270px; }
.nav-wrapper { min-height: 92px; }

@media (max-width: 1050px) {
  .team-grid { max-width: 100%; }
}

@media (max-width: 820px) {
  .team-heading { grid-template-columns: 1fr; gap: 18px; }
  .team-grid { grid-template-columns: 1fr; }
  .site-header .brand-logo { width: 230px; }
}

@media (max-width: 560px) {
  .team-section { padding: 90px 0; }
  .team-card { grid-template-columns: 1fr; }
  .team-photo-wrap { min-height: 360px; }
  .site-header .brand-logo { width: 190px; }
  .nav-wrapper { min-height: 78px; }
}

.team-photo-placeholder {
  display: flex; align-items: center; justify-content: center;
  background: linear-gradient(145deg, #4a071c, #950d37);
}
.team-photo-placeholder span {
  color: rgba(255,255,255,.9); font-family: "Playfair Display", serif;
  font-size: 3.5rem; font-weight: 600; letter-spacing: .04em;
}


/* Language flags in team cards */
.team-languages {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
}
.language-flag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 30px;
  font-size: 1.55rem;
  line-height: 1;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 7px;
  box-shadow: 0 3px 10px rgba(74,7,28,.06);
}

/* Service hierarchy: three descending tonal rows; unified strong hover */
.services-grid-expanded .service-card-expanded:nth-child(1),
.services-grid-expanded .service-card-expanded:nth-child(2) {
  background: #E3C9D1;
  box-shadow: inset 5px 0 0 #950D37;
}
.services-grid-expanded .service-card-expanded:nth-child(1) h3,
.services-grid-expanded .service-card-expanded:nth-child(2) h3 { color: #780A2C; }

.services-grid-expanded .service-card-expanded:nth-child(3),
.services-grid-expanded .service-card-expanded:nth-child(4) {
  background: #EEDDE2;
  box-shadow: inset 4px 0 0 #B85B78;
}
.services-grid-expanded .service-card-expanded:nth-child(3) h3,
.services-grid-expanded .service-card-expanded:nth-child(4) h3 { color: #844258; }

.services-grid-expanded .service-card-expanded:nth-child(5),
.services-grid-expanded .service-card-expanded:nth-child(6) {
  background: #F8F4F5;
  box-shadow: inset 3px 0 0 #D9A6B6;
}
.services-grid-expanded .service-card-expanded:nth-child(5) h3,
.services-grid-expanded .service-card-expanded:nth-child(6) h3 { color: #8A5364; }

/* Every service reaches the same highlighted burgundy on hover */
.services-grid-expanded .service-card-expanded:hover {
  background: #950D37;
  color: #fff;
  box-shadow: inset 5px 0 0 #950D37;
}
.services-grid-expanded .service-card-expanded:hover h3 { color: #fff; }
.services-grid-expanded .service-card-expanded:hover p { color: rgba(255,255,255,.65); }

/* Straight edges on all website photos */
.hero-image,
.about-photo,
.team-photo-wrap,
.team-photo,
.partner-logo-wrap,
.partner-logo,
img {
  border-radius: 0 !important;
}

/* DOMUS logo: increased visibility */
.site-header .brand-logo { width: 330px; }
.nav-wrapper { min-height: 104px; }
@media (max-width: 820px) { .site-header .brand-logo { width: 270px; } }
@media (max-width: 560px) { .site-header .brand-logo { width: 220px; } .nav-wrapper { min-height: 84px; } }

/* Redes sociales DOMUS */
.footer-social { display:flex; gap:10px; margin-top:18px; align-items:center; }
.footer-social a { width:38px; height:38px; display:inline-flex; align-items:center; justify-content:center; border:1px solid currentColor; border-radius:0; transition:transform .2s ease, opacity .2s ease; }
.footer-social a:hover { transform:translateY(-2px); opacity:.75; }
.footer-social svg { width:18px; height:18px; fill:currentColor; }


/* ----------------------------------------------------------
   BALANCED MULTILINGUAL HEADER
   Keeps the navigation visually consistent in ES / EN / DE / FR.
---------------------------------------------------------- */
@media (min-width: 1051px) {
  .site-header .nav-wrapper {
    min-height: 96px;
    height: auto;
    display: grid;
    grid-template-columns: 250px minmax(0, 1fr) auto;
    align-items: center;
    gap: 20px;
  }

  .site-header .brand-logo {
    width: 250px;
    max-width: 100%;
  }

  .main-nav {
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: clamp(12px, 1.25vw, 20px);
    font-size: clamp(.72rem, .68vw, .82rem);
    font-weight: 500;
    line-height: 1.15;
    white-space: nowrap;
  }

  .main-nav a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    white-space: nowrap;
    text-align: center;
  }

  .nav-actions {
    gap: 10px;
    white-space: nowrap;
  }

  .language-switcher {
    flex: 0 0 auto;
  }

  .lang-btn {
    min-width: 32px;
    height: 32px;
    padding: 0 7px;
    font-size: .67rem;
  }

  .nav-actions .button-small {
    min-width: 92px;
    min-height: 40px;
    padding: 0 14px;
    font-size: .78rem;
  }
}

/* On medium desktop widths, keep the same composition without crowding. */
@media (min-width: 1051px) and (max-width: 1210px) {
  .site-header .nav-wrapper {
    grid-template-columns: 215px minmax(0, 1fr) auto;
    gap: 14px;
  }
  .site-header .brand-logo { width: 215px; }
  .main-nav { gap: 10px; font-size: .7rem; }
  .nav-actions .button-small { display: none; }
}

/* Barras de desplazamiento integradas con la paleta DOMUS */
html {
  scrollbar-width: thin;
  scrollbar-color: #8b3545 #f2e9e5;
}

::-webkit-scrollbar {
  width: 12px;
  height: 12px;
}

::-webkit-scrollbar-track {
  background: #f2e9e5;
}

::-webkit-scrollbar-thumb {
  background: #8b3545;
  border: 3px solid #f2e9e5;
  border-radius: 0;
}

::-webkit-scrollbar-thumb:hover {
  background: #6f2636;
}

::-webkit-scrollbar-corner {
  background: #f2e9e5;
}

/* Parking benefit */
.parking-benefit { padding: 72px 0; background: var(--cream, #f7f1e8); border-top: 1px solid rgba(59,7,24,.10); }
.parking-benefit-inner { display:grid; grid-template-columns: 1.05fr .95fr; align-items:center; gap:72px; }
.parking-copy h2 { margin:10px 0 18px; color:#3B0718; font-size:clamp(2rem,4vw,3.6rem); line-height:1.02; }
.parking-copy > p { max-width:650px; font-size:1rem; line-height:1.75; }
.parking-address { margin-top:28px; padding-top:22px; border-top:1px solid rgba(59,7,24,.22); display:flex; gap:28px; align-items:flex-start; }
.parking-address strong { color:#3B0718; min-width:155px; }
.parking-address span { line-height:1.6; }
.parking-brand { min-height:230px; display:flex; align-items:center; justify-content:center; padding:42px; background:#fff; border:1px solid rgba(59,7,24,.10); }
.parking-brand img { display:block; width:min(100%, 560px); height:auto; border-radius:0 !important; }
@media (max-width: 850px) {
  .parking-benefit { padding:54px 0; }
  .parking-benefit-inner { grid-template-columns:1fr; gap:34px; }
  .parking-brand { min-height:0; padding:28px; }
}
@media (max-width: 520px) {
  .parking-address { flex-direction:column; gap:8px; }
}

/* ----------------------------------------------------------
   UX / MOBILE / POLISH — 2026 refinement
---------------------------------------------------------- */
:focus-visible { outline: 3px solid rgba(149,13,55,.35); outline-offset: 4px; }
section[id] { scroll-margin-top: 110px; }
.main-nav a { position: relative; transition: color .2s ease; }
.main-nav a::after { content:""; position:absolute; left:0; right:100%; bottom:3px; height:2px; background:#950D37; transition:right .22s ease; }
.main-nav a:hover::after, .main-nav a.is-active::after { right:0; }
.main-nav a.is-active { color:#950D37; }
.hero-phone { display:inline-flex; align-items:center; gap:8px; margin-top:20px; color:#950D37; font-size:.84rem; font-weight:700; }
.hero-phone span { color:#77777A; font-weight:500; }
.button, .service-card a, .team-email, .partner-contact a, .footer-column a { transition:transform .2s ease, color .2s ease, background .2s ease, opacity .2s ease; }
.service-card-expanded { min-height: 455px; }
.service-card-expanded .service-list { padding-left:18px; margin:18px 0 60px; color:#666; font-size:.8rem; }
.service-card-expanded .service-list li { margin:6px 0; }
.service-card-expanded:hover .service-list { color:rgba(255,255,255,.76); }
.contact-direct a { font-size:1.08rem; font-weight:700; margin-top:5px; }
.contact-direct a:hover { color:#fff; opacity:.75; }
.form-status { min-height:1.4em; margin:10px 0 0; font-size:.78rem; }
.menu-toggle { display:none; border:0; background:transparent; width:44px; height:44px; padding:10px; cursor:pointer; }
.menu-toggle span { display:block; width:24px; height:2px; margin:5px auto; background:#3B0718; transition:transform .22s ease, opacity .22s ease; }
.mobile-contact-bar { display:none; }

@media (max-width: 1050px) {
  .site-header .nav-wrapper { min-height:84px; }
  .menu-toggle { display:block; margin-left:auto; order:2; }
  .nav-actions { order:3; }
  .main-nav {
    display:flex;
    position:fixed;
    top:84px;
    left:0;
    right:0;
    z-index:9;
    flex-direction:column;
    gap:0;
    padding:12px 24px 26px;
    background:rgba(248,247,243,.985);
    border-bottom:1px solid rgba(21,32,29,.1);
    box-shadow:0 24px 50px rgba(59,7,24,.12);
    transform:translateY(-130%);
    opacity:0;
    visibility:hidden;
    transition:transform .25s ease, opacity .2s ease, visibility .2s ease;
  }
  .main-nav a { padding:12px 4px; font-size:.95rem; border-bottom:1px solid rgba(21,32,29,.07); }
  .main-nav a::after { display:none; }
  body.menu-open { overflow:hidden; }
  body.menu-open .main-nav { transform:translateY(0); opacity:1; visibility:visible; }
  body.menu-open .menu-toggle span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
  body.menu-open .menu-toggle span:nth-child(2) { opacity:0; }
  body.menu-open .menu-toggle span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }
}

@media (max-width: 760px) {
  body { padding-bottom:66px; }
  .site-header .brand-logo { width:190px; }
  .nav-wrapper { min-height:76px; }
  .main-nav { top:76px; }
  .nav-actions .language-switcher { display:none; }
  .menu-toggle { margin-left:auto; }
  .mobile-contact-bar {
    position:fixed;
    left:0; right:0; bottom:0;
    z-index:50;
    display:grid;
    grid-template-columns:1fr 1fr;
    min-height:66px;
    background:#3B0718;
    box-shadow:0 -10px 30px rgba(59,7,24,.18);
  }
  .mobile-contact-bar a { display:grid; place-items:center; color:#fff; font-weight:700; font-size:.9rem; }
  .mobile-contact-bar a + a { background:#950D37; }
  .hero { padding-top:42px; }
  .hero h1 { font-size:clamp(3rem,14vw,4.7rem); }
  .hero-intro { font-size:1rem; }
  .hero-trust { margin-top:42px; gap:24px; }
  .intro-section, .services-section, .about-section, .process-section, .team-section { padding:84px 0; }
  .contact-layout { padding:42px 24px; gap:40px; }
  .contact-intro { position:static; }
  .service-card-expanded { min-height:0; padding-bottom:82px; }
}

@media (max-width: 430px) {
  .site-header .brand-logo { width:168px; }
  .hero-trust { display:grid; grid-template-columns:1fr 1fr; }
  .hero-visual { min-height:390px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}

/* ----------------------------------------------------------
   IN-PAGE NEWS / LEGAL / PRIVACY MODALS
---------------------------------------------------------- */
.nav-modal-link,
.footer-modal-link,
.footer-legal-links button,
.inline-legal-link,
.text-button {
  appearance:none; border:0; padding:0; background:transparent; color:inherit; font:inherit; cursor:pointer;
}
.nav-modal-link { display:inline-flex; align-items:center; min-height:38px; font-size:inherit; font-weight:500; white-space:nowrap; position:relative; }
.nav-modal-link:hover, .footer-modal-link:hover, .footer-legal-links button:hover, .inline-legal-link:hover, .text-button:hover { color:#D9A6B6; }
.footer-modal-link { text-align:left; color:rgba(255,255,255,.55); font-size:.78rem; }
.footer-legal-links { display:flex; flex-wrap:wrap; gap:20px; }
.footer-legal-links button { color:rgba(255,255,255,.45); font-size:.7rem; }
.inline-legal-link { color:#950D37; text-decoration:underline; text-underline-offset:3px; }
body.modal-open { overflow:hidden; }
.site-modal { position:fixed; inset:0; z-index:200; display:grid; place-items:center; padding:24px; opacity:0; visibility:hidden; transition:opacity .2s ease, visibility .2s ease; }
.site-modal.is-open { opacity:1; visibility:visible; }
.site-modal-backdrop { position:absolute; inset:0; background:rgba(35,5,15,.72); backdrop-filter:blur(5px); }
.site-modal-panel { position:relative; width:min(760px, 100%); max-height:min(86vh, 880px); overflow:auto; background:#fff; color:#23151a; box-shadow:0 30px 90px rgba(25,0,9,.32); outline:none; transform:translateY(14px) scale(.99); transition:transform .22s ease; }
.site-modal.is-open .site-modal-panel { transform:none; }
.site-modal-panel-wide { width:min(1080px, 100%); }
.site-modal-panel-legal { width:min(900px, 100%); }
.site-modal-header { position:sticky; top:0; z-index:2; display:flex; justify-content:space-between; gap:24px; align-items:flex-start; padding:30px 34px 24px; background:rgba(255,255,255,.97); border-bottom:1px solid rgba(59,7,24,.10); }
.site-modal-header h2 { margin:3px 0 0; font-family:"Playfair Display",serif; color:#3B0718; font-size:clamp(2rem,5vw,3.2rem); line-height:1; }
.modal-kicker { color:#950D37; font-size:.68rem; font-weight:700; letter-spacing:.14em; }
.site-modal-close { flex:0 0 44px; width:44px; height:44px; border:1px solid rgba(59,7,24,.14); background:#fff; color:#3B0718; font-size:2rem; line-height:1; cursor:pointer; }
.site-modal-close:hover { background:#950D37; color:#fff; }
.site-modal-content { padding:30px 34px 38px; }
.modal-lead { margin:0 0 30px; max-width:780px; color:#61565a; font-size:1.02rem; line-height:1.75; }
.news-modal-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.news-modal-card { display:flex; min-height:330px; flex-direction:column; padding:26px; background:#F8F4F5; border-top:4px solid #950D37; }
.news-modal-card > span { color:#950D37; font-size:.66rem; font-weight:700; letter-spacing:.12em; }
.news-modal-card h3 { margin:24px 0 12px; font-family:"Playfair Display",serif; color:#3B0718; font-size:1.5rem; line-height:1.12; }
.news-modal-card p { color:#6a6063; font-size:.86rem; line-height:1.65; }
.news-modal-card a { margin-top:auto; color:#950D37; font-weight:700; font-size:.8rem; }
.modal-note { margin-top:26px; padding:18px 20px; background:#F4ECEF; border-left:4px solid #D9A6B6; color:#65575c; font-size:.8rem; line-height:1.6; }
.legal-copy h3 { margin:30px 0 8px; color:#3B0718; font-family:"Playfair Display",serif; font-size:1.25rem; }
.legal-copy p { color:#60565a; line-height:1.75; font-size:.9rem; }
.legal-copy a { color:#950D37; text-decoration:underline; }
.preference-row { display:flex; justify-content:space-between; align-items:center; gap:28px; padding:20px 0; border-top:1px solid rgba(59,7,24,.11); }
.preference-row strong { color:#3B0718; }
.preference-row p { margin:4px 0 0; color:#71666a; font-size:.8rem; line-height:1.5; }
.preference-required { flex:0 0 auto; color:#950D37; font-size:.72rem; font-weight:700; }
.privacy-toggle { width:46px; height:24px; flex:0 0 46px; accent-color:#950D37; cursor:pointer; }
.modal-small { color:#776b6f; font-size:.75rem; line-height:1.6; }
.modal-actions { display:flex; justify-content:flex-end; gap:12px; margin-top:26px; flex-wrap:wrap; }
.button-secondary { background:#fff; color:#950D37; border:1px solid #950D37; }
.button-secondary:hover { background:#F8F4F5; color:#7B0B2E; }
.privacy-banner { position:fixed; left:24px; right:24px; bottom:24px; z-index:150; display:flex; justify-content:space-between; align-items:center; gap:26px; max-width:1100px; margin:0 auto; padding:20px 22px; background:#3B0718; color:#fff; box-shadow:0 22px 70px rgba(33,0,12,.3); }
.privacy-banner[hidden] { display:none; }
.privacy-banner strong { font-family:"Playfair Display",serif; font-size:1.1rem; }
.privacy-banner p { margin:5px 0 0; color:rgba(255,255,255,.68); font-size:.78rem; line-height:1.5; }
.privacy-banner-actions { display:flex; align-items:center; gap:14px; flex:0 0 auto; }
.privacy-banner .text-button { color:#fff; text-decoration:underline; text-underline-offset:3px; font-size:.8rem; }
@media (max-width:1050px) { .nav-modal-link { width:100%; padding:12px 4px; border-bottom:1px solid rgba(21,32,29,.07); font-size:.95rem; } }
@media (max-width:760px) {
  .site-modal { padding:0; align-items:end; }
  .site-modal-panel { width:100%; max-height:92vh; }
  .site-modal-header { padding:22px 20px 18px; }
  .site-modal-content { padding:24px 20px 30px; }
  .news-modal-grid { grid-template-columns:1fr; }
  .news-modal-card { min-height:0; }
  .preference-row { align-items:flex-start; }
  .privacy-banner { left:0; right:0; bottom:66px; padding:17px 18px; flex-direction:column; align-items:stretch; }
  .privacy-banner-actions { justify-content:space-between; }
  .footer-legal-links { gap:12px 18px; }
}
\n\n/* Mobile-first hardening and small-screen usability */\nhtml { -webkit-text-size-adjust: 100%; scroll-padding-top: 110px; }\nbody { overflow-x: hidden; }\nimg, picture, video, iframe { max-width: 100%; height: auto; }\ninput, select, textarea, button { max-width: 100%; }\n\n@media (max-width: 760px) {\n  .container { width: min(100% - 32px, 1180px); }\n  h1 { font-size: clamp(2.25rem, 11vw, 3.6rem); line-height: .98; overflow-wrap: anywhere; }\n  h2 { font-size: clamp(1.9rem, 9vw, 2.8rem); line-height: 1.05; }\n  h3 { overflow-wrap: anywhere; }\n  p, li, a, button, label, input, textarea, select { overflow-wrap: anywhere; }\n  .hero { min-height: auto; padding-top: 30px; }\n  .hero-grid, .intro-grid, .section-title-row, .contact-grid, .footer-grid { grid-template-columns: 1fr !important; }\n  .hero-content, .intro-copy, .section-title-row > *, .contact-grid > * { min-width: 0; }\n  .hero-actions { align-items: stretch; }\n  .hero-actions .button, .hero-actions .text-link { width: 100%; justify-content: center; text-align: center; }\n  .hero-phone { display: inline-flex; flex-wrap: wrap; gap: 4px 8px; }\n  .hero-trust { grid-template-columns: 1fr; gap: 12px; }\n  .services-grid, .team-grid, .partners-grid { grid-template-columns: 1fr !important; }\n  .service-card, .team-card, .partner-card { min-width: 0; }\n  .contact-form input, .contact-form textarea, .contact-form select { width: 100%; font-size: 16px; }\n  .contact-form .button { width: 100%; }\n  .footer-bottom { flex-direction: column; align-items: flex-start; gap: 14px; }\n  .site-modal-panel { border-radius: 20px 20px 0 0; }\n  .site-modal-content { overflow-x: hidden; }\n  .modal-actions { flex-direction: column; }\n  .modal-actions .button, .modal-actions button { width: 100%; }\n  .privacy-banner-actions { flex-wrap: wrap; }\n  .privacy-banner-actions .button { flex: 1 1 140px; }\n}\n\n@media (max-width: 430px) {\n  .container { width: min(100% - 24px, 1180px); }\n  .site-header .brand-logo { width: min(190px, 58vw); }\n  .nav-wrapper { min-height: 74px; }\n  .language-switcher { flex-wrap: wrap; }\n  .lang-btn { min-width: 38px; min-height: 38px; }\n  .button, button { min-height: 44px; }\n  .privacy-banner { bottom: 0; }\n  .privacy-banner-actions { flex-direction: column; align-items: stretch; }\n  .privacy-banner-actions > * { width: 100%; text-align: center; }\n  .preference-row { gap: 14px; }\n}\n

/* Google reviews */
.reviews-section { padding:96px 0; background:#F8F4F5; }
.reviews-inner { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr); gap:72px; align-items:center; }
.reviews-copy h2 { margin:14px 0 22px; font-family:"Playfair Display",serif; color:#3B0718; font-size:clamp(2.35rem,4vw,4rem); line-height:1.02; }
.reviews-copy p { max-width:680px; margin:0; color:#655a5e; font-size:1rem; line-height:1.75; }
.google-review-summary { padding:34px; background:#fff; border-top:4px solid #950D37; box-shadow:0 18px 55px rgba(59,7,24,.08); }
.google-review-brand { display:flex; align-items:center; gap:10px; color:#3B0718; font-size:1rem; }
.google-g { display:grid; place-items:center; width:34px; height:34px; border-radius:50%; border:1px solid rgba(59,7,24,.12); font:700 1.2rem Arial,sans-serif; }
.google-review-rating { display:flex; align-items:center; gap:14px; margin-top:24px; }
.google-review-rating strong { color:#3B0718; font-family:"Playfair Display",serif; font-size:3rem; line-height:1; }
.google-stars { color:#E6A900; font-size:1.2rem; letter-spacing:2px; }
.google-review-summary p { margin:8px 0 24px; color:#74686c; font-size:.86rem; }
.google-review-summary .button { width:100%; justify-content:center; text-align:center; }
@media (max-width:760px) {
  .reviews-section { padding:68px 0; }
  .reviews-inner { grid-template-columns:1fr; gap:32px; }
  .google-review-summary { padding:26px 22px; }
}

/* ----------------------------------------------------------
   COMPACT LAYOUT — DOMUS
   Reduced vertical rhythm while preserving readability.
---------------------------------------------------------- */
:root { --container: 1180px; }

.nav-wrapper { min-height: 84px; }
.site-header .brand-logo { width: 285px; }
.main-nav { gap: 20px; font-size: .82rem; }
.nav-actions { gap: 12px; }

.hero { min-height: auto; padding: 52px 0 64px; }
.hero-grid { gap: 48px; }
.hero h1 { font-size: clamp(3.25rem, 5.2vw, 5.4rem); }
.hero-intro { margin-top: 22px; }
.hero-actions { margin-top: 26px; }
.hero-trust { margin-top: 34px; padding-top: 18px; }
.hero-visual { min-height: 500px; }
.floating-card { bottom: 24px; }

.intro-section,
.services-section,
.about-section,
.process-section,
.partners-section,
.team-section { padding: 76px 0; }

.section-kicker { margin-bottom: 12px; }
.intro-grid { gap: 64px; }
.intro-copy { padding-top: 18px; }
.intro-copy p { margin-top: 10px; margin-bottom: 10px; }
.intro-section h2,
.section-title-row h2,
.about-content h2,
.process-heading h2,
.cta-card h2 { font-size: clamp(2.35rem, 3.4vw, 3.8rem); }

.section-title-row { gap: 54px; margin-bottom: 34px; }
.services-grid-expanded { gap: 1px; }
.service-card-expanded { min-height: 410px; padding: 28px 30px 62px; }
.service-card-expanded h3 { margin-top: 26px; font-size: 1.5rem; }
.service-card-expanded > p { line-height: 1.6; margin-bottom: 0; }
.service-list { margin-top: 16px; padding-top: 15px; }
.service-list li { margin-bottom: 6px; line-height: 1.4; }
.service-card a { bottom: 20px; left: 30px; }

.partners-heading { margin-bottom: 32px; }
.partners-heading h2 { font-size: clamp(2.3rem, 3.4vw, 3.8rem); }
.partners-heading p { margin-top: 14px; }
.partners-grid { gap: 20px; }
.partner-logo-wrap { height: 140px; padding: 24px; }
.partner-logo { max-height: 82px; }
.partner-body { padding: 26px; }
.partner-body h3 { font-size: 1.55rem; }
.partner-body > p { min-height: 58px; }
.partner-contact { min-height: 84px; margin: 18px 0; padding-top: 15px; }
.partners-note { margin-top: 18px; }

.about-grid { gap: 64px; }
.about-photo { min-height: 500px; }
.benefits { margin-top: 26px; }
.benefit { padding: 13px 0; }

.team-heading { column-gap: 54px; margin-bottom: 32px; }
.team-heading h2 { font-size: clamp(2.35rem, 3.4vw, 3.8rem); }
.team-grid { gap: 22px; }
.team-card { grid-template-columns: 190px 1fr; min-height: 230px; }
.team-photo-wrap { min-height: 230px; }
.team-info { padding: 24px 22px; }
.team-info h3 { font-size: 1.5rem; }
.team-role { margin: 8px 0 16px; }
.team-languages { margin-top: 12px; padding-top: 10px; gap: 6px; }
.language-flag { width: 34px; height: 27px; font-size: 1.35rem; }

.process-grid { gap: 28px; margin-top: 42px; }
.process-grid article { padding-top: 18px; }
.process-grid h3 { margin-top: 24px; }

.reviews-section { padding: 64px 0; }
.reviews-inner { gap: 48px; }
.reviews-copy h2 { margin: 10px 0 14px; font-size: clamp(2.25rem, 3.4vw, 3.6rem); }
.reviews-copy p { line-height: 1.6; }
.google-review-summary { padding: 26px; }
.google-review-rating { margin-top: 16px; }
.google-review-rating strong { font-size: 2.6rem; }
.google-review-summary p { margin-bottom: 18px; }

.cta-section { padding: 64px 0; }
.cta-card { gap: 46px; padding: 48px; }
.site-footer { padding-top: 48px; }
.footer-main { gap: 42px; padding-bottom: 36px; }

@media (max-width: 820px) {
  .site-header .brand-logo { width: 230px; }
  .nav-wrapper { min-height: 78px; }
  .hero { padding: 36px 0 46px; }
  .hero-grid { gap: 34px; }
  .hero-visual { min-height: 420px; }
  .intro-section,
  .services-section,
  .about-section,
  .process-section,
  .partners-section,
  .team-section { padding: 58px 0; }
  .about-photo { min-height: 420px; }
  .team-card { grid-template-columns: 180px 1fr; }
}

@media (max-width: 560px) {
  .site-header .brand-logo { width: 190px; }
  .nav-wrapper { min-height: 72px; }
  .hero { padding: 28px 0 36px; }
  .hero h1 { font-size: clamp(2.65rem, 13vw, 3.65rem); }
  .hero-intro { margin-top: 16px; }
  .hero-actions { gap: 16px; margin-top: 20px; }
  .hero-trust { margin-top: 26px; }
  .hero-visual { min-height: 350px; }
  .intro-section,
  .services-section,
  .about-section,
  .process-section,
  .partners-section,
  .team-section { padding: 46px 0; }
  .section-title-row,
  .team-heading,
  .partners-heading { margin-bottom: 24px; }
  .service-card-expanded { padding: 24px 22px 58px; }
  .service-card a { left: 22px; }
  .partner-logo-wrap { height: 120px; }
  .partner-body { padding: 22px; }
  .about-photo { min-height: 340px; }
  .team-card { grid-template-columns: 1fr; }
  .team-photo-wrap { min-height: 300px; }
  .team-info { padding: 22px; }
  .reviews-section { padding: 46px 0; }
  .reviews-inner { gap: 24px; }
  .cta-section { padding: 46px 0; }
  .cta-card { padding: 34px 24px; gap: 28px; }
  .site-footer { padding-top: 40px; }
}

/* Compact Torrevieja weather badge */
.hero-meta-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:4px}
.hero-meta-row .eyebrow{margin:0}
.weather-badge{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--green-700);font-size:.74rem;white-space:nowrap}
.weather-badge-icon{font-size:.95rem}.weather-badge strong{color:#950D37}.weather-badge small{color:var(--soft);font-size:.65rem}
@media(max-width:560px){.hero-meta-row{gap:10px}.weather-badge{font-size:.7rem;padding:5px 9px}.weather-badge small{display:none}}

/* SEO service landing pages */
.service-landing{padding:88px 0 110px;background:#fbfaf7}.service-landing .breadcrumbs{font-size:.82rem;color:var(--soft);margin-bottom:34px}.service-landing .breadcrumbs a{text-decoration:underline;text-underline-offset:3px}.landing-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:70px;align-items:start}.landing-kicker{display:block;color:#950D37;font-size:.76rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;margin-bottom:18px}.service-landing h1{font-family:"Playfair Display",serif;font-size:clamp(3rem,5vw,5.4rem);line-height:1;margin:0 0 28px;color:#950D37}.landing-lead{font-size:1.15rem;line-height:1.75;color:var(--soft);max-width:760px}.landing-panel{background:#fff;border:1px solid var(--line);padding:34px;border-radius:18px;position:sticky;top:110px}.landing-panel h2,.landing-content h2{font-family:"Playfair Display",serif}.landing-panel ul{padding-left:20px;line-height:1.8}.landing-cta{display:inline-block;margin-top:18px;background:#950D37;color:#fff!important;padding:14px 20px;border-radius:999px;font-weight:700}.landing-content{margin-top:64px;max-width:820px}.landing-content section{padding:30px 0;border-top:1px solid var(--line)}.landing-content h2{font-size:2rem;margin:0 0 12px}.landing-content p{color:var(--soft);line-height:1.75}.landing-note{font-size:.84rem;color:var(--soft);margin-top:35px}.service-card .service-detail-link{position:static;display:inline-flex;margin-top:18px;font-weight:700}.service-card-expanded{display:flex;flex-direction:column}.service-card-expanded>a{position:static!important;margin-top:auto;padding-top:20px}@media(max-width:850px){.landing-grid{grid-template-columns:1fr}.landing-panel{position:static}.service-landing{padding-top:55px}}

/* SEO service language switch */
.service-lang-switch{display:flex;gap:6px;align-items:center;margin-left:auto}.service-lang-switch .lang-link{font-size:12px;font-weight:700;letter-spacing:.06em;text-decoration:none;border:1px solid rgba(120,20,50,.22);border-radius:999px;padding:5px 7px;color:inherit}.service-lang-switch .lang-link.active{background:#8f0d36;color:#fff;border-color:#8f0d36}@media(max-width:900px){.service-lang-switch{order:3;width:100%;justify-content:center;margin:6px 0}.header-inner{flex-wrap:wrap}}
