:root {
  --graphite: #22313F;
  --graphite-soft: #33434A;
  --sage: #6F887B;
  --sage-light: #A8B8A4;
  --warm-white: #F7F6F3;
  --beige: #EFEAE2;
  --beige-deep: #E6DED2;
  --white: #FFFFFF;
  --line: #DCDDD8;
  --muted: #5F6A6E;
  --shadow: 0 14px 32px rgba(34, 49, 63, 0.07);
  --max: 1240px;
  --serif: Georgia, "Times New Roman", serif;
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: var(--warm-white);
  color: var(--graphite);
  font-family: var(--sans);
  font-size: 15px;
  line-height: 1.55;
}

img {
  display: block;
  max-width: 100%;
}

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

button,
input,
select,
textarea {
  font: inherit;
}

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

.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 1000;
}

.skip-link:focus {
  left: 16px;
  top: 16px;
  padding: 10px 14px;
  background: var(--graphite);
  color: var(--white);
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(247, 246, 243, 0.96);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(34, 49, 63, 0.06);
}

.header-inner {
  min-height: 76px;
  display: grid;
  grid-template-columns: 210px 1fr auto;
  gap: 24px;
  align-items: center;
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-width: max-content;
}

.brand-symbol {
  width: 44px;
  height: 44px;
}

.brand-word {
  display: grid;
  line-height: 1;
}

.brand-word strong {
  font-size: 20px;
  font-weight: 500;
  letter-spacing: 0.26em;
}

.brand-word small {
  margin-top: 7px;
  color: var(--sage);
  font-size: 7px;
  font-weight: 600;
  letter-spacing: 0.24em;
}

.main-nav {
  display: flex;
  justify-content: center;
  gap: 30px;
}

.main-nav a {
  position: relative;
  font-size: 12px;
  font-weight: 600;
}

.main-nav a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: -11px;
  height: 2px;
  background: var(--sage);
  transition: right 0.2s ease;
}

.main-nav a:hover::after,
.main-nav a.is-active::after {
  right: 0;
}

.header-cta {
  display: flex;
  align-items: center;
  gap: 16px;
}

.phone-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
}

.phone-icon {
  font-size: 15px;
}

.menu-toggle {
  display: none;
  border: 0;
  background: transparent;
  padding: 8px;
}

.menu-toggle > span:not(.sr-only) {
  display: block;
  width: 24px;
  height: 2px;
  margin: 5px 0;
  background: var(--graphite);
}

.btn {
  min-height: 46px;
  padding: 0 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  border: 1px solid transparent;
  border-radius: 2px;
  font-size: 11px;
  font-weight: 750;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  transition: 0.2s ease;
}

.btn:hover {
  transform: translateY(-1px);
}

.btn-dark {
  background: var(--graphite);
  color: var(--white);
  box-shadow: 0 7px 18px rgba(34, 49, 63, 0.12);
}

.btn-dark:hover {
  background: #17242A;
}

.btn-sage {
  background: var(--sage);
  color: var(--white);
}

.btn-sage:hover {
  background: #60766B;
}

.btn-outline {
  border-color: #AEB8B2;
  background: transparent;
  color: var(--graphite);
}

.btn-outline:hover {
  background: var(--graphite);
  color: var(--white);
}

.btn-compact {
  min-height: 44px;
  padding-inline: 17px;
}

.btn-full {
  width: 100%;
}

.hero {
  overflow: hidden;
}

.hero-grid {
  min-height: 590px;
  display: grid;
  grid-template-columns: 48% 52%;
}

.hero-copy {
  position: relative;
  z-index: 2;
  padding: 70px 28px 28px 0;
}

.hero h1 {
  margin: 0 0 24px;
  font-family: var(--serif);
  font-size: clamp(46px, 4.8vw, 70px);
  font-weight: 400;
  line-height: 1.05;
  letter-spacing: -0.035em;
}

.hero h1 span {
  color: var(--sage);
}

.hero-text {
  max-width: 525px;
  margin: 0;
  color: #3C484D;
  font-size: 15px;
}

.hero-actions {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  margin: 28px 0 40px;
}

.hero-pillars {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
}

.pillar {
  display: grid;
  grid-template-columns: 30px 1fr;
  gap: 8px;
  align-items: center;
  color: var(--graphite);
  font-size: 10px;
}

.pillar-icon {
  color: var(--sage);
  font-size: 25px;
  line-height: 1;
}

.hero-media {
  position: relative;
  min-height: 590px;
  margin-right: calc((100vw - min(var(--max), calc(100vw - 48px))) / -2);
  overflow: hidden;
}

.hero-media > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hero-cut {
  position: absolute;
  inset: 0 auto 0 0;
  z-index: 2;
  width: 30%;
  background: var(--warm-white);
  clip-path: polygon(0 0, 100% 0, 0 100%);
}

.section-title {
  margin: 0;
  font-family: var(--serif);
  font-size: 30px;
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: -0.02em;
}

.centered {
  text-align: center;
}

.section-rule {
  display: block;
  width: 28px;
  height: 2px;
  margin: 12px auto 24px;
  background: var(--sage);
}

.differentiators {
  padding-top: 34px;
  background: linear-gradient(90deg, #F1EEE7, #F7F6F3 47%, #ECE8DE);
}

.differentiator-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 14px;
}

.differentiator-card {
  min-height: 205px;
  padding: 25px 18px;
  background: rgba(255, 255, 255, 0.7);
  border: 1px solid rgba(34, 49, 63, 0.05);
  text-align: center;
}

.line-icon {
  min-height: 46px;
  display: grid;
  place-items: center;
  color: var(--sage);
  font-size: 42px;
  line-height: 1;
}

.differentiator-card h3 {
  margin: 9px 0 10px;
  font-size: 14px;
  line-height: 1.3;
}

.differentiator-card p {
  margin: 0;
  color: var(--muted);
  font-size: 10.5px;
}

.commitment-banner {
  margin-top: 12px;
  padding: 13px 20px;
  background: var(--sage);
  color: var(--white);
  text-align: center;
  font-size: 12px;
  font-weight: 650;
}

.commitment-banner span {
  margin-right: 9px;
  font-size: 18px;
}

.process-section {
  padding: 34px 0 40px;
  background: #FBFAF8;
}

