/*
  assets/styles.css
  Variables, layout responsive y estilos utilitarios para la landing.
  Pensado para lectura rápida: tokens al inicio, seguido de cabecera, componentes y media queries.
*/
:root{
  --blue-900:#305172; /* confianza/seguridad */
  --blue-500:#7c9fb6; /* acompañamiento */
  --blue-200:#c1d5d5; /* frescura/inclusión */
  --sand:#cab4a0;     /* calidez/hogar */
  --grey-800:#21231F; /* textos fuertes */
  --grey-600:#3A3A3A; /* textos */
  --grey-100:#ededed; /* fondos suaves */
  --radius:16px;
  --maxw:1100px;
  --focus: 3px solid var(--sand);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
html:focus-within{scroll-behavior:smooth}
body{
  margin:0;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Darker Grotesque", sans-serif;
  color:var(--grey-800);
  background:#fff;
  line-height:1.6;
}
/* Accessible skip link */
.skip-link{
  position:absolute; left:-9999px; top:auto; width:1px; height:1px; overflow:hidden;
}
.skip-link:focus{position:static; width:auto; height:auto; padding:.5rem 1rem; background:var(--sand); color:#000;}

.site-header{
  position:sticky;
  top:0;
  z-index:20;
  background:rgba(255,255,255,.98);
  border-bottom:1px solid var(--grey-100);
  backdrop-filter: saturate(150%) blur(4px);
  box-shadow:0 4px 16px rgba(48,81,114,.08);
}
/* Layout general */
.container{max-width:var(--maxw); margin:0 auto; padding:0 1rem;}
.navbar{display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.75rem 0;}
.brand{
  display:flex;
  align-items:center;
}
.brand img{
  display:block;
  height:40px;
  width:auto;
  max-width:100%;
}
.nav{margin:0;}
.nav--desktop{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex:1;
}
.nav__links{display:flex; align-items:center; gap:.75rem; list-style:none; padding:0; margin:0;}
.nav__links li{margin:0;}
.nav__links::-webkit-scrollbar{display:none;}
.nav__links a{display:inline-flex; align-items:center; justify-content:center; padding:.55rem .9rem; border-radius:999px; text-decoration:none; color:var(--grey-800); font-weight:600; white-space:nowrap; transition:background .2s ease, color .2s ease}
.nav__links a[aria-current="page"], .nav__links a:hover{background:var(--blue-200);}
.nav__toggle{
  display:none;
  position:relative;
  width:44px;
  height:44px;
  border-radius:14px;
  border:1px solid var(--grey-100);
  background:#fff;
  cursor:pointer;
  align-items:center;
  justify-content:center;
  padding:0;
  transition:box-shadow .2s ease, transform .2s ease;
}
.nav__toggle-line{
  width:20px;
  height:2px;
  background:var(--grey-800);
  display:block;
  margin:4px auto;
  border-radius:999px;
}
.nav__toggle:focus-visible,
.nav__drawer-close:focus-visible{
  outline:var(--focus);
  outline-offset:3px;
}

.nav__overlay[hidden]{display:none;}
.nav__overlay{
  position:fixed;
  inset:0;
  background:rgba(33,35,31,.6);
  z-index:25;
}

.nav__drawer{
  position:fixed;
  top:0;
  right:0;
  width:min(320px, 84vw);
  height:100vh;
  background:#fff;
  box-shadow:-20px 0 40px rgba(48,81,114,.18);
  transform:translateX(100%);
  transition:transform .3s ease;
  z-index:30;
  display:flex;
  flex-direction:column;
  pointer-events:none;
}
.nav__drawer.is-open{
  transform:translateX(0);
  pointer-events:auto;
}
.nav__drawer-inner{
  display:flex;
  flex-direction:column;
  height:100%;
  padding:1.5rem;
  gap:1.5rem;
}
.nav__drawer-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.nav__drawer-title{
  font-weight:800;
  font-size:1.1rem;
  color:var(--grey-800);
}
.nav__drawer-close{
  border:0;
  background:transparent;
  font-size:1.75rem;
  line-height:1;
  cursor:pointer;
  color:var(--grey-800);
}
.nav__drawer-nav ul{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  gap:.75rem;
}
.nav__drawer-nav a{
  display:block;
  padding:.6rem .75rem;
  border-radius:10px;
  background:var(--grey-100);
  color:var(--grey-800);
  text-decoration:none;
  font-weight:600;
  transition:background .2s ease, color .2s ease;
}
.nav__drawer-nav a:hover,
.nav__drawer-nav a:focus-visible{
  background:var(--blue-200);
  color:var(--grey-800);
}
.nav__drawer-nav a[aria-current="page"]{
  background:var(--blue-200);
}
.has-nav-open{
  overflow:hidden;
}

@media (max-width:1023px){
  .nav--desktop{display:none;}
  .nav__toggle{display:inline-flex;}
}

/* Botonera principal (única en la barra superior) */
.btn{
  border:0; border-radius:999px; padding:.6rem 1rem; font-weight:700; cursor:pointer;
}
.btn--primary{background:var(--blue-900); color:#fff}
.btn--ghost{background:transparent; border:2px solid var(--blue-900); color:var(--blue-900)}
.link-cta{display:inline-flex; align-items:center; gap:.35rem; font-weight:700; color:var(--blue-900); text-decoration:none;}
.link-cta::after{content:'→'; transition:transform .2s ease;}
.link-cta:hover::after{transform:translateX(4px);}

main{outline:none;}
main section[id]{scroll-margin-top:5rem;}

/* Hero minimalista que abre la experiencia */
.hero{
  background: linear-gradient(180deg, #ffffff 0%, var(--grey-100) 100%);
  padding:2rem 0 1rem;
}
.hero--minimal{
  position:relative;
  padding:clamp(5rem,12vw,7rem) 0 3rem;
  color:#fff;
}
.hero--minimal::before{
  content:'';
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg, rgba(33,35,31,.72) 0%, rgba(33,35,31,.78) 100%),
    url('../img/ninos-pintando-en-el-mismo-papel.jpg') center/cover no-repeat;
  opacity:.95;
}
.hero--minimal::before{background-repeat:no-repeat; background-position:center; background-size:cover;}
@supports (background: linear-gradient(0deg,#000,#000), image-set(url('data:image/gif;base64,R0lGODlhAQABAIAAAAUEBA==') type('image/webp'))){
  .hero--minimal::before{
    background:
      linear-gradient(180deg, rgba(33,35,31,.72) 0%, rgba(33,35,31,.78) 100%),
      image-set(
        url('../img/ninos-pintando-en-el-mismo-papel.webp') type('image/webp'),
        url('../img/ninos-pintando-en-el-mismo-papel.jpg') type('image/jpeg')
      );
    background-repeat:no-repeat;
    background-position:center;
    background-size:cover;
  }
}
.hero__minimal{display:flex; flex-direction:column; align-items:center; text-align:center; gap:1.5rem;}
.hero__minimal{position:relative; z-index:1;}
.hero__badge{display:flex; flex-direction:column; align-items:center; gap:.6rem;}
.hero__logo-img{width:92px; height:auto; filter:drop-shadow(0 12px 22px rgba(0,0,0,.32)); border-radius:20px;}
.hero__brand{text-transform:uppercase; letter-spacing:.14em; font-size:.85rem; font-weight:700; color:#fff;}
.hero__headline{font-size:clamp(1.9rem,4.5vw,2.9rem); margin:0; color:#fff; line-height:1.2; max-width:28rem;}

/* Colección de tarjetas reutilizadas en varias secciones */
.cards{display:grid; grid-template-columns:repeat(auto-fit, minmax(240px,1fr)); gap:1rem; margin:2rem 0}
.card{background:#fff; border:1px solid var(--grey-100); border-radius:var(--radius); padding:1rem; box-shadow:0 10px 30px rgba(48,81,114,.08); transition:transform .2s ease, box-shadow .2s ease}
.card:focus-within{transform:translateY(-3px); box-shadow:0 18px 38px rgba(48,81,114,.12);}
@media (hover:hover){
  .card:hover{transform:translateY(-3px); box-shadow:0 18px 38px rgba(48,81,114,.12);}
}
.card h3{margin:.25rem 0}
.card a{font-weight:700; text-decoration:none; color:var(--blue-900)}

/* Secciones genéricas y utilidades */
.section{padding:2rem 0}
.section h2{margin:0 0 .5rem; font-size:clamp(1.4rem,2.2vw,2rem); color:var(--blue-900)}
.section p.lead{font-size:1.1rem; margin-top:0}
.section__subheading{margin:0 0 .75rem; font-size:1.05rem; font-weight:700; color:var(--grey-600);}

/* Rejillas responsive reutilizadas */
.grid-2{display:grid; grid-template-columns:repeat(auto-fit, minmax(260px,1fr)); gap:1rem}
.list{list-style:none; padding:0; margin:0; display:grid; gap:.5rem}
.list li{padding:.5rem .75rem; background:var(--grey-100); border-radius:10px}
.list--plain li{background:transparent; padding:.35rem 0; border-radius:0; border-bottom:1px solid rgba(193,213,213,.35);}
.list--plain li:last-child{border-bottom:0;}

.about-links{margin-top:1.25rem;}
.about-links__list{display:flex; gap:.75rem; flex-wrap:wrap; list-style:none; padding:0; margin:0;}
.about-links__item{display:inline-flex; align-items:center; gap:.35rem; padding:.55rem .9rem; border-radius:999px; background:var(--grey-100); color:var(--blue-900); font-weight:700; text-decoration:none; box-shadow:0 8px 20px rgba(48,81,114,.08); transition:background .2s ease, color .2s ease;}
.about-links__item:hover{background:var(--blue-200);}
.about-links__item:focus-visible{outline:var(--focus); outline-offset:3px;}

.gallery{display:grid; grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); gap:1rem;}
.gallery__item{background:#fff; border:1px solid var(--grey-100); border-radius:var(--radius); overflow:hidden; box-shadow:0 12px 26px rgba(48,81,114,.08);}
.gallery__img{width:100%; height:220px; object-fit:cover; display:block;}
.gallery__caption{display:flex; flex-direction:column; gap:.25rem; padding:.85rem 1rem 1.1rem; color:var(--grey-800);}
.gallery__name{font-weight:700;}
.gallery__role{font-size:.95rem; color:var(--blue-900);}
.gallery__bio{font-size:.95rem; color:var(--grey-600); line-height:1.5;}

.accessibility{
  margin-top:1.5rem;
  padding:1.25rem 1.25rem 1.4rem;
  border-radius:var(--radius);
  background:linear-gradient(135deg, rgba(48,81,114,.08), rgba(122,159,182,.16));
  border:1px solid rgba(193,213,213,.45);
}
.accessibility h3{margin:0 0 .75rem; font-size:1.12rem; color:var(--blue-900);}

.section--services .service-groups{display:grid; gap:2rem;}
.service-group__header{display:flex; flex-direction:column; gap:.5rem; margin-bottom:1rem;}
.service-group__title{margin:0;}
.service-group__description{margin:0; color:var(--grey-600);}
.service-cards{display:grid; grid-template-columns:repeat(auto-fit, minmax(260px,1fr)); gap:1rem;}
.service-card{display:flex; flex-direction:column; height:100%;}
.service-card__media{margin:0; border-radius:var(--radius); overflow:hidden;}
.service-card__img{width:100%; height:200px; object-fit:cover; display:block;}
.service-card__body{display:flex; flex-direction:column; gap:.75rem; margin-top:1rem;}
.service-card__body h4{margin:0; font-size:1.15rem; color:var(--blue-900);}
.service-card__body p{margin:0; color:var(--grey-600);}
.service-card .link-cta{margin-top:auto; align-self:flex-start;}

.service-detail-hero{
  background:linear-gradient(135deg, rgba(48,81,114,.92), rgba(124,159,182,.85));
  color:#fff;
  padding:clamp(4rem,10vw,6rem) 0 2.5rem;
}
.service-detail-hero .container{display:flex; flex-direction:column; gap:1rem; align-items:flex-start;}
.service-detail__back{display:inline-flex; align-items:center; gap:.35rem; color:var(--sand); font-weight:700; text-decoration:none; font-size:.95rem;}
.service-detail__back:hover{text-decoration:underline;}
.service-detail__back-icon{font-size:1.2rem; line-height:1;}
.service-detail__category{display:inline-flex; align-items:center; gap:.35rem; padding:.35rem .85rem; border-radius:999px; background:rgba(255,255,255,.18); color:#fff; font-weight:700; letter-spacing:.08em; text-transform:uppercase; font-size:.75rem;}
.service-detail__summary{margin:0; max-width:48rem; color:rgba(255,255,255,.92); font-size:1.1rem;}
.service-detail__section{padding:3rem 0;}
.service-detail__grid{display:grid; grid-template-columns:minmax(0,2fr) minmax(0,1.1fr); gap:2rem; align-items:start;}
.service-detail__article{display:grid; gap:1.25rem;}
.service-detail__article p{margin:0; color:var(--grey-600); line-height:1.7;}
.service-detail__subtitle{margin:1rem 0 .5rem; font-size:1.2rem; color:var(--blue-900);}
.service-detail__highlights{list-style:none; padding:0; margin:0; display:grid; gap:.75rem;}
.service-detail__highlights li{padding:.85rem 1rem; background:var(--grey-100); border-radius:var(--radius); font-weight:600; color:var(--grey-600);}
.service-detail__sidebar{display:grid; gap:1.5rem;}
.service-detail__media{margin:0;}
.service-detail__img{width:100%; height:auto; border-radius:var(--radius); object-fit:cover; box-shadow:0 18px 36px rgba(48,81,114,.18);}
.service-detail__meta{display:grid; grid-template-columns:1fr; gap:.85rem; margin:0;}
.service-detail__meta dt{font-weight:700; color:var(--blue-900);}
.service-detail__meta dd{margin:0; color:var(--grey-600);}
.service-detail__cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:.75rem 1.6rem;
  border-radius:999px;
  background:linear-gradient(135deg, var(--blue-900), var(--blue-500));
  color:#fff;
  font-weight:700;
  text-decoration:none;
  box-shadow:0 16px 34px rgba(48,81,114,.25);
  transition:transform .15s ease, box-shadow .15s ease;
}
.service-detail__cta:hover{
  transform:translateY(-1px);
  box-shadow:0 20px 40px rgba(48,81,114,.3);
}
.service-detail__error{display:grid; gap:1rem; text-align:center;}
.service-detail__error h1{margin:0;}

/* Tabla de tarifas */
.table{width:100%; border-collapse:collapse; background:#fff; border-radius:var(--radius); overflow:hidden}
.table th, .table td{padding:.75rem; border-bottom:1px solid var(--grey-100); text-align:left}
.table th{background:var(--blue-200)}

/* FAQs */
.faq{display:grid; gap:.75rem;}
.faq__item{border:1px solid var(--grey-100); border-radius:var(--radius); background:#fff; box-shadow:0 12px 26px rgba(48,81,114,.08);}
.faq__trigger{
  width:100%;
  border:0;
  background:transparent;
  padding:1rem 1.25rem;
  font-weight:700;
  font-size:1.05rem;
  color:var(--grey-800);
  display:flex;
  align-items:center;
  justify-content:space-between;
  cursor:pointer;
}
.faq__trigger::after{content:'+'; font-weight:700; font-size:1.2rem; transition:transform .2s ease; margin-left:1rem;}
.faq__trigger[aria-expanded="true"]::after{content:'−'; transform:rotate(180deg);}
.faq__trigger:focus-visible{outline:var(--focus); outline-offset:4px;}
.faq__panel{padding:0 1.25rem 1.1rem;}
.faq__panel p{margin:0; color:var(--grey-600); line-height:1.6;}

/* Páginas legales */
.legal-hero{
  background:linear-gradient(135deg, var(--blue-900), #1b2f45);
  color:#fff;
  padding:4rem 0 3rem;
}
.legal-hero__eyebrow{
  font-size:.85rem;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-weight:700;
  margin:0 0 .5rem;
  color:var(--sand);
}
.legal-hero h1{
  margin:0;
  font-size:clamp(2rem, 4vw, 2.9rem);
}
.legal-hero__summary{
  max-width:48rem;
  font-size:1.1rem;
  color:rgba(255,255,255,.92);
  margin:1rem 0 0;
}
.legal-hero__updated{
  margin-top:1.2rem;
  font-weight:700;
  color:rgba(255,255,255,.8);
}
.legal-section{
  padding:3rem 0 4rem;
}
.legal-grid{
  display:grid;
  grid-template-columns:minmax(0,2.2fr) minmax(0,1fr);
  gap:2.5rem;
  align-items:start;
}
.legal-article{
  display:grid;
  gap:2rem;
}
.legal-block{
  padding:1.75rem;
  border-radius:var(--radius);
  border:1px solid rgba(48,81,114,.12);
  box-shadow:0 18px 34px rgba(48,81,114,.08);
  background:#fff;
  display:grid;
  gap:1rem;
}
.legal-block h2{
  margin:0;
  color:var(--blue-900);
  font-size:1.45rem;
}
.legal-block p{
  margin:0;
  color:var(--grey-600);
}
.legal-list{
  margin:0;
  padding-left:1.25rem;
  color:var(--grey-600);
}
.legal-list li{
  margin-bottom:.35rem;
}
.legal-aside{
  display:grid;
  gap:1.5rem;
}
.legal-card{
  padding:1.5rem;
  border-radius:var(--radius);
  border:1px solid rgba(48,81,114,.12);
  background:var(--grey-100);
  display:grid;
  gap:.9rem;
  box-shadow:0 12px 26px rgba(48,81,114,.08);
}
.legal-card h3{
  margin:0;
  font-size:1.1rem;
  color:var(--blue-900);
}
.legal-meta{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  gap:.75rem;
}
.legal-meta li{
  display:flex;
  flex-direction:column;
  gap:.15rem;
}
.legal-meta span{
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.75rem;
  color:var(--blue-500);
  font-weight:700;
}
.legal-meta strong{
  font-size:1.05rem;
  color:var(--grey-800);
}
.legal-card__btn{
  justify-self:flex-start;
  margin-top:.25rem;
}
.legal-table{
  overflow:auto;
  border-radius:var(--radius);
  box-shadow:0 12px 22px rgba(48,81,114,.08);
  border:1px solid rgba(48,81,114,.08);
}
.legal-table .table{
  min-width:460px;
}
.legal-table-note{
  font-size:.9rem;
  color:var(--grey-600);
  margin-top:.75rem;
}
.legal-key-points{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  gap:.65rem;
}
.legal-key-points li{
  display:flex;
  align-items:flex-start;
  gap:.5rem;
}
.legal-key-points li::before{
  content:'·';
  font-size:2rem;
  line-height:1;
  color:var(--blue-900);
  margin-top:-.35rem;
}

/* Formulario de contacto */
.form{display:grid; gap:.75rem; max-width:700px}
.form__field{display:grid; gap:.4rem;}
.multi-select{
  position:relative;
}
.multi-select__toggle{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  padding:.65rem .85rem;
  border:1px solid var(--grey-100);
  border-radius:12px;
  background:#fff;
  font-weight:600;
  color:var(--grey-800);
  cursor:pointer;
  transition:border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.multi-select__toggle:hover{
  border-color:var(--blue-200);
}
.multi-select__toggle:focus-visible{
  outline:var(--focus);
  outline-offset:3px;
}
.multi-select__summary{
  display:flex;
  flex-wrap:wrap;
  gap:.35rem;
  align-items:center;
}
.multi-select__placeholder{
  color:var(--grey-600);
  font-weight:500;
}
.multi-select__summary-badge{
  background:var(--blue-200);
  color:var(--grey-800);
  border-radius:999px;
  padding:.15rem .55rem;
  font-size:.85rem;
  font-weight:600;
}
.multi-select__caret{
  width:.7rem;
  height:.7rem;
  border-right:2px solid var(--grey-600);
  border-bottom:2px solid var(--grey-600);
  transform:rotate(45deg);
  transition:transform .2s ease;
  flex-shrink:0;
}
.multi-select.is-open .multi-select__caret{
  transform:rotate(-135deg);
}
.multi-select__menu{
  position:absolute;
  inset-inline:0;
  top:calc(100% + .4rem);
  background:#fff;
  border:1px solid var(--grey-100);
  border-radius:12px;
  box-shadow:0 16px 32px rgba(48,81,114,.16);
  padding:.75rem;
  display:grid;
  gap:.5rem;
  max-height:18rem;
  overflow:auto;
  z-index:25;
}
.multi-select__menu[hidden]{display:none;}
.multi-select__option{
  display:flex;
  align-items:center;
  gap:.55rem;
  color:var(--grey-800);
  font-weight:600;
  cursor:pointer;
  width:100%;
}
.multi-select__option input{
  width:1rem;
  height:1rem;
  accent-color:var(--blue-900);
  flex-shrink:0;
}
.multi-select__native{display:none !important;}
.input, .select, .textarea{
  width:100%; padding:.6rem .75rem; border:1px solid var(--grey-100); border-radius:10px; font-size:1rem
}
.select[multiple]{min-height:160px; padding:.75rem;}
label{font-weight:700}
.form .form__submit{
  justify-self:end;
  border:0;
  background:linear-gradient(135deg,var(--blue-900),var(--blue-500));
  padding:.65rem 1.5rem;
  font-weight:700;
  color:#fff;
  cursor:pointer;
  border-radius:999px;
  box-shadow:0 10px 24px rgba(48,81,114,.18);
  transition:transform .15s ease, box-shadow .15s ease;
}
.form .form__submit:hover{
  transform:translateY(-1px);
  box-shadow:0 14px 32px rgba(48,81,114,.24);
}
.form .form__submit[disabled],
.form .form__submit.is-loading{
  opacity:.65;
  cursor:not-allowed;
  pointer-events:none;
  transform:none;
  box-shadow:none;
}
.form__status{margin:0; font-weight:600; min-height:1.2rem;}
.form__status[data-status="loading"]{color:var(--blue-900);}
.form__status[data-status="success"]{color:#1f7a47;}
.form__status[data-status="error"]{color:#b63a3a;}
.form__hint{font-size:.85rem; color:var(--grey-600);}
.form__privacy{font-size:.9rem; color:var(--grey-600); margin:0;}
.form__honeypot{position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden; opacity:0;}

/* Mapa embebido */
.map{width:100%; height:320px; border:0; border-radius:var(--radius); overflow:hidden}

/* Pie de página */
footer{background:var(--blue-900); color:#fff; margin-top:2rem; padding:1.5rem 0}
.footer__inner a{color:#fff;}
.footer__inner a:hover{text-decoration:underline;}
.footer__inner strong{display:block; margin-bottom:.1rem;}
.footer__inner .list{gap:.35rem;}
.footer__inner .list a{
  display:inline-flex;
  padding:.35rem .6rem;
  border-radius:8px;
  background:rgba(255,255,255,.12);
  color:var(--blue-900);
  text-decoration:none;
  font-weight:600;
  transition:background .2s ease, color .2s ease;
}
.footer__inner .list a:hover{
  background:#fff;
  color:var(--blue-900);
}
.footer__inner .list a:focus-visible{
  outline:var(--focus);
  background:#fff;
  color:var(--blue-900);
}
.footer__inner{display:grid; grid-template-columns:2fr 1fr; gap:1rem}

:focus{outline:var(--focus)}
.visually-hidden{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  padding:0 !important;
  margin:-1px !important;
  overflow:hidden !important;
  clip:rect(0,0,0,0) !important;
  clip-path:inset(50%) !important;
  white-space:nowrap !important;
  border:0 !important;
}
/* Responsive: tablet */
@media (max-width:900px){
  .container{padding:0 .85rem;}
  .navbar{flex-wrap:wrap; gap:.75rem;}
  .hero--minimal{padding:4rem 0 2.2rem;}
  .section{padding:1.75rem 0;}
  footer{margin-top:1.5rem;}
  .service-detail__summary{font-size:1.05rem;}
  .service-detail__grid{grid-template-columns:1fr;}
  .legal-grid{grid-template-columns:1fr;}
  .legal-hero{padding:3rem 0 2.5rem;}
}
/* Responsive: móvil */
@media (max-width:600px){
  body{font-size:1rem;}
  .navbar{align-items:flex-start;}
  .btn--ghost{border-width:1px;}
  .hero__headline{font-size:clamp(1.7rem,6vw,2.3rem);}
  .map{height:220px;}
  .table th, .table td{padding:.6rem;}
  .footer__inner{grid-template-columns:1fr;}
  .gallery__img{height:200px;}
  .service-detail-hero{padding:3.5rem 0 2rem;}
  .service-detail__summary{font-size:1rem;}
  .legal-block{padding:1.25rem;}
  .legal-card{padding:1.25rem;}
}
/* Accesibilidad: respeta reduce motion */
@media (prefers-reduced-motion: reduce){
  *{animation:none !important; transition:none !important}
}
