:root{
  --crema: #f6efe1;
  --crema-2: #efe6d3;
  --tierra: #b85f43;
  --tierra-dark: #a04e34;
  --musgo: #667057;
  --ocre: #c69a4b;
  --marron: #3d3029;
  --linea: rgba(61,48,41,0.12);
  --texto-suave: rgba(61,48,41,0.8);
}

*{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
html, body{ overflow-x: hidden; width:100%; }
body{
  margin:0;
  background: var(--crema);
  color: var(--marron);
  font-family: 'DM Sans', sans-serif;
  font-size: 17px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
h1,h2,h3,.serif{ font-family: 'Fraunces', serif; font-weight: 500; margin:0; }
p{ margin:0; }
ul{ margin:0; padding:0; }
a{ color: inherit; text-decoration: none; }
img,svg{ display:block; max-width:100%; }
.wrap{ max-width: 1120px; margin: 0 auto; padding: 0 32px; }
.narrow{ max-width: 720px; margin: 0 auto; padding: 0 32px; }
a:focus-visible, button:focus-visible{ outline: 2px solid var(--ocre); outline-offset: 3px; border-radius: 4px; }

@media (prefers-reduced-motion: reduce){
  *{ animation: none !important; transition: none !important; }
  html{ scroll-behavior: auto; }
  .hero-mark .ring, .hero-mark.js-anim .ring{ opacity:1; }
}

.kicker{ font-size:0.72rem; letter-spacing:0.2em; text-transform:uppercase; color: var(--musgo); margin-bottom:18px; }

/* ---------- NAV ---------- */
header{
  position: sticky; top:0; z-index: 50;
  background: var(--crema);
  border-bottom: 1px solid rgba(61,48,41,0.08);
}
nav.wrap{ display:flex; align-items:center; justify-content:space-between; height: 76px; }
.brand{ display:flex; align-items:center; gap:12px; min-width:0; }
.brand-mark{ width:30px; height:30px; flex-shrink:0; }
.brand-name{ font-family:'Fraunces', serif; font-size:1.05rem; letter-spacing:0.02em; white-space:nowrap; }
.brand-name span{ display:block; font-family:'DM Sans',sans-serif; font-size:0.62rem; letter-spacing:0.16em; color: var(--musgo); margin-top:1px; }
.nav-links{ display:flex; align-items:center; gap:26px; flex-shrink:0; }
.nav-links a{ font-size:0.92rem; color: var(--marron); opacity:0.75; transition: opacity .2s; white-space:nowrap; }
.nav-links a:hover, .nav-links a[aria-current="page"]{ opacity:1; }
.nav-links a[aria-current="page"]{ text-decoration: underline; text-decoration-color: var(--ocre); text-underline-offset: 6px; text-decoration-thickness: 2px; }
.nav-links .nav-cta{
  background: var(--tierra); color: var(--crema); opacity:1;
  padding: 10px 20px; border-radius: 100px; font-size:0.88rem;
}
.nav-links .nav-cta:hover{ background: var(--tierra-dark); }
.nav-toggle{ display:none; }

/* ---------- BOTONES ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding: 15px 30px; border-radius: 100px; font-size:0.95rem; font-weight:500;
  transition: transform .2s ease, background .2s ease;
}
.btn:hover{ transform: translateY(-2px); }
.btn-crema{ background: var(--crema); color: var(--marron); }
.btn-crema:hover{ background:#fff; }
.btn-ocre{ background: var(--ocre); color: var(--marron); }
.btn-tierra{ background: var(--tierra); color: var(--crema); }
.btn-tierra:hover{ background: var(--tierra-dark); }

/* ---------- HERO (inicio) ---------- */
.hero{ background: var(--tierra); color: var(--crema); padding: 96px 0 88px; position: relative; overflow: hidden; }
.hero .wrap{ text-align:center; display:flex; flex-direction:column; align-items:center; }
.hero-mark{ width: 148px; height:148px; margin-bottom: 28px; overflow: visible; }
.hero-mark .ring{ opacity: 1; }
.hero-mark.js-anim .ring{ opacity: 0; }
.hero .kicker{ color: var(--ocre); letter-spacing:0.22em; margin-bottom:16px; }
.hero h1{ font-size: clamp(2.6rem, 6vw, 4rem); line-height:1.05; max-width: 780px; }
.hero-lead{ margin-top:22px; max-width:600px; font-size:1.1rem; line-height:1.55; color: rgba(246,239,225,0.92); }
.hero-tagline{ font-family:'Fraunces', serif; font-style:italic; font-size:1.2rem; margin-top:14px; max-width:560px; color: var(--crema); }
.hero .btn{ margin-top:38px; }

/* ---------- SOBRE ---------- */
.sobre{ padding: 110px 0; }
.sobre .wrap{ display:grid; grid-template-columns: 0.95fr 1.05fr; gap: 72px; align-items:start; }
.sobre h2{ font-size: clamp(1.9rem, 3vw, 2.5rem); line-height:1.18; max-width: 460px; }
.sobre-copy{ margin-top:22px; font-size:1.02rem; max-width: 470px; color: var(--texto-suave); }
.sobre-copy + .sobre-copy{ margin-top:14px; }
.ayuda-titulo{ font-size:1.3rem; margin-bottom: 8px; }
.circle-item{ display:flex; gap:18px; align-items:flex-start; padding: 26px 0; border-top: 1px solid var(--linea); }
.circle-item:last-child{ border-bottom: 1px solid var(--linea); }
.circle-dot{ width:14px; height:14px; border-radius:50%; margin-top:7px; flex-shrink:0; }
.circle-item h3{ font-size:1.12rem; font-weight:500; }
.circle-item p{ margin-top:8px; font-size:0.95rem; color: var(--texto-suave); max-width:440px; }

/* ---------- SERVICIOS (tarjetas) ---------- */
.servicios{ background: var(--crema-2); padding: 110px 0; }
.servicios-head{ max-width: 560px; margin-bottom: 56px; }
.servicios-head .kicker{ color: var(--tierra); }
.servicios-head h2{ font-size: clamp(1.9rem, 3vw, 2.5rem); line-height:1.18; }
.servicios-head p{ margin-top:14px; color: var(--texto-suave); }
.servicios-grid{ display:grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.servicio-card{
  display:flex; flex-direction:column;
  background: var(--crema); border-radius: 4px; padding: 38px 30px 32px;
  border-top: 3px solid var(--acento, var(--ocre));
  transition: transform .25s ease, box-shadow .25s ease;
}
.servicio-card:hover{ transform: translateY(-4px); box-shadow: 0 14px 30px rgba(61,48,41,0.08); }
.servicio-card .marca-doble{ display:flex; align-items:center; gap:14px; margin-bottom:20px; }
.servicio-card .marca-doble .mark{ width:54px; height:54px; flex-shrink:0; }
.servicio-card .icono-servicio{
  width:58px; height:58px; object-fit:contain; flex-shrink:0;
  padding-left:14px; border-left:1px solid var(--linea);
}
.servicio-card h3{ font-size:1.3rem; line-height:1.25; }
.servicio-card p{ margin-top:10px; font-size:0.94rem; color: var(--texto-suave); flex-grow:1; }
.servicio-card .ver-mas{ margin-top:24px; font-size:0.9rem; font-weight:500; color: var(--acento, var(--tierra)); border-bottom:1px solid currentColor; align-self:flex-start; padding-bottom:2px; }

/* ---------- HISTORIA (teaser en inicio) ---------- */
.teaser{ padding: 100px 0; text-align:center; }
.teaser .narrow{ display:flex; flex-direction:column; align-items:center; }
.teaser blockquote{ margin:0; font-family:'Fraunces', serif; font-size: clamp(1.5rem, 2.6vw, 2rem); line-height:1.35; max-width: 620px; }
.teaser p{ margin-top:18px; color: var(--texto-suave); max-width:520px; }
.teaser .btn{ margin-top:30px; }

/* ---------- CONTACTO ---------- */
.contacto{ background: var(--marron); color: var(--crema); padding: 100px 0; text-align:center; }
.contacto .wrap{ display:flex; flex-direction:column; align-items:center; }
.contacto .kicker{ color: var(--ocre); }
.contacto h2{ font-size: clamp(1.9rem, 3.4vw, 2.6rem); max-width: 600px; line-height:1.2; }
.contacto > .wrap > p{ margin-top:18px; max-width:480px; font-size:1rem; color: rgba(246,239,225,0.75); }
.contacto .btn{ margin-top:36px; }
.canales{ margin-top:40px; display:flex; flex-wrap:wrap; justify-content:center; gap: 12px 36px; list-style:none; }
.canales li{ font-size:0.95rem; color: rgba(246,239,225,0.85); }
.canales span{ display:block; font-size:0.7rem; letter-spacing:0.18em; text-transform:uppercase; color: var(--ocre); margin-bottom:4px; }
.canales a{ border-bottom:1px solid rgba(246,239,225,0.35); padding-bottom:1px; }
.canales a:hover{ border-bottom-color: var(--crema); }

/* ---------- PAGINAS INTERNAS ---------- */
.page-hero{ background: var(--crema-2); padding: 84px 0 72px; }
.page-hero .narrow{ display:flex; flex-direction:column; align-items:flex-start; }
.page-hero .mark{ width:96px; height:96px; margin-bottom:24px; object-fit:contain; }
.page-hero .kicker{ color: var(--acento, var(--tierra)); }
.page-hero h1{ font-size: clamp(2.2rem, 5vw, 3.2rem); line-height:1.08; }
.page-hero .bajada{ margin-top:18px; font-family:'Fraunces', serif; font-style:italic; font-size:1.25rem; line-height:1.45; color: var(--texto-suave); max-width: 600px; }

.contenido{ padding: 80px 0 100px; }
.contenido .narrow > * + *{ margin-top: 22px; }
.contenido p{ font-size:1.04rem; color: var(--texto-suave); }
.contenido h2{ font-size: clamp(1.5rem, 2.4vw, 1.9rem); line-height:1.25; color: var(--marron); }
.contenido .narrow > h2{ margin-top: 64px; }
.contenido .lead{ font-size:1.15rem; color: var(--marron); }

.datos{ display:grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.dato{ border-top: 2px solid var(--acento, var(--ocre)); padding-top: 14px; }
.dato strong{ display:block; font-family:'Fraunces', serif; font-weight:500; font-size:1.15rem; color: var(--marron); }
.dato span{ display:block; margin-top:4px; font-size:0.92rem; color: var(--texto-suave); }

.areas{ display:grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.area{ background: var(--crema-2); border-radius: 4px; padding: 26px 26px 24px; }
.area h3{ font-size:1.12rem; line-height:1.35; display:flex; align-items:flex-start; gap:10px; }
.area h3::before{ content:""; width:10px; height:10px; border-radius:50%; background: var(--acento, var(--ocre)); flex-shrink:0; margin-top:0.45em; }
.area ul{ margin-top:12px; list-style:none; }
.area li{ position:relative; padding-left:16px; font-size:0.94rem; color: var(--texto-suave); }
.area li + li{ margin-top:8px; }
.area li::before{ content:""; position:absolute; left:0; top:0.72em; width:6px; height:1px; background: var(--marron); opacity:.5; }

.sectores{ display:grid; grid-template-columns: repeat(3, 1fr); gap: 2px; background: var(--linea); border:1px solid var(--linea); border-radius:4px; overflow:hidden; list-style:none; }
.sectores li{ background: var(--crema); padding: 22px 16px; text-align:center; font-family:'Fraunces', serif; font-size:1.02rem; line-height:1.3; display:flex; align-items:center; justify-content:center; min-height: 92px; }

.nota{ border-left: 3px solid var(--acento, var(--ocre)); padding: 4px 0 4px 18px; }
.nota strong{ color: var(--marron); font-weight:500; }

.cierre-servicio{ background: var(--marron); color: var(--crema); padding: 84px 0; text-align:center; }
.cierre-servicio .narrow{ display:flex; flex-direction:column; align-items:center; }
.cierre-servicio h2{ font-size: clamp(1.7rem, 3vw, 2.3rem); line-height:1.2; max-width:560px; }
.cierre-servicio p{ margin-top:16px; color: rgba(246,239,225,0.75); max-width:480px; }
.cierre-servicio .btn{ margin-top:32px; }

.otros{ padding: 80px 0; }
.otros h2{ font-size:1.5rem; margin-bottom: 28px; }
.otros-grid{ display:grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.otros-grid .servicio-card{ background: var(--crema-2); }

/* Mi historia */
.retrato{ float:right; width: 250px; margin: 6px 0 22px 34px; }
.retrato img{ width:100%; height:auto; border-radius: 3px; }
.contenido .narrow > .retrato{ margin-top: 6px; }



.historia .contenido .narrow > p{ font-family:'Fraunces', serif; font-size:1.2rem; line-height:1.75; color: var(--marron); }
.historia .contenido .narrow > p + p{ margin-top: 26px; }
.historia .contenido .narrow > p.primera::first-letter{ float:left; font-size:4.1rem; line-height:0.85; padding: 6px 10px 0 0; color: var(--tierra); }
.historia .final{ margin-top: 56px !important; padding-top: 40px; border-top: 1px solid var(--linea); font-style: italic; font-size:1.6rem !important; line-height:1.35 !important; color: var(--tierra) !important; }

/* ---------- FOOTER ---------- */
footer{ padding: 28px 0; }
footer .wrap{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px 20px; font-size:0.82rem; color: rgba(61,48,41,0.6); }
footer a:hover{ color: var(--marron); }

/* ---------- RESPONSIVE ---------- */
section[id]{ scroll-margin-top: 76px; }

@media (max-width: 980px){
  .nav-links{
    position:fixed; top:76px; left:0; right:0; bottom:0; background: var(--crema);
    flex-direction:column; align-items:stretch; gap:0;
    padding: 8px 32px 32px; transform: translateY(-8px);
    opacity:0; visibility:hidden; pointer-events:none;
    overflow-y:auto; -webkit-overflow-scrolling:touch;
    transition: opacity .2s ease, transform .2s ease, visibility .2s;
    box-shadow: 0 12px 24px rgba(61,48,41,0.08);
  }
  .nav-links.open{ opacity:1; visibility:visible; pointer-events:auto; transform: translateY(0); }
  .nav-links a{ padding: 16px 0; width:100%; border-bottom:1px solid rgba(61,48,41,0.08); opacity:1; font-size:1rem; }
  .nav-links a[aria-current="page"]{ text-decoration:none; color: var(--tierra); }
  .nav-links .nav-cta{ margin-top:18px; justify-content:center; text-align:center; width:100%; border-bottom:none; padding:14px 20px; }
  .nav-toggle{
    display:flex; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer;
    padding:10px; margin: -10px -10px -10px 0; z-index:2;
  }
  .nav-toggle span{ width:22px; height:2px; background: var(--marron); transition: transform .2s ease, opacity .2s ease; }
  .nav-toggle[aria-expanded="true"] span:nth-child(1){ transform: translateY(7px) rotate(45deg); }
  .nav-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
  .nav-toggle[aria-expanded="true"] span:nth-child(3){ transform: translateY(-7px) rotate(-45deg); }
  body.menu-open{ overflow:hidden; }
}

@media (max-width: 860px){
  .sobre .wrap{ grid-template-columns: 1fr; gap: 48px; }
  .servicios-grid{ grid-template-columns: 1fr; }
  .otros-grid{ grid-template-columns: 1fr; }
  .areas{ grid-template-columns: 1fr; }
}

@media (max-width: 600px){
  .datos{ grid-template-columns: 1fr; gap: 16px; }
  .sectores li{ min-height: 84px; padding: 14px 8px; font-size:0.86rem; }
  .canales{ flex-direction:column; gap:18px; }
}

@media (max-width: 480px){
  .hero{ padding: 72px 0 64px; }
  .hero-mark{ width:112px; height:112px; }
  .sobre, .servicios{ padding: 76px 0; }
  .teaser, .contacto{ padding: 76px 0; }
  .page-hero{ padding: 60px 0 52px; }
  .contenido{ padding: 56px 0 72px; }
  .wrap, .narrow{ padding: 0 20px; }
  .servicio-card{ padding: 30px 24px 28px; }
  .historia .contenido .narrow > p{ font-size:1.1rem; }
  .retrato{ float:none; width:100%; max-width: 300px; margin: 0 auto 28px; }
  .btn{ width:100%; max-width: 340px; }
}