.process-list {
  position: relative;
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 18px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.process-list::before {
  content: "";
  position: absolute;
  top: 36px;
  left: 7%;
  right: 7%;
  height: 1px;
  background: #D5D1C9;
}

.process-step {
  position: relative;
  text-align: center;
}

.process-circle {
  position: relative;
  z-index: 2;
  width: 72px;
  height: 72px;
  margin: 0 auto;
  display: grid;
  place-items: center;
  border: 1px solid #D7D1C8;
  border-radius: 50%;
  background: #FBFAF8;
  color: var(--sage);
  font-size: 30px;
}

.step-number {
  display: block;
  margin: 10px 0 6px;
  font-size: 10px;
  font-weight: 750;
}

.process-step h3 {
  margin: 0 0 8px;
  font-size: 12px;
}

.process-step p {
  max-width: 160px;
  margin: 0 auto;
  color: var(--muted);
  font-size: 10px;
}

.case-study {
  padding: 28px 0 40px;
  background: #F3EFE8;
}

.case-grid {
  display: grid;
  grid-template-columns: 1.3fr 0.7fr;
  gap: 34px;
}

.case-gallery .section-title {
  margin-bottom: 12px;
}

.case-images {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}

.case-images figure {
  margin: 0;
}

.case-images img,
.plan-placeholder {
  width: 100%;
  height: 235px;
  object-fit: cover;
  background: var(--white);
}

.plan-placeholder {
  display: grid;
  place-items: center;
  padding: 10px;
  color: #74857C;
  border: 1px solid #D6D8D4;
}

.plan-placeholder svg {
  width: 100%;
  height: 100%;
}

.case-images figcaption {
  margin-top: 8px;
  text-align: center;
  font-size: 10px;
  font-weight: 650;
}

.case-info {
  padding-top: 40px;
}

.case-info p {
  color: #475459;
  font-size: 11.5px;
}

.project-facts {
  display: grid;
  gap: 6px;
  margin: 16px 0;
  font-size: 10.5px;
}

.project-facts div {
  display: grid;
  grid-template-columns: 76px 1fr;
  gap: 8px;
}

.project-facts dt {
  color: var(--muted);
}

.project-facts dd {
  margin: 0;
  font-weight: 600;
}

.projects-section {
  padding: 28px 0 34px;
  background: #FBFAF8;
}

.section-heading-row {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 20px;
  margin-bottom: 16px;
}

.text-link {
  color: var(--sage);
  font-size: 10px;
  font-weight: 750;
  text-transform: uppercase;
}

.project-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.project-card {
  overflow: hidden;
  background: var(--white);
  border: 1px solid var(--line);
}

.project-card > img {
  width: 100%;
  height: 175px;
  object-fit: cover;
}

.project-card-body {
  padding: 15px 16px 18px;
}

.project-card h3 {
  margin: 0 0 4px;
  font-size: 13px;
}

.project-card p {
  margin: 0 0 12px;
  color: var(--muted);
  font-size: 10.5px;
}

.tag-row {
  display: flex;
  gap: 8px;
  margin-bottom: 14px;
}

.tag-row span {
  padding: 4px 7px;
  background: #F0EEE9;
  font-size: 9px;
}

.project-card a {
  color: var(--sage);
  font-size: 10px;
  font-weight: 750;
  text-transform: uppercase;
}

.closing-section {
  background: linear-gradient(90deg, #F3EEE7, #FBFAF8);
}

.closing-grid {
  display: grid;
  grid-template-columns: 1fr 1.2fr 1.15fr;
}

.closing-column {
  padding: 34px 34px 34px 0;
}

.closing-column + .closing-column {
  padding-left: 34px;
  border-left: 1px solid var(--line);
}

.closing-column h2 {
  margin: 0 0 15px;
  font-family: var(--serif);
  font-size: 25px;
  font-weight: 400;
  line-height: 1.2;
}

.closing-column p {
  color: var(--muted);
  font-size: 10.5px;
}

.faq-list details {
  border-bottom: 1px solid var(--line);
}

.faq-list summary {
  cursor: pointer;
  list-style: none;
  padding: 10px 0;
  font-size: 10.5px;
  font-weight: 650;
}

.faq-list summary::-webkit-details-marker {
  display: none;
}

.faq-list summary::after {
  content: "+";
  float: right;
  font-size: 16px;
  line-height: 1;
}

.faq-list details[open] summary::after {
  content: "−";
}

.faq-list details p {
  margin-top: 0;
  padding-right: 20px;
}

.lead-form {
  display: grid;
  gap: 9px;
}

.form-two {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 9px;
}

.lead-form label {
  display: grid;
  gap: 5px;
}

.lead-form label > span {
  font-size: 9px;
  color: var(--muted);
}

.lead-form input,
.lead-form select,
.lead-form textarea {
  width: 100%;
  padding: 10px;
  border: 1px solid #D6D9D4;
  border-radius: 0;
  background: var(--white);
  color: var(--graphite);
  outline: none;
  font-size: 10.5px;
}

.lead-form input:focus,
.lead-form select:focus,
.lead-form textarea:focus {
  border-color: var(--sage);
  box-shadow: 0 0 0 3px rgba(111, 136, 123, 0.12);
}

.privacy-row {
  display: flex !important;
  grid-template-columns: auto 1fr;
  align-items: start;
  gap: 8px !important;
}

.privacy-row input {
  width: auto;
  margin-top: 2px;
}

.form-status {
  min-height: 15px;
  margin: 0;
  color: var(--sage);
  font-size: 10px;
}

.site-footer {
  padding: 38px 0 16px;
  background: var(--graphite);
  color: #DFE5E1;
}

.footer-grid {
  display: grid;
  grid-template-columns: 1.45fr repeat(4, 1fr);
  gap: 38px;
}

.brand-negative .brand-word strong {
  color: var(--white);
}

.footer-brand p,
.footer-column a,
.footer-column span {
  display: block;
  margin: 4px 0;
  color: #C8D0CC;
  font-size: 10px;
}

.footer-column h3 {
  margin: 0 0 10px;
  color: var(--white);
  font-size: 10px;
  text-transform: uppercase;
}

.socials {
  display: flex;
  gap: 8px;
  margin-top: 14px;
}

.socials a {
  width: 26px;
  height: 26px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.35);
  border-radius: 50%;
  font-size: 9px;
}

.copyright {
  margin-top: 25px;
  padding-top: 14px;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  color: #AAB5AF;
  text-align: center;
  font-size: 9px;
}

.mobile-actions {
  display: none;
}

@media (max-width: 1080px) {
  .main-nav {
    gap: 18px;
  }

  .phone-link {
    display: none;
  }

  .hero-pillars {
    grid-template-columns: 1fr 1fr;
  }

  .differentiator-grid {
    grid-template-columns: repeat(3, 1fr);
  }

  .process-list {
    grid-template-columns: repeat(3, 1fr);
    row-gap: 28px;
  }

  .process-list::before {
    display: none;
  }

  .closing-grid {
    grid-template-columns: 1fr;
  }

  .closing-column + .closing-column {
    padding-left: 0;
    border-left: 0;
    border-top: 1px solid var(--line);
  }

  .footer-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 860px) {
  .site-container {
    width: calc(100% - 30px);
  }

  .header-inner {
    grid-template-columns: 1fr auto;
  }

  .menu-toggle {
    display: block;
  }

  .main-nav {
    display: none;
    position: absolute;
    left: 0;
    right: 0;
    top: 76px;
    padding: 22px;
    flex-direction: column;
    background: var(--warm-white);
    border-bottom: 1px solid var(--line);
  }

  .main-nav.is-open {
    display: flex;
  }

  .header-cta {
    display: none;
  }

  .hero-grid,
  .case-grid {
    grid-template-columns: 1fr;
  }

  .hero-copy {
    padding-right: 0;
  }

  .hero-media {
    min-height: 420px;
    margin-right: 0;
  }

  .hero-cut {
    display: none;
  }

  .case-info {
    padding-top: 0;
  }

  .project-grid {
    grid-template-columns: 1fr;
  }

  .project-card {
    display: grid;
    grid-template-columns: 42% 58%;
  }

  .project-card > img {
    height: 100%;
    min-height: 210px;
  }
}

@media (max-width: 640px) {
  .brand-word strong {
    font-size: 17px;
  }

  .brand-symbol {
    width: 38px;
    height: 38px;
  }

  .hero-copy {
    padding-top: 42px;
  }

  .hero h1 {
    font-size: 42px;
  }

  .hero-actions {
    display: grid;
  }

  .hero-actions .btn {
    width: 100%;
  }

  .differentiator-grid,
  .process-list,
  .form-two,
  .footer-grid {
    grid-template-columns: 1fr;
  }

  .hero-pillars {
    grid-template-columns: 1fr 1fr;
  }

  .case-images {
    grid-template-columns: 1fr 1fr;
  }

  .case-images img,
  .plan-placeholder {
    height: 190px;
  }

  .section-heading-row {
    display: grid;
    align-items: start;
  }

  .project-card {
    display: block;
  }

  .project-card > img {
    height: 190px;
  }

  .closing-column {
    padding-right: 0;
  }

  .mobile-actions {
    position: fixed;
    z-index: 110;
    left: 0;
    right: 0;
    bottom: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    box-shadow: 0 -8px 24px rgba(0, 0, 0, 0.18);
  }

  .mobile-actions a {
    min-height: 56px;
    display: grid;
    place-items: center;
    background: var(--graphite);
    color: var(--white);
    font-size: 11px;
    font-weight: 750;
  }

  .mobile-actions a:last-child {
    background: var(--sage);
  }

  .site-footer {
    padding-bottom: 82px;
  }
}


/* =========================================================
   PÁGINA: CÓMO TRABAJAMOS
   Reutiliza íntegramente el sistema visual de la Home.
   ========================================================= */

.page-kicker {
  margin: 0 0 12px;
  color: var(--sage);
  font-size: 10px;
  font-weight: 750;
  letter-spacing: 0.14em;
}

.breadcrumbs {
  display: flex;
  gap: 8px;
  margin-bottom: 26px;
  color: var(--muted);
  font-size: 10px;
}

.breadcrumbs a:hover {
  color: var(--sage);
}

.work-hero {
  overflow: hidden;
  background: var(--warm-white);
}

.work-hero-grid {
  min-height: 560px;
  display: grid;
  grid-template-columns: 46% 54%;
}

.work-hero-copy {
  position: relative;
  z-index: 3;
  padding: 54px 54px 48px 0;
}

.work-hero-copy h1 {
  margin: 0 0 18px;
  font-family: var(--serif);
  font-size: clamp(48px, 5vw, 70px);
  font-weight: 400;
  line-height: 1.02;
  letter-spacing: -0.04em;
}

.work-hero-copy h2 {
  max-width: 520px;
  margin: 0 0 22px;
  font-family: var(--serif);
  font-size: clamp(28px, 3vw, 40px);
  font-weight: 400;
  line-height: 1.12;
}

.work-hero-copy h2 span {
  color: var(--sage);
}

.work-hero-copy > p:not(.page-kicker) {
  max-width: 520px;
  margin: 0 0 28px;
  color: #445156;
  font-size: 14px;
}

.work-hero-media {
  position: relative;
  min-height: 560px;
  margin-right: calc((100vw - min(var(--max), calc(100vw - 48px))) / -2);
  overflow: hidden;
}

.work-hero-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.work-hero-cut {
  position: absolute;
  inset: 0 auto 0 0;
  z-index: 2;
  width: 27%;
  background: var(--warm-white);
  clip-path: polygon(0 0, 100% 0, 0 100%);
}

.work-principles {
  padding: 30px 0;
  background: linear-gradient(90deg, #F1EEE7, #F8F7F4 50%, #EEE9DF);
  border-top: 1px solid rgba(34, 49, 63, 0.04);
  border-bottom: 1px solid rgba(34, 49, 63, 0.05);
}

.work-principles-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}

.work-principles-grid article {
  min-height: 155px;
  padding: 12px 32px;
  text-align: center;
}

.work-principles-grid article + article {
  border-left: 1px solid rgba(34, 49, 63, 0.12);
}

.work-principle-icon {
  margin-bottom: 12px;
  color: var(--sage);
  font-size: 34px;
  line-height: 1;
}

.work-principles h3 {
  margin: 0 0 9px;
  font-size: 12px;
}

.work-principles p {
  max-width: 220px;
  margin: 0 auto;
  color: var(--muted);
  font-size: 10.5px;
}

.work-process {
  padding: 52px 0 58px;
  background: #FBFAF8;
}

.work-section-heading {
  max-width: 700px;
  margin: 0 auto 34px;
  text-align: center;
}

.work-section-heading h2 {
  margin: 0;
  font-family: var(--serif);
  font-size: 34px;
  font-weight: 400;
}

.work-section-heading > p:last-child {
  max-width: 620px;
  margin: 0 auto;
  color: var(--muted);
  font-size: 12px;
}

.work-process-list {
  position: relative;
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.work-process-list::before {
  content: "";
  position: absolute;
  top: 67px;
  bottom: 67px;
  left: 51px;
  width: 1px;
  background: #D6D6D0;
}

.work-process-row {
  position: relative;
  display: grid;
  grid-template-columns: 104px 1fr 310px;
  gap: 28px;
  align-items: center;
  min-height: 190px;
  padding: 14px 0;
}

.work-process-marker {
  position: relative;
  z-index: 2;
  display: grid;
  justify-items: center;
  align-content: center;
}

.work-process-icon {
  width: 72px;
  height: 72px;
  display: grid;
  place-items: center;
  border: 1px solid #D4CEC5;
  border-radius: 50%;
  background: #FBFAF8;
  color: var(--sage);
  font-size: 30px;
}

.work-process-marker > span {
  margin-top: 9px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.06em;
}

.work-process-copy {
  max-width: 600px;
}

.work-process-copy h3 {
  margin: 0 0 9px;
  font-size: 17px;
}

.work-process-copy p {
  margin: 0 0 11px;
  color: #455257;
  font-size: 12px;
}

.work-process-copy ul {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.work-process-copy li {
  padding: 4px 7px;
  background: #EFEDE8;
  color: var(--muted);
  font-size: 9px;
}

.work-process-image {
  overflow: hidden;
}

.work-process-image img {
  width: 100%;
  height: 145px;
  object-fit: cover;
}

.work-commitment {
  padding: 18px 0;
  background: var(--sage);
  color: var(--white);
}

.work-commitment-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
}

.work-leaf {
  font-size: 42px;
  line-height: 1;
}

.work-commitment h2 {
  margin: 0 0 3px;
  font-family: var(--serif);
  font-size: 23px;
  font-weight: 400;
}

.work-commitment p {
  margin: 0;
  color: rgba(255, 255, 255, 0.78);
  font-size: 10px;
}

.work-results {
  padding: 58px 0;
  background: var(--warm-white);
}

.work-results-grid {
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  gap: 58px;
  align-items: center;
}

.work-results-copy h2 {
  max-width: 470px;
  margin: 0 0 18px;
  font-family: var(--serif);
  font-size: 36px;
  font-weight: 400;
  line-height: 1.13;
}

.work-results-copy > p:not(.page-kicker) {
  max-width: 480px;
  color: var(--muted);
  font-size: 12px;
}

.work-check-list {
  display: grid;
  gap: 9px;
  margin: 22px 0 28px;
  padding: 0;
  list-style: none;
}

.work-check-list li {
  position: relative;
  padding-left: 25px;
  font-size: 11px;
  font-weight: 600;
}

.work-check-list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: -1px;
  width: 17px;
  height: 17px;
  display: grid;
  place-items: center;
  border: 1px solid var(--sage);
  border-radius: 50%;
  color: var(--sage);
  font-size: 9px;
}

.work-results-gallery {
  display: grid;
  grid-template-columns: 1.5fr 0.75fr 0.75fr;
  grid-template-rows: 1fr 1fr;
  gap: 10px;
}

.work-results-gallery figure {
  margin: 0;
  overflow: hidden;
}

.work-results-gallery img {
  width: 100%;
  height: 100%;
  min-height: 145px;
  object-fit: cover;
}

.work-gallery-large {
  grid-row: 1 / 3;
}

.work-final-cta {
  padding: 42px 0;
  background: var(--graphite);
  color: var(--white);
}

.work-final-cta-inner {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 50px;
  align-items: center;
}

.page-kicker-light {
  color: var(--sage-light);
}

.work-final-cta h2 {
  max-width: 700px;
  margin: 0 0 10px;
  font-family: var(--serif);
  font-size: 30px;
  font-weight: 400;
}

.work-final-cta p:not(.page-kicker) {
  max-width: 720px;
  margin: 0;
  color: #CFD8D3;
  font-size: 11px;
}

.work-final-actions {
  display: grid;
  gap: 12px;
  justify-items: end;
}

.btn-light {
  background: var(--warm-white);
  color: var(--graphite);
}

.btn-light:hover {
  background: var(--beige);
}

.work-call-link {
  color: #CFD8D3;
  font-size: 11px;
  font-weight: 650;
}

.work-call-link:hover {
  color: var(--white);
}

@media (max-width: 1000px) {
  .work-principles-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .work-principles-grid article:nth-child(3) {
    border-left: 0;
  }

  .work-process-row {
    grid-template-columns: 90px 1fr 250px;
  }

  .work-results-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 860px) {
  .work-hero-grid {
    grid-template-columns: 1fr;
  }

  .work-hero-copy {
    padding-right: 0;
  }

  .work-hero-media {
    min-height: 400px;
    margin-right: 0;
  }

  .work-hero-cut {
    display: none;
  }

  .work-process-row {
    grid-template-columns: 80px 1fr;
    gap: 20px;
    padding: 22px 0;
  }

  .work-process-image {
    grid-column: 2;
  }

  .work-process-image img {
    height: 220px;
  }

  .work-process-list::before {
    left: 36px;
  }

  .work-results-gallery {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 260px 180px 180px;
  }

  .work-gallery-large {
    grid-column: 1 / 3;
    grid-row: auto;
  }

  .work-results-gallery figure:last-child {
    grid-column: auto;
  }

  .work-final-cta-inner {
    grid-template-columns: 1fr;
  }

  .work-final-actions {
    justify-items: start;
  }
}

@media (max-width: 600px) {
  .work-hero-copy {
    padding-top: 36px;
  }

  .work-hero-copy h1 {
    font-size: 44px;
  }

  .work-hero-copy h2 {
    font-size: 30px;
  }

  .work-principles-grid {
    grid-template-columns: 1fr;
  }

  .work-principles-grid article + article {
    border-left: 0;
    border-top: 1px solid rgba(34, 49, 63, 0.12);
  }

  .work-process-list::before {
    display: none;
  }

  .work-process-row {
    grid-template-columns: 1fr;
    text-align: left;
  }

  .work-process-marker {
    justify-items: start;
    grid-template-columns: 72px auto;
    gap: 12px;
    align-items: center;
  }

  .work-process-marker > span {
    margin: 0;
    font-size: 14px;
  }

  .work-process-image {
    grid-column: auto;
  }

  .work-process-copy ul {
    display: grid;
    justify-items: start;
  }

  .work-commitment-inner {
    justify-content: flex-start;
  }

  .work-commitment h2 {
    font-size: 20px;
  }

  .work-results-gallery {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: auto;
  }

  .work-gallery-large,
  .work-results-gallery figure:last-child {
    grid-column: auto;
  }

  .work-results-gallery img {
    min-height: 220px;
  }

  .work-final-actions {
    width: 100%;
  }

  .work-final-actions .btn {
    width: 100%;
  }
}


/* =========================================================
   PÁGINA: PROYECTOS
   ========================================================= */

.projects-hero {
  overflow: hidden;
  background: var(--warm-white);
}

.projects-hero-grid {
  min-height: 540px;
  display: grid;
  grid-template-columns: 46% 54%;
}

.projects-hero-copy {
  position: relative;
  z-index: 3;
  padding: 54px 56px 45px 0;
}

.projects-hero-copy h1 {
  margin: 0 0 24px;
  font-family: var(--serif);
  font-size: clamp(48px, 5vw, 70px);
  font-weight: 400;
  line-height: 1.03;
  letter-spacing: -0.04em;
}

.projects-hero-copy h1 span {
  color: var(--sage);
}

.projects-hero-copy > p:not(.page-kicker) {
  max-width: 515px;
  margin: 0 0 28px;
  color: #445156;
  font-size: 14px;
}

.projects-hero-media {
  position: relative;
  min-height: 540px;
  margin-right: calc((100vw - min(var(--max), calc(100vw - 48px))) / -2);
  overflow: hidden;
}

.projects-hero-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.projects-hero-cut {
  position: absolute;
  inset: 0 auto 0 0;
  z-index: 2;
  width: 27%;
  background: var(--warm-white);
  clip-path: polygon(0 0, 100% 0, 0 100%);
}

.projects-hero-line {
  position: absolute;
  z-index: 3;
  left: 1%;
  top: 54%;
  width: 235px;
  height: 1px;
  background: var(--sage);
  transform: rotate(-49deg);
  transform-origin: left center;
}

.portfolio-section {
  padding: 46px 0 56px;
  background: #FBFAF8;
}

.portfolio-heading {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 30px;
  margin-bottom: 18px;
}

.portfolio-heading h2 {
  margin: 0;
  font-family: var(--serif);
  font-size: 32px;
  font-weight: 400;
}

.portfolio-rule {
  display: block;
  width: 28px;
  height: 2px;
  margin-top: 11px;
  background: var(--sage);
}

.project-sort select {
  min-width: 150px;
  padding: 9px 32px 9px 12px;
  border: 1px solid var(--line);
  background: var(--warm-white);
  color: var(--graphite);
  font-size: 10px;
}

.project-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin: 0 0 28px;
}

.project-filter {
  min-height: 36px;
  padding: 0 14px;
  border: 1px solid var(--line);
  border-radius: 3px;
  background: transparent;
  color: var(--graphite);
  cursor: pointer;
  font-size: 10px;
  font-weight: 650;
}

.project-filter:hover,
.project-filter.is-active {
  border-color: var(--sage);
  background: var(--sage);
  color: var(--white);
}

.portfolio-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 26px 24px;
}

.portfolio-card {
  overflow: hidden;
  background: var(--white);
  border: 1px solid var(--line);
  transition: transform 0.2s ease, border-color 0.2s ease;
}

.portfolio-card:hover {
  transform: translateY(-2px);
  border-color: #BEC8C1;
}

.portfolio-card.is-hidden {
  display: none;
}

.portfolio-image-link {
  display: block;
  overflow: hidden;
}

.portfolio-card img {
  width: 100%;
  height: 235px;
  object-fit: cover;
  transition: transform 0.35s ease;
}

.portfolio-card:hover img {
  transform: scale(1.015);
}

.portfolio-card-body {
  padding: 17px 18px 19px;
}

.portfolio-card h3 {
  margin: 0 0 4px;
  font-size: 14px;
}

.portfolio-card p {
  margin: 0 0 13px;
  color: var(--muted);
  font-size: 10.5px;
}

.portfolio-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-bottom: 15px;
}

.portfolio-tags span {
  padding: 4px 7px;
  background: #F0EEE9;
  font-size: 9px;
}

.portfolio-link {
  color: var(--sage);
  font-size: 10px;
  font-weight: 750;
  text-transform: uppercase;
}

.portfolio-note {
  margin: 24px 0 0;
  color: var(--muted);
  font-size: 9.5px;
}

.featured-project {
  padding: 54px 0;
  background: linear-gradient(90deg, #F1EEE7, #F8F7F4 52%, #EEE9DF);
}

.featured-project-grid {
  display: grid;
  grid-template-columns: 0.82fr 1.18fr;
  gap: 54px;
  align-items: center;
}

.featured-project-copy h2 {
  max-width: 450px;
  margin: 0 0 18px;
  font-family: var(--serif);
  font-size: 35px;
  font-weight: 400;
  line-height: 1.12;
}

.featured-project-copy > p:not(.page-kicker) {
  max-width: 480px;
  color: var(--muted);
  font-size: 12px;
}

.featured-project-facts {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px 18px;
  margin: 23px 0 28px;
}

.featured-project-facts span {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 10.5px;
}

.featured-project-facts strong {
  color: var(--sage);
  font-size: 9px;
  letter-spacing: 0.08em;
}

.featured-project-gallery {
  display: grid;
  grid-template-columns: 1.5fr 0.75fr 0.75fr;
  grid-template-rows: 1fr 1fr;
  gap: 10px;
}

.featured-project-gallery figure {
  margin: 0;
  overflow: hidden;
}

.featured-project-gallery img {
  width: 100%;
  height: 100%;
  min-height: 145px;
  object-fit: cover;
}

.featured-large {
  grid-row: 1 / 3;
}

.projects-values {
  padding: 38px 0;
  background: #F6F3ED;
  border-top: 1px solid rgba(34, 49, 63, 0.05);
  border-bottom: 1px solid rgba(34, 49, 63, 0.06);
}

.projects-values-grid {
  display: grid;
  grid-template-columns: 1.45fr repeat(4, 1fr);
}

.projects-values-grid > article,
.projects-values-intro {
  min-height: 210px;
  padding: 12px 28px;
}

.projects-values-grid > article {
  text-align: center;
}

.projects-values-grid > article,
.projects-values-grid > article + article {
  border-left: 1px solid rgba(34, 49, 63, 0.10);
}

.projects-values-intro {
  padding-left: 0;
}

.projects-values-icon,
.projects-value-icon {
  margin-bottom: 11px;
  color: var(--sage);
  font-size: 33px;
  line-height: 1;
}

.projects-values-intro h2 {
  max-width: 320px;
  margin: 0 0 11px;
  font-family: var(--serif);
  font-size: 24px;
  font-weight: 400;
  line-height: 1.16;
}

.projects-values-intro p,
.projects-values article p {
  color: var(--muted);
  font-size: 9.8px;
}

.projects-values article h3 {
  margin: 0 0 8px;
  font-size: 11px;
}

.projects-contact {
  background: var(--warm-white);
}

.projects-contact-grid {
  display: grid;
  grid-template-columns: 0.72fr 1.28fr;
  min-height: 360px;
}

.projects-contact-copy {
  align-self: center;
  padding: 42px 46px 42px 0;
}

.projects-contact-copy h2 {
  max-width: 480px;
  margin: 0 0 14px;
  font-family: var(--serif);
  font-size: 31px;
  font-weight: 400;
  line-height: 1.13;
}

.projects-contact-copy > p:not(.page-kicker) {
  max-width: 450px;
  color: var(--muted);
  font-size: 11px;
}

.projects-contact-actions {
  display: grid;
  justify-items: start;
  gap: 11px;
  margin-top: 24px;
}

.projects-phone {
  color: var(--sage);
  font-size: 10px;
  font-weight: 700;
}

.projects-contact-images {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}

.projects-contact-images img {
  width: 100%;
  height: 100%;
  min-height: 360px;
  object-fit: cover;
}

@media (max-width: 1050px) {
  .portfolio-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .projects-values-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .projects-values-grid > article {
    border-top: 1px solid rgba(34, 49, 63, 0.10);
  }

  .projects-values-grid > article:nth-child(2),
  .projects-values-grid > article:nth-child(4) {
    border-left: 0;
  }

  .projects-values-intro {
    grid-column: 1 / 3;
    min-height: auto;
    padding-bottom: 28px;
  }
}

@media (max-width: 860px) {
  .projects-hero-grid {
    grid-template-columns: 1fr;
  }

  .projects-hero-copy {
    padding-right: 0;
  }

  .projects-hero-media {
    min-height: 400px;
    margin-right: 0;
  }

  .projects-hero-cut,
  .projects-hero-line {
    display: none;
  }

  .featured-project-grid,
  .projects-contact-grid {
    grid-template-columns: 1fr;
  }

  .projects-contact-copy {
    padding-right: 0;
  }

  .projects-contact-images {
    min-height: 300px;
  }
}

@media (max-width: 640px) {
  .projects-hero-copy {
    padding-top: 36px;
  }

  .projects-hero-copy h1 {
    font-size: 44px;
  }

  .portfolio-heading {
    display: grid;
    align-items: start;
  }

  .project-sort select {
    width: 100%;
  }

  .project-filters {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .portfolio-grid,
  .projects-values-grid {
    grid-template-columns: 1fr;
  }

  .projects-values-intro {
    grid-column: auto;
  }

  .projects-values-grid > article,
  .projects-values-grid > article:nth-child(2),
  .projects-values-grid > article:nth-child(4) {
    border-left: 0;
    border-top: 1px solid rgba(34, 49, 63, 0.10);
  }

  .featured-project-facts {
    grid-template-columns: 1fr;
  }

  .featured-project-gallery {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 240px 170px 170px;
  }

  .featured-large {
    grid-column: 1 / 3;
    grid-row: auto;
  }

  .featured-project-gallery figure:last-child {
    grid-column: 1 / 3;
  }

  .projects-contact-images {
    grid-template-columns: 1fr;
  }

  .projects-contact-images img {
    min-height: 230px;
  }
}


/* =========================================================
   PÁGINA: SOBRE RAEGON
   ========================================================= */

.about-hero {
  overflow: hidden;
  background: var(--warm-white);
}

.about-hero-grid {
  min-height: 540px;
  display: grid;
  grid-template-columns: 46% 54%;
}

.about-hero-copy {
  position: relative;
  z-index: 3;
  padding: 54px 56px 45px 0;
}

.about-hero-copy h1 {
  margin: 0 0 24px;
  font-family: var(--serif);
  font-size: clamp(48px, 5vw, 70px);
  font-weight: 400;
  line-height: 1.03;
  letter-spacing: -0.04em;
}

.about-hero-copy h1 span {
  color: var(--sage);
}

.about-hero-copy > p:not(.page-kicker) {
  max-width: 520px;
  margin: 0 0 28px;
  color: #445156;
  font-size: 14px;
}

.about-hero-media {
  position: relative;
  min-height: 540px;
  margin-right: calc((100vw - min(var(--max), calc(100vw - 48px))) / -2);
  overflow: hidden;
}

.about-hero-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.about-hero-cut {
  position: absolute;
  inset: 0 auto 0 0;
  z-index: 2;
  width: 27%;
  background: var(--warm-white);
  clip-path: polygon(0 0, 100% 0, 0 100%);
}

.about-philosophy {
  padding: 48px 0 52px;
  background: #FBFAF8;
}

.about-philosophy-grid {
  display: grid;
  grid-template-columns: 0.95fr 2.05fr;
  gap: 52px;
  align-items: center;
}

.about-philosophy-copy h2,
.about-essence-copy h2,
.about-team-intro h2,
.about-trust-copy h2 {
  margin: 0 0 16px;
  font-family: var(--serif);
  font-size: 31px;
  font-weight: 400;
  line-height: 1.15;
}

.about-philosophy-copy p:not(.page-kicker),
.about-essence-copy p:not(.page-kicker),
.about-team-intro p:not(.page-kicker),
.about-trust-copy p:not(.page-kicker) {
  color: var(--muted);
  font-size: 11.5px;
}

.about-principles {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}

.about-principles article {
  min-height: 180px;
  padding: 18px 28px;
  text-align: center;
}

.about-principles article + article {
  border-left: 1px solid rgba(34, 49, 63, 0.12);
}

.about-principle-icon {
  margin-bottom: 12px;
  color: var(--sage);
  font-size: 37px;
  line-height: 1;
}

.about-principles h3 {
  margin: 0 0 9px;
  font-size: 12px;
}

.about-principles p {
  margin: 0 auto;
  max-width: 190px;
  color: var(--muted);
  font-size: 10px;
}

.about-essence {
  padding: 0;
  background: var(--warm-white);
}

.about-essence-grid {
  display: grid;
  grid-template-columns: 1fr 1.25fr;
  min-height: 410px;
}

.about-essence-image img {
  width: 100%;
  height: 100%;
  min-height: 410px;
  object-fit: cover;
}

.about-essence-copy {
  align-self: center;
  padding: 54px 0 54px 58px;
}

.about-essence-copy h2 {
  max-width: 560px;
  font-size: 37px;
}

.about-essence-copy > p:not(.page-kicker) {
  max-width: 570px;
  font-size: 12px;
}

.about-team {
  padding: 50px 0 54px;
  background: #FBFAF8;
}

.about-team-grid {
  display: grid;
  grid-template-columns: 0.9fr 2.1fr;
  gap: 42px;
  align-items: center;
}

.about-team-intro h2 {
  font-size: 30px;
}

.about-team-cards {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}

.about-team-cards article {
  min-height: 175px;
  padding: 24px 18px;
  background: #F1EEE8;
  text-align: center;
}

.about-team-icon {
  margin-bottom: 12px;
  color: var(--sage);
  font-size: 34px;
  line-height: 1;
}

.about-team-cards h3 {
  margin: 0 0 8px;
  font-size: 11px;
}

.about-team-cards p {
  margin: 0;
  color: var(--muted);
  font-size: 9.5px;
}

.about-trust {
  padding: 42px 0;
  background: linear-gradient(90deg, #F0ECE4, #F7F6F3 55%, #ECE8DE);
}

.about-trust-grid {
  display: grid;
  grid-template-columns: 1.1fr 1.9fr;
  gap: 42px;
  align-items: center;
}

.about-trust-copy h2 {
  font-size: 27px;
}

.about-trust-points {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}

.about-trust-points article {
  min-height: 120px;
  padding: 10px 26px;
  display: grid;
  justify-items: center;
  align-content: center;
  gap: 9px;
  text-align: center;
}

.about-trust-points article + article {
  border-left: 1px solid rgba(34, 49, 63, 0.12);
}

.about-trust-icon {
  color: var(--sage);
  font-size: 32px;
  line-height: 1;
}

.about-trust-points h3 {
  margin: 0;
  max-width: 170px;
  font-size: 10.5px;
}

.about-final-cta {
  padding: 42px 0;
  background: var(--warm-white);
}

.about-final-cta-card {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 290px;
  overflow: hidden;
  background: var(--sage);
  color: var(--white);
}

.about-final-cta-copy {
  position: relative;
  z-index: 2;
  align-self: center;
  padding: 42px 48px;
}

.about-final-cta-copy h2 {
  margin: 0 0 10px;
  font-family: var(--serif);
  font-size: 34px;
  font-weight: 400;
}

.about-final-cta-copy > p:not(.page-kicker) {
  max-width: 430px;
  margin: 0 0 22px;
  color: rgba(255, 255, 255, 0.82);
  font-size: 11px;
}

.about-final-cta-image {
  position: relative;
}

.about-final-cta-image::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  z-index: 2;
  width: 22%;
  background: var(--sage);
  clip-path: polygon(0 0, 100% 0, 0 100%);
}

.about-final-cta-image img {
  width: 100%;
  height: 100%;
  min-height: 290px;
  object-fit: cover;
}

@media (max-width: 1000px) {
  .about-philosophy-grid,
  .about-team-grid,
  .about-trust-grid {
    grid-template-columns: 1fr;
  }

  .about-philosophy-copy,
  .about-team-intro,
  .about-trust-copy {
    max-width: 720px;
  }

  .about-team-cards {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 860px) {
  .about-hero-grid,
  .about-essence-grid,
  .about-final-cta-card {
    grid-template-columns: 1fr;
  }

  .about-hero-copy {
    padding-right: 0;
  }

  .about-hero-media {
    min-height: 400px;
    margin-right: 0;
  }

  .about-hero-cut,
  .about-final-cta-image::before {
    display: none;
  }

  .about-essence-image {
    order: 2;
  }

  .about-essence-copy {
    padding: 46px 0;
  }

  .about-essence-copy h2 {
    font-size: 33px;
  }

  .about-final-cta-image img {
    min-height: 260px;
  }
}

@media (max-width: 640px) {
  .about-hero-copy {
    padding-top: 36px;
  }

  .about-hero-copy h1 {
    font-size: 44px;
  }

  .about-principles,
  .about-team-cards,
  .about-trust-points {
    grid-template-columns: 1fr;
  }

  .about-principles article + article,
  .about-trust-points article + article {
    border-left: 0;
    border-top: 1px solid rgba(34, 49, 63, 0.12);
  }

  .about-team-cards article {
    min-height: 150px;
  }

  .about-final-cta-copy {
    padding: 34px 26px;
  }

  .about-final-cta-copy h2 {
    font-size: 30px;
  }
}


/* =========================================================
   PÁGINA: CONTACTO / SOLICITAR VISITA
   ========================================================= */

.contact-hero {
  overflow: hidden;
  background: var(--warm-white);
}

.contact-hero-grid {
  min-height: 510px;
  display: grid;
  grid-template-columns: 46% 54%;
}

.contact-hero-copy {
  position: relative;
  z-index: 3;
  padding: 50px 56px 35px 0;
}

.contact-hero-copy h1 {
  margin: 0 0 22px;
  font-family: var(--serif);
  font-size: clamp(50px, 5vw, 72px);
  font-weight: 400;
  line-height: 1.02;
  letter-spacing: -0.04em;
}

.contact-hero-copy h1 span {
  color: var(--sage);
}

.contact-hero-copy > p:not(.page-kicker) {
  max-width: 510px;
  margin: 0 0 30px;
  color: #445156;
  font-size: 14px;
}

.contact-hero-points {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  max-width: 520px;
}

.contact-hero-points article {
  text-align: center;
}

.contact-point-icon {
  margin-bottom: 8px;
  color: var(--sage);
  font-size: 30px;
  line-height: 1;
}

.contact-hero-points h2 {
  margin: 0 0 5px;
  font-size: 10.5px;
}

.contact-hero-points p {
  margin: 0 auto;
  max-width: 145px;
  color: var(--muted);
  font-size: 9px;
}

.contact-hero-media {
  position: relative;
  min-height: 510px;
  margin-right: calc((100vw - min(var(--max), calc(100vw - 48px))) / -2);
  overflow: hidden;
}

.contact-hero-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.contact-hero-cut {
  position: absolute;
  inset: 0 auto 0 0;
  z-index: 2;
  width: 27%;
  background: var(--warm-white);
  clip-path: polygon(0 0, 100% 0, 0 100%);
}

.contact-hero-line {
  position: absolute;
  z-index: 3;
  left: 1%;
  top: 56%;
  width: 235px;
  height: 1px;
  background: var(--sage);
  transform: rotate(-49deg);
  transform-origin: left center;
}

.contact-main {
  padding: 40px 0 50px;
  background: #FBFAF8;
}

.contact-main-grid {
  display: grid;
  grid-template-columns: 0.72fr 1.28fr;
  gap: 36px;
  align-items: stretch;
}

.direct-contact,
.visit-form-panel {
  border: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.72);
}

.direct-contact {
  padding: 32px 30px;
}

.direct-contact h2,
.visit-form-panel h2,
.contact-reasons h2,
.contact-last-copy h2 {
  margin: 0 0 16px;
  font-family: var(--serif);
  font-weight: 400;
  line-height: 1.15;
}

.direct-contact h2 {
  font-size: 27px;
}

.direct-phone {
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 24px 0 14px;
  color: var(--sage);
}

.direct-phone-icon {
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  border: 1px solid #AFC0B5;
  border-radius: 50%;
  font-size: 22px;
}

.direct-phone span:last-child {
  font-family: var(--serif);
  font-size: clamp(30px, 3vw, 42px);
  line-height: 1;
}

.direct-call-button {
  margin-left: 70px;
}

.direct-contact-list {
  display: grid;
  gap: 20px;
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px solid var(--line);
}

.direct-contact-list > div {
  display: grid;
  grid-template-columns: 34px 1fr;
  gap: 12px;
  align-items: start;
}

.direct-list-icon {
  color: var(--sage);
  font-size: 22px;
}

.direct-contact-list strong {
  display: block;
  margin-bottom: 4px;
  font-size: 10px;
}

.direct-contact-list a,
.direct-contact-list p {
  margin: 0;
  color: var(--muted);
  font-size: 10px;
}

.direct-note {
  margin-top: 30px;
  padding: 15px;
  background: #F2EFE9;
}

.direct-note p {
  margin: 0 0 12px;
  color: var(--muted);
  font-size: 10px;
}

.direct-note img {
  width: 100%;
  height: 120px;
  object-fit: cover;
}

.visit-form-panel {
  padding: 32px 36px;
}

.visit-form-panel h2 {
  font-size: 29px;
}

.visit-form-intro {
  max-width: 620px;
  margin: 0 0 22px;
  color: var(--muted);
  font-size: 10.5px;
}

.visit-form {
  display: grid;
  gap: 14px;
}

.contact-form-two {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 13px 16px;
}

.visit-form label {
  display: grid;
  gap: 6px;
}

.visit-form label > span {
  color: #4B575B;
  font-size: 9.5px;
  font-weight: 600;
}

.visit-form input,
.visit-form select,
.visit-form textarea {
  width: 100%;
  padding: 11px 12px;
  border: 1px solid #D6D9D4;
  border-radius: 0;
  background: var(--white);
  color: var(--graphite);
  outline: none;
  font-size: 10.5px;
}

.visit-form input:focus,
.visit-form select:focus,
.visit-form textarea:focus {
  border-color: var(--sage);
  box-shadow: 0 0 0 3px rgba(111, 136, 123, 0.12);
}

.contact-privacy {
  display: flex !important;
  grid-template-columns: auto 1fr;
  align-items: start;
  gap: 8px !important;
}

.contact-privacy input {
  width: auto;
  margin-top: 2px;
}

.contact-privacy a {
  text-decoration: underline;
}

.contact-submit {
  width: 100%;
  min-height: 50px;
}

.contact-protection {
  margin: -2px 0 0;
  color: var(--muted);
  text-align: center;
  font-size: 9px;
}

.contact-form-status {
  min-height: 16px;
  margin: 0;
  color: var(--sage);
  font-size: 10px;
}

.contact-reasons {
  padding: 40px 0 42px;
  background: var(--warm-white);
}

.contact-reasons h2 {
  text-align: center;
  font-size: 28px;
}

.contact-reasons-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}

.contact-reasons-grid article {
  padding: 12px 28px;
  text-align: center;
}

.contact-reasons-grid article + article {
  border-left: 1px solid rgba(34, 49, 63, 0.12);
}

.contact-reason-icon {
  margin-bottom: 10px;
  color: var(--sage);
  font-size: 34px;
  line-height: 1;
}

.contact-reasons-grid h3 {
  margin: 0 0 7px;
  font-size: 11px;
}

.contact-reasons-grid p {
  max-width: 190px;
  margin: 0 auto;
  color: var(--muted);
  font-size: 9.5px;
}

.contact-last-cta {
  padding: 0 0 42px;
  background: var(--warm-white);
}

.contact-last-card {
  display: grid;
  grid-template-columns: 0.82fr 1.18fr;
  min-height: 270px;
  overflow: hidden;
  background: var(--sage);
  color: var(--white);
}

.contact-last-copy {
  align-self: center;
  padding: 38px 44px;
}

.contact-last-copy h2 {
  font-size: 30px;
}

.contact-last-copy > p:not(.page-kicker) {
  max-width: 400px;
  margin: 0 0 20px;
  color: rgba(255, 255, 255, 0.82);
  font-size: 10.5px;
}

.contact-last-image {
  position: relative;
}

.contact-last-image::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  z-index: 2;
  width: 18%;
  background: var(--sage);
  clip-path: polygon(0 0, 100% 0, 0 100%);
}

.contact-last-image img {
  width: 100%;
  height: 100%;
  min-height: 270px;
  object-fit: cover;
}

@media (max-width: 1000px) {
  .contact-main-grid {
    grid-template-columns: 1fr;
  }

  .direct-contact {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 22px 34px;
    align-items: start;
  }

  .direct-contact > .page-kicker,
  .direct-contact > h2 {
    grid-column: 1 / 3;
  }

  .direct-phone,
  .direct-call-button {
    margin-left: 0;
  }

  .direct-contact-list {
    margin-top: 0;
    padding-top: 0;
    border-top: 0;
  }

  .direct-note {
    margin-top: 0;
  }
}

@media (max-width: 860px) {
  .contact-hero-grid,
  .contact-last-card {
    grid-template-columns: 1fr;
  }

  .contact-hero-copy {
    padding-right: 0;
  }

  .contact-hero-media {
    min-height: 390px;
    margin-right: 0;
  }

  .contact-hero-cut,
  .contact-hero-line,
  .contact-last-image::before {
    display: none;
  }

  .contact-last-image img {
    min-height: 250px;
  }
}

@media (max-width: 640px) {
  .contact-hero-copy {
    padding-top: 36px;
  }

  .contact-hero-copy h1 {
    font-size: 46px;
  }

  .contact-hero-points,
  .contact-form-two,
  .contact-reasons-grid,
  .direct-contact {
    grid-template-columns: 1fr;
  }

  .direct-contact > .page-kicker,
  .direct-contact > h2 {
    grid-column: auto;
  }

  .direct-phone {
    align-items: flex-start;
  }

  .direct-phone span:last-child {
    font-size: 31px;
  }

  .direct-call-button {
    width: 100%;
  }

  .visit-form-panel {
    padding: 28px 20px;
  }

  .contact-reasons-grid article + article {
    border-left: 0;
    border-top: 1px solid rgba(34, 49, 63, 0.12);
  }

  .contact-last-copy {
    padding: 32px 24px;
  }

  .contact-last-copy .btn {
    width: 100%;
  }
}


/* =========================================================
   RAEGON UI REFINEMENT v6
   Tipografía, legibilidad, espaciado e iconografía profesional
   ========================================================= */

:root {
  --body-size: 16px;
  --body-line: 1.62;
  --text-secondary: 14px;
  --text-small: 13px;
  --text-micro: 12px;
}

/* Base de lectura */
body {
  font-size: var(--body-size);
  line-height: var(--body-line);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

p {
  text-wrap: pretty;
}

.main-nav a,
.phone-link {
  font-size: 13px;
}

.btn {
  min-height: 48px;
  padding-inline: 22px;
  font-size: 12px;
  letter-spacing: .025em;
}

.btn-compact {
  min-height: 44px;
  font-size: 11.5px;
}

.page-kicker,
.breadcrumbs {
  font-size: 12px;
}

.hero-text,
.hero-copy > p,
.work-hero-copy > p:not(.page-kicker),
.projects-hero-copy > p:not(.page-kicker),
.about-hero-copy > p:not(.page-kicker),
.contact-hero-copy > p:not(.page-kicker) {
  font-size: 16px;
  line-height: 1.65;
}

/* Home */
.pillar {
  font-size: 12.5px;
  line-height: 1.35;
}

.differentiator-card {
  min-height: 224px;
  padding: 28px 20px;
}

.differentiator-card h3 {
  font-size: 15px;
}

.differentiator-card p {
  font-size: 13px;
  line-height: 1.58;
}

.commitment-banner {
  padding-block: 15px;
  font-size: 13.5px;
}

.step-number {
  font-size: 12px;
}

.process-step h3 {
  font-size: 14px;
  line-height: 1.35;
}

.process-step p {
  max-width: 176px;
  font-size: 12.5px;
  line-height: 1.55;
}

.case-images figcaption {
  font-size: 12px;
}

.case-info p {
  font-size: 14px;
  line-height: 1.6;
}

.project-facts {
  font-size: 12.5px;
}

.text-link,
.project-card a,
.portfolio-link,
.more,
.projects-phone,
.work-call-link {
  font-size: 12px;
}

.project-card h3,
.portfolio-card h3 {
  font-size: 15px;
}

.project-card p,
.portfolio-card p {
  font-size: 13px;
}

.tag-row span,
.portfolio-tags span,
.work-process-copy li {
  font-size: 11.5px;
  padding: 5px 8px;
}

.closing-column p,
.work-section-heading > p:last-child,
.featured-project-copy > p:not(.page-kicker),
.projects-values-intro p,
.projects-values article p,
.about-philosophy-copy p:not(.page-kicker),
.about-essence-copy p:not(.page-kicker),
.about-team-intro p:not(.page-kicker),
.about-trust-copy p:not(.page-kicker),
.contact-reasons-grid p {
  font-size: 13px;
  line-height: 1.6;
}

.faq-list summary {
  padding: 13px 0;
  font-size: 13.5px;
}

.faq-list details p {
  font-size: 13px;
}

.lead-form label > span,
.visit-form label > span {
  font-size: 12.5px;
}

.lead-form input,
.lead-form select,
.lead-form textarea,
.visit-form input,
.visit-form select,
.visit-form textarea {
  min-height: 44px;
  font-size: 14px;
  line-height: 1.45;
}

.lead-form textarea,
.visit-form textarea {
  min-height: 118px;
}

.privacy-row span,
.contact-privacy span {
  font-size: 12px !important;
}

.form-status,
.contact-form-status,
.contact-protection,
.portfolio-note {
  font-size: 12px;
}

/* Cómo trabajamos */
.work-principles-grid article {
  min-height: 174px;
  padding: 18px 30px;
}

.work-principles h3 {
  font-size: 14px;
}

.work-principles p {
  font-size: 12.5px;
  line-height: 1.55;
}

.work-process-row {
  min-height: 220px;
  padding-block: 22px;
}

.work-process-copy h3 {
  font-size: 19px;
}

.work-process-copy p {
  font-size: 14px;
  line-height: 1.6;
}

.work-commitment p {
  font-size: 12.5px;
}

.work-results-copy > p:not(.page-kicker) {
  font-size: 14px;
  line-height: 1.6;
}

.work-check-list li {
  font-size: 13px;
}

/* Proyectos */
.project-sort select,
.project-filter {
  min-height: 40px;
  font-size: 12px;
}

.portfolio-card img {
  height: 245px;
}

.projects-values-grid > article,
.projects-values-intro {
  min-height: 224px;
}

.projects-values article h3 {
  font-size: 13px;
}

.projects-contact-copy > p:not(.page-kicker) {
  font-size: 13px;
  line-height: 1.6;
}

/* Sobre RAEGON */
.about-principles article {
  min-height: 194px;
  padding: 22px 28px;
}

.about-principles h3,
.about-team-cards h3,
.about-trust-points h3 {
  font-size: 13px;
}

.about-principles p,
.about-team-cards p {
  font-size: 12.5px;
  line-height: 1.55;
}

.about-team-cards article {
  min-height: 194px;
  padding: 28px 20px;
}

/* Contacto */
.contact-hero-points h2 {
  font-size: 13px;
}

.contact-hero-points p {
  max-width: 160px;
  font-size: 12px;
  line-height: 1.5;
}

.direct-contact-list strong {
  font-size: 13px;
}

.direct-contact-list a,
.direct-contact-list p,
.direct-note p,
.visit-form-intro,
.contact-last-copy > p:not(.page-kicker) {
  font-size: 13px;
  line-height: 1.58;
}

.contact-reasons-grid h3 {
  font-size: 13.5px;
}

/* Footer: pequeño, pero legible */
.footer-brand p,
.footer-column a,
.footer-column span {
  font-size: 12.5px;
  line-height: 1.5;
}

.footer-column h3 {
  font-size: 12px;
}

.copyright {
  font-size: 11.5px;
}

/* ---------------------------------------------------------
   Sistema de iconos SVG RAEGON
   --------------------------------------------------------- */
.raegon-icon {
  display: block;
  flex: 0 0 auto;
  object-fit: contain;
}

.icon-inline {
  width: 18px;
  height: 18px;
}

.icon-inline-light,
.icon-xl-light {
  filter: brightness(0) invert(1);
}

.icon-inline-light {
  width: 22px;
  height: 22px;
}

.icon-button {
  width: 17px;
  height: 17px;
}

.btn-dark .icon-button,
.btn-sage .icon-button,
.btn-light:hover .icon-button,
.contact-submit .icon-button {
  filter: brightness(0) invert(1);
}

.btn-light .icon-button {
  filter: none;
}

.icon-sm {
  width: 29px;
  height: 29px;
}

.icon-md {
  width: 24px;
  height: 24px;
}

.icon-lg {
  width: 42px;
  height: 42px;
  margin-inline: auto;
}

.icon-process {
  width: 34px;
  height: 34px;
}

.icon-phone-large {
  width: 28px;
  height: 28px;
}

.icon-xl-light {
  width: 42px;
  height: 42px;
}

/* Los contenedores dejan de depender de caracteres tipográficos */
.pillar-icon,
.line-icon,
.process-circle,
.work-principle-icon,
.work-process-icon,
.projects-values-icon,
.projects-value-icon,
.about-principle-icon,
.about-team-icon,
.about-trust-icon,
.contact-point-icon,
.direct-phone-icon,
.direct-list-icon,
.contact-reason-icon {
  font-size: 0;
}

.line-icon,
.work-principle-icon,
.projects-values-icon,
.projects-value-icon,
.about-principle-icon,
.about-team-icon,
.about-trust-icon,
.contact-point-icon,
.contact-reason-icon {
  min-height: 48px;
  display: grid;
  place-items: center;
}

.phone-icon {
  display: grid;
  place-items: center;
}

.direct-phone-icon {
  display: grid;
  place-items: center;
}

/* ---------------------------------------------------------
   Ajuste de respiración tras aumentar tipografía
   --------------------------------------------------------- */
.differentiators {
  padding-top: 42px;
}

.process-section {
  padding: 42px 0 48px;
}

.case-study {
  padding: 36px 0 48px;
}

.projects-section {
  padding: 36px 0 42px;
}

.closing-column {
  padding-top: 42px;
  padding-bottom: 42px;
}

.work-process {
  padding: 62px 0 68px;
}

.portfolio-section {
  padding: 56px 0 64px;
}

.about-philosophy,
.about-team {
  padding-top: 58px;
  padding-bottom: 62px;
}

.contact-main {
  padding: 50px 0 60px;
}

.contact-reasons {
  padding: 50px 0 52px;
}

/* Tablet */
@media (max-width: 1080px) {
  body {
    font-size: 16px;
  }

  .main-nav a {
    font-size: 12.5px;
  }

  .differentiator-grid {
    gap: 16px;
  }

  .process-step p {
    max-width: 210px;
  }

  .work-process-row {
    grid-template-columns: 92px 1fr 260px;
  }

  .portfolio-card img {
    height: 230px;
  }
}

/* Móvil: no reducir los textos de lectura */
@media (max-width: 640px) {
  body {
    font-size: 16px;
    line-height: 1.62;
  }

  .site-container {
    width: calc(100% - 32px);
  }

  .hero h1,
  .work-hero-copy h1,
  .projects-hero-copy h1,
  .about-hero-copy h1,
  .contact-hero-copy h1 {
    font-size: clamp(38px, 11vw, 46px);
    line-height: 1.07;
  }

  .hero-text,
  .hero-copy > p,
  .work-hero-copy > p:not(.page-kicker),
  .projects-hero-copy > p:not(.page-kicker),
  .about-hero-copy > p:not(.page-kicker),
  .contact-hero-copy > p:not(.page-kicker) {
    font-size: 16px;
  }

  .page-kicker,
  .breadcrumbs {
    font-size: 12px;
  }

  .btn {
    min-height: 50px;
    font-size: 12.5px;
  }

  .hero-pillars {
    gap: 20px 14px;
  }

  .pillar {
    font-size: 13px;
  }

  .differentiator-card {
    min-height: auto;
    padding: 28px 24px;
  }

  .differentiator-card h3,
  .process-step h3,
  .project-card h3,
  .portfolio-card h3 {
    font-size: 15px;
  }

  .differentiator-card p,
  .process-step p,
  .project-card p,
  .portfolio-card p,
  .closing-column p,
  .work-principles p,
  .work-process-copy p,
  .about-principles p,
  .about-team-cards p,
  .contact-hero-points p,
  .direct-contact-list a,
  .direct-contact-list p,
  .visit-form-intro {
    font-size: 14px;
  }

  .process-step p {
    max-width: none;
  }

  .faq-list summary {
    font-size: 14px;
    padding-block: 15px;
  }

  .faq-list details p {
    font-size: 14px;
  }

  .lead-form input,
  .lead-form select,
  .lead-form textarea,
  .visit-form input,
  .visit-form select,
  .visit-form textarea {
    min-height: 48px;
    font-size: 16px; /* evita zoom automático en iOS */
  }

  .footer-brand p,
  .footer-column a,
  .footer-column span {
    font-size: 13px;
  }

  .footer-column h3 {
    font-size: 12.5px;
  }

  .copyright {
    font-size: 12px;
  }

  .work-process-row {
    padding-block: 28px;
  }

  .work-process-copy h3 {
    font-size: 19px;
  }

  .about-team-cards article {
    min-height: auto;
    padding: 28px 24px;
  }

  .contact-hero-points {
    gap: 22px;
  }

  .contact-hero-points article {
    padding: 8px 0;
  }
}

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


/* =========================================================
   RAEGON — Ajustes ópticos finales v6.1
   ========================================================= */

/* HOME: hoja y mensaje como una única unidad visual centrada */
.commitment-banner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  min-height: 58px;
  padding: 14px 24px;
  text-align: left;
  font-size: 14px;
  line-height: 1.35;
}

.commitment-banner > span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  margin: 0;
}

.commitment-banner .icon-inline-light {
  width: 27px;
  height: 27px;
}

/* CÓMO TRABAJAMOS: presencia visual homogénea de los seis pictogramas */
.work-process-icon {
  display: grid;
  place-items: center;
}

.work-process-icon .icon-process {
  width: 35px;
  height: 35px;
}

/* SOBRE RAEGON: centrado geométrico y óptico del bloque de confianza */
.about-trust-points article {
  display: grid;
  justify-items: center;
  align-content: center;
}

.about-trust-icon {
  width: 100%;
  min-height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-inline: auto;
}

.about-trust-icon .icon-lg {
  display: block;
  width: 42px;
  height: 42px;
  margin: 0 auto;
}

@media (max-width: 640px) {
  .commitment-banner {
    gap: 11px;
    min-height: 64px;
    padding: 14px 18px;
    font-size: 13.5px;
  }

  .commitment-banner .icon-inline-light {
    width: 25px;
    height: 25px;
  }
}


/* =========================================================
   RAEGON Production Galicia
   ========================================================= */
.form-honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
button[disabled]{opacity:.72;cursor:wait}
.coverage-section{padding:54px 0;background:#F2EEE7}.coverage-heading{max-width:720px;margin-bottom:28px}
.coverage-heading h2,.zone-copy h1,.legal-hero h1,.utility-card h1{margin:0 0 14px;font-family:var(--serif);font-weight:400;line-height:1.08}
.coverage-heading h2{font-size:34px}.coverage-heading>p:last-child{color:var(--muted);font-size:14px}
.coverage-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.coverage-grid a{min-height:92px;padding:20px 22px;display:flex;flex-direction:column;justify-content:space-between;background:rgba(255,255,255,.7);border:1px solid var(--line);transition:.2s}
.coverage-grid a:hover{transform:translateY(-2px);border-color:var(--sage);background:#fff}
.coverage-grid strong{font-family:var(--serif);font-size:21px;font-weight:400}.coverage-grid span{color:var(--sage);font-size:12px;font-weight:700}.coverage-action{margin-top:22px}
.zone-hero{padding:72px 0;background:linear-gradient(90deg,#F0ECE4,#F8F7F4)}
.zone-hero-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:60px;align-items:center}
.zone-copy h1{font-size:clamp(44px,5vw,68px);letter-spacing:-.035em}.zone-copy>p:not(.page-kicker){max-width:700px;color:var(--muted);font-size:16px}
.zone-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.zone-card{padding:34px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow)}
.zone-card img{width:44px;height:44px;margin-bottom:16px}.zone-card h2{margin:0 0 10px;font-family:var(--serif);font-size:25px;font-weight:400}.zone-card p{margin:0;color:var(--muted);font-size:14px}
.zone-content{padding:58px 0;background:#FBFAF8}.zone-content-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.zone-content article{padding:26px;background:#fff;border:1px solid var(--line)}.zone-content h2,.zone-links h2{margin:0 0 12px;font-family:var(--serif);font-size:25px;font-weight:400}.zone-content p{color:var(--muted);font-size:14px}.zone-links{padding:52px 0;background:var(--warm-white)}
.legal-hero{padding:64px 0 34px;background:#F1EEE8}.legal-hero h1{font-size:48px}.legal-warning{max-width:800px;padding:14px 16px;border-left:3px solid var(--sage);background:#fff;font-size:13px}
.legal-content{padding:46px 0 70px}.legal-copy{max-width:860px}.legal-copy h2{margin:30px 0 10px;font-family:var(--serif);font-size:25px;font-weight:400}.legal-copy p{color:#465258;font-size:15px}
.utility-page{min-height:75vh;display:grid;place-items:center;padding:60px 0;background:#F2EEE7}
.utility-card{max-width:760px;padding:50px;background:#fff;text-align:center;border:1px solid var(--line);box-shadow:var(--shadow)}
.utility-card>img{width:54px;margin:0 auto 18px}.utility-card h1{font-size:44px}.utility-card p{color:var(--muted);font-size:15px}.utility-card .hero-actions{justify-content:center}
@media(max-width:900px){.coverage-grid{grid-template-columns:repeat(2,1fr)}.zone-hero-grid,.zone-content-grid{grid-template-columns:1fr}}
@media(max-width:600px){.coverage-grid{grid-template-columns:1fr}.zone-hero{padding:46px 0}.zone-copy h1{font-size:42px}.zone-actions{display:grid}.zone-actions .btn{width:100%}.utility-card{padding:34px 22px}}


/* =========================================================
   RAEGON — Pre-launch responsive & legal-copy polish v7
   ========================================================= */
@media (max-width: 640px) {
  body { padding-bottom: 76px; }
  .site-footer { padding-bottom: 18px; }

  /* Cómo trabajamos: lectura móvil en una única columna real */
  .work-process-row {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 16px;
    padding: 30px 0;
  }
  .work-process-marker {
    display: flex;
    align-items: center;
    gap: 12px;
    justify-content: flex-start;
  }
  .work-process-icon { width: 60px; height: 60px; flex: 0 0 60px; }
  .work-process-copy { width: 100%; max-width: none; }
  .work-process-copy h3 { font-size: 20px; line-height: 1.25; }
  .work-process-copy p { font-size: 15px; line-height: 1.62; }
  .work-process-copy ul { display: flex; flex-wrap: wrap; gap: 7px; }
  .work-process-copy li { font-size: 12px; }
  .work-process-image { width: 100%; }
  .work-process-image img { width: 100%; height: 240px; object-fit: cover; }

  /* Sobre RAEGON: tarjetas de equipo más compactas */
  .about-team-cards { gap: 12px; }
  .about-team-cards article { min-height: 0; padding: 22px 20px; }
  .about-team-cards .raegon-icon { width: 34px; height: 34px; }
  .about-team-cards h3 { margin-top: 10px; }

  /* Contacto: reducir longitud sin perder información útil */
  .contact-reasons { padding-top: 30px; padding-bottom: 30px; }
  .contact-reasons-grid article { padding: 22px 18px; }
  .contact-last-image img { min-height: 210px; max-height: 320px; }

  /* Cobertura local más compacta */
  .coverage-grid a { min-height: 76px; padding: 16px 18px; }
}

/* v8: approved editorial layout refinements */
.coverage-heading{max-width:980px}
.coverage-heading>p:last-child{max-width:900px;text-wrap:pretty}
.work-commitment-inner,.work-commitment h2,.work-commitment p{text-align:center}
.work-commitment-inner{margin-inline:auto}
.work-call-link{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:11px 20px;border:1px solid currentColor;border-radius:6px;font-size:1rem;font-weight:600;text-decoration:none}
.work-hero-copy h2,.about-team-intro h2,.projects-hero-copy h1{text-wrap:balance}
@media(max-width:640px){.coverage-heading{max-width:100%}.work-final-actions .work-call-link{width:100%}}

.work-commitment-inner{flex-wrap:wrap}
.work-commitment-inner>div{max-width:900px}
@media(max-width:600px){.work-commitment h2{font-size:clamp(20px,5vw,24px)}.work-commitment p{font-size:13px;line-height:1.45}}

/* v9: ancho de cobertura en escritorio; ajuste natural en pantallas pequeñas */
@media (min-width: 1050px) {
  .coverage-heading { max-width: none; }
  .coverage-heading > p:last-child { max-width: none; font-size: 14px; text-wrap: nowrap; }
}

/* v10 · Integración fotográfica exclusiva de los tres héroes aprobados.
   Se conserva la composición y el contenido de la v9. */
.hero-media picture, .work-hero-media picture, .about-hero-media picture {
  display: block; width: 100%; height: 100%;
}
.hero-media picture img, .work-hero-media picture img, .about-hero-media picture img {
  display: block; width: 100%; height: 100%; object-fit: cover; object-position: 54% center;
}
/* El salón tiene su luz principal a la izquierda: centramos el encuadre
   en la zona de madera y mobiliario para los paneles fotográficos. */
@media (max-width: 900px) {
  .hero-media picture img, .work-hero-media picture img, .about-hero-media picture img { object-position: center center; }
}
@media (max-width: 640px) {
  .hero-media, .work-hero-media, .about-hero-media { min-height: 0; aspect-ratio: 4 / 3; }
  .hero-media picture img, .work-hero-media picture img, .about-hero-media picture img { object-position: center 47%; }
}

/* v11 — Héroes más compactos. Solo Inicio, Cómo trabajamos y Sobre RAEGON.
   La imagen mantiene sus proporciones mediante object-fit: cover; no se estira. */
@media (min-width: 861px) {
  .hero-grid, .work-hero-grid, .about-hero-grid { min-height: 0; }
  .hero-copy { padding-top: 38px; padding-bottom: 26px; }
  .hero h1 { font-size: clamp(43px, 4.15vw, 62px); margin-bottom: 18px; }
  .hero-actions { margin-top: 22px; margin-bottom: 26px; }
  .hero-media, .work-hero-media, .about-hero-media { min-height: 0; }
  .work-hero-copy, .about-hero-copy { padding-top: 36px; padding-bottom: 32px; }
  .work-hero-copy h1, .about-hero-copy h1 { font-size: clamp(44px, 4.4vw, 62px); }
}
/* El elemento picture también debe ocupar todo el panel: height:100% en img
   por sí solo no garantiza que cubra un contenedor grid flexible. */
.hero-media > picture, .work-hero-media > picture, .about-hero-media > picture {
  position: absolute; inset: 0; display: block; width: 100%; height: 100%;
}
.hero-media picture img, .work-hero-media picture img, .about-hero-media picture img {
  display: block; width: 100%; height: 100%; object-fit: cover; object-position: center;
}
@media (max-width: 860px) {
  .hero-media, .work-hero-media, .about-hero-media { min-height: clamp(290px, 48vw, 400px); }
}
@media (max-width: 640px) {
  .hero-media, .work-hero-media, .about-hero-media { min-height: clamp(260px, 78vw, 370px); }
}

/* V12: secuencia ilustrativa de Inicio; conserva la retícula y su respuesta móvil. */
.case-study .case-images img { display: block; object-fit: cover; object-position: center center; }

/* Galería «Del método al resultado»: cinco imágenes individuales. */
@media (max-width: 600px) {
  .work-results-gallery figure { aspect-ratio: 4 / 3; }
  .work-results-gallery .work-gallery-large { aspect-ratio: 3 / 4; }
  .work-results-gallery img { display: block; min-height: 0; }
}

/* Galería «Del método al resultado»: cinco imágenes individuales. */
@media (max-width: 600px) {
  .work-results-gallery figure { aspect-ratio: 4 / 3; }
  .work-results-gallery .work-gallery-large { aspect-ratio: 3 / 4; }
  .work-results-gallery img { display: block; min-height: 0; }
}

/* v15: photographic focal points for Sobre RAEGON only; original layout preserved. */
.about-essence-image img { object-position: 50% 50%; }
.about-final-cta-image img { object-position: 57% 50%; }
@media (max-width: 760px) {
  .about-essence-image img { object-position: 52% 50%; }
  .about-final-cta-image img { object-position: 60% 50%; }
}

/* Contacto v16: encuadres de las tres imágenes ilustrativas. */
.contact-hero-media img { object-position: 53% center; }
.direct-contact img:not(.raegon-icon) { object-position: center center; }
.contact-last-image img { object-position: 52% center; }
@media (max-width: 860px) {
  .contact-hero-media img { object-position: 55% center; }
  .contact-last-image img { object-position: 55% center; }
}

/* Inspiración: galería editorial, sin tarjetas de portfolio ni enlaces. */
.inspiration-section { padding: 56px 0 64px; background: #fbfaf8; }
.inspiration-section .section-heading-row { margin-bottom: 24px; }
.inspiration-section .page-kicker { margin-bottom: 9px; }
.inspiration-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; }
.inspiration-card { min-width: 0; background: #fff; }
.inspiration-card picture { display: block; overflow: hidden; aspect-ratio: 4 / 3; }
.inspiration-card img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.inspiration-card-caption { padding: 18px 4px 6px; }
.inspiration-card h3 { margin: 0; font-size: clamp(16px,1.35vw,21px); line-height: 1.3; color: var(--graphite); }
@media (max-width: 800px) { .inspiration-grid { gap: 14px; } .inspiration-card picture { aspect-ratio: 3 / 4; } .inspiration-card-caption { padding: 13px 2px 4px; } }
@media (max-width: 640px) { .inspiration-section { padding: 40px 0 48px; } .inspiration-grid { grid-template-columns: 1fr; gap: 24px; } .inspiration-card picture { aspect-ratio: 4 / 3; } .inspiration-card h3 { font-size: 18px; } }

/* PROYECTOS · v18 — galería editorial y carruseles independientes */
.projects-redesign{overflow:hidden;background:#faf9f6;color:#25343f}.projects-new-hero{background:#fff}.projects-hero-desktop{position:relative;max-width:2016px;margin:auto}.projects-hero-desktop>img{display:block;width:100%;height:auto}.projects-hero-click{position:absolute;left:3.5%;top:70%;width:19%;height:13%;border-radius:3px}.projects-hero-click:focus-visible{outline:4px solid #22313f;outline-offset:3px}.projects-hero-mobile{display:none}.projects-intro{display:grid;grid-template-columns:1fr 1fr;align-items:end;gap:5rem;padding-top:clamp(65px,8vw,125px);padding-bottom:48px}.projects-eyebrow{display:block;font-size:.77rem;letter-spacing:.2em;font-weight:750;color:#688176;text-transform:uppercase}.projects-intro h2,.projects-showcase h2,.projects-outro h2{font-family:Georgia,serif;font-weight:400;letter-spacing:-.035em}.projects-intro h2{font-size:clamp(2.5rem,5vw,5.4rem);line-height:1.05;margin:15px 0 0}.projects-intro>p{font-size:1.05rem;line-height:1.8;color:#5d676b;max-width:540px}.projects-jump{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;padding-bottom:clamp(70px,8vw,130px)}.projects-jump a{border-top:1px solid #aebcb6;padding:21px 3px;display:flex;gap:12px;align-items:center;text-decoration:none;color:#50675d;font-size:.9rem;transition:color .2s,border-color .2s}.projects-jump a span{flex:1;font-size:1.15rem;color:#22313f;font-weight:650}.projects-jump a:hover{color:#22313f;border-color:#22313f}.projects-showcase{padding:clamp(58px,7vw,105px) 0;border-top:1px solid #e3e5df}.projects-showcase:nth-of-type(even){background:#f2f4f0}.projects-showcase-heading{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:30px}.projects-showcase h2{font-size:clamp(3rem,6.2vw,6.5rem);line-height:1.05;margin:10px 0}.projects-heading-period{color:#81998c}.projects-showcase-heading p:last-child{color:#67716e;max-width:610px;line-height:1.7;margin:10px 0 0}.projects-slider-controls{display:flex;align-items:center;gap:10px;flex-shrink:0}.projects-slider-counter{font-size:.95rem;letter-spacing:.08em;color:#79847f;margin-right:17px;font-variant-numeric:tabular-nums}.projects-slider-counter strong{font-size:1.3rem;color:#22313f}.projects-slide-arrow{width:50px;height:50px;border:1px solid #a5b6ab;background:transparent;border-radius:50%;font-size:1.4rem;color:#22313f;cursor:pointer;transition:background .2s,color .2s}.projects-slide-arrow:hover{background:#22313f;color:#fff}.projects-slide-arrow:focus-visible{outline:3px solid #6b8779;outline-offset:3px}.projects-slide-arrow:disabled{opacity:.35;cursor:not-allowed}.projects-slider{overflow:hidden;outline-offset:5px;touch-action:pan-y}.projects-slider-track{display:flex;transition:transform .55s cubic-bezier(.22,.68,0,1);will-change:transform}.projects-slide{margin:0;flex:0 0 100%;min-width:0}.projects-slide img{display:block;width:100%;height:clamp(390px,52vw,700px);object-fit:cover;object-position:center;aspect-ratio:16/9;background:#dcded8}.projects-slide figcaption{display:flex;justify-content:space-between;padding:15px 2px;color:#69766f;font-size:.85rem;letter-spacing:.06em}.projects-slider-progress{height:2px;background:#dce2dc;margin-top:14px}.projects-slider-progress>span{display:block;height:100%;width:100%;background:#718c7c;transform:scaleX(.333);transform-origin:left;transition:transform .55s ease}.projects-outro{background:#243540;color:#fff;text-align:center;padding:clamp(75px,9vw,145px) 20px}.projects-outro-inner{max-width:760px}.projects-outro .projects-eyebrow{color:#a9c1b2}.projects-outro h2{font-size:clamp(2.7rem,5vw,5.5rem);line-height:1.1;margin:20px 0}.projects-outro p:not(.projects-eyebrow){color:#d3ddd8;line-height:1.7;margin:0 auto 30px;max-width:490px}.projects-outro .btn{display:inline-flex}.projects-desktop-title{position:absolute}
@media(max-width:800px){.projects-hero-desktop{display:none}.projects-hero-mobile{display:block}.projects-hero-mobile .site-container{padding-top:55px;padding-bottom:36px}.projects-hero-mobile h1{font-family:Georgia,serif;font-size:clamp(2.8rem,10vw,4.8rem);line-height:1.06;letter-spacing:-.04em;margin:14px 0 22px}.projects-hero-mobile p:not(.page-kicker){color:#5d676b;line-height:1.65;margin-bottom:25px}.projects-hero-mobile>img{display:block;width:100%;height:320px;object-fit:cover}.projects-intro{grid-template-columns:1fr;gap:12px;padding-top:65px}.projects-jump{grid-template-columns:1fr;gap:0;padding-bottom:60px}.projects-jump a{padding:15px 2px}.projects-showcase-heading{align-items:start;flex-direction:column;gap:22px}.projects-slider-controls{width:100%;justify-content:flex-end}.projects-slider-counter{margin-right:auto}.projects-slide img{height:clamp(310px,68vw,490px)}.projects-showcase{padding:65px 0}.projects-intro>p{margin-top:0}}
@media(max-width:480px){.projects-slide img{height:370px}.projects-slide-arrow{width:44px;height:44px}.projects-showcase h2{font-size:3.4rem}.projects-hero-mobile>img{height:270px}}
@media(prefers-reduced-motion:reduce){.projects-slider-track,.projects-slider-progress>span,.projects-slide-arrow{transition:none!important}}

/* v19: hero de Proyectos con texto HTML nítido y CTA consistente con Inicio. */
@media (min-width:801px) {
  .projects-hero-desktop { position:relative; width:100%; max-width:2016px; aspect-ratio:2016 / 780; background:#fff; overflow:hidden; }
  .projects-hero-photo { position:absolute; inset:0; width:100%; height:100%; object-fit:fill; clip-path:polygon(52% 0,100% 0,100% 100%,39% 100%); }
  .projects-hero-copy { position:absolute; z-index:1; top:50%; left:3.5%; width:43%; transform:translateY(-50%); }
  .projects-hero-copy .page-kicker { margin:0 0 clamp(12px,1.5vw,25px); }
  .projects-hero-copy h1 { margin:0 0 clamp(12px,1.6vw,28px); color:var(--graphite); font-family:var(--serif); font-size:clamp(31px,4.3vw,78px); font-weight:400; line-height:1.05; letter-spacing:-.035em; }
  .projects-hero-description { margin:0 0 clamp(18px,2vw,32px); max-width:580px; color:#3C484D; font-size:clamp(12px,1.03vw,17px); line-height:1.7; }
  .projects-hero-copy .btn { min-height:48px; }
}
@media (max-width:800px) {
  .projects-hero-mobile h1 { font-family:var(--serif); font-weight:400; letter-spacing:-.035em; color:var(--graphite); }
  .projects-hero-mobile .btn { min-height:48px; }
}

/* v20: galería compacta con pestañas; aislada de los estilos globales */
.projects-redesign .projects-gallery-intro{padding-top:clamp(38px,5vw,65px);padding-bottom:24px}
.projects-gallery-intro h2{font-family:Georgia,serif;font-weight:400;letter-spacing:-.035em;font-size:clamp(2.2rem,4vw,3.8rem);line-height:1.12;margin:12px 0}
.projects-gallery-intro>p:last-child{color:#59666a;font-size:1rem;margin:0;line-height:1.6}
.projects-tabs{display:flex;gap:8px;border-bottom:1px solid #d8dfda;padding-bottom:0}
.projects-tabs button{flex:1;display:flex;justify-content:center;align-items:center;gap:12px;min-height:55px;padding:12px;border:0;border-bottom:3px solid transparent;background:transparent;color:#5c6b68;font:600 1rem inherit;cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.projects-tabs button span{font-size:.72rem;color:#72867c;font-weight:500}
.projects-tabs button[aria-selected="true"]{border-bottom-color:#647e70;background:#eef2ed;color:#22313f}
.projects-tabs button:hover{background:#f0f3ef;color:#22313f}
.projects-tabs button:focus-visible{outline:3px solid #688176;outline-offset:-4px}
.projects-redesign .projects-showcase{padding:22px 0 14px;border:0;background:#faf9f6}
.projects-redesign .projects-showcase[hidden]{display:none!important}
.projects-redesign .projects-showcase-heading{margin-bottom:14px;align-items:center}
.projects-redesign .projects-showcase h2{font-size:clamp(1.5rem,2.6vw,2.25rem);margin:0;line-height:1.2}
.projects-redesign .projects-slide img{height:clamp(290px,35vw,480px);aspect-ratio:auto;object-fit:contain;background:#eceee9}
.projects-redesign .projects-slider-progress{margin-top:13px}
.projects-gallery-notice{font-size:.82rem;line-height:1.6;color:#65716b;margin-top:10px;margin-bottom:clamp(45px,6vw,85px)}
@media(max-width:650px){.projects-redesign .projects-gallery-intro{padding-top:35px;padding-bottom:18px}.projects-tabs{gap:0}.projects-tabs button{font-size:.83rem;padding:10px 3px;gap:4px;flex-direction:column;min-height:58px}.projects-redesign .projects-showcase{padding:17px 0 10px}.projects-redesign .projects-showcase-heading{gap:8px;flex-direction:row;align-items:center}.projects-redesign .projects-showcase h2{font-size:1.45rem}.projects-redesign .projects-slider-controls{width:auto;gap:5px}.projects-redesign .projects-slider-counter{font-size:.78rem;margin-right:3px}.projects-redesign .projects-slider-counter strong{font-size:1rem}.projects-redesign .projects-slide-arrow{width:36px;height:36px;font-size:1.15rem}.projects-redesign .projects-slide img{height:clamp(260px,75vw,410px)}}

/* Ajustes de prelanzamiento: privacidad legible y formularios integrados. */
.contact-privacy-info,.home-privacy-info{margin:8px 0 2px;padding:0;border:0;background:transparent;color:var(--muted);font-size:12px;line-height:1.55;text-align:left}
.contact-privacy-info a,.home-privacy-info a{text-decoration:underline;text-underline-offset:2px}
.contact-privacy,.privacy-row{font-size:12px;line-height:1.45;align-items:center}
.contact-privacy input,.privacy-row input{width:16px;height:16px;flex:0 0 16px;accent-color:var(--sage)}
.lead-form{min-width:0;max-width:100%;box-sizing:border-box}
.lead-form input,.lead-form select,.lead-form textarea,.visit-form input,.visit-form select,.visit-form textarea{box-sizing:border-box;min-width:0;border-radius:5px;font-size:14px;line-height:1.4}
.lead-form label>span,.visit-form label>span{font-size:12px;line-height:1.4}
.lead-form .form-two{min-width:0}
.lead-form .btn-full{margin-top:8px;min-height:48px}
@media(max-width:640px){.lead-form .form-two{grid-template-columns:minmax(0,1fr)}.contact-privacy-info,.home-privacy-info{font-size:12px}}

/* Ajuste final: etiquetas del formulario de inicio legibles y equilibradas con privacidad. */
.lead-form label > span { font-size: 13px; line-height: 1.45; }
