/* Plantilla "Sello" — boutique monocromo con un solo toque de color */
:root {
  --s-acento: #b8975a; --s-acento-oscuro: #b8975a;
  --s-oscuro: #2c2a35; --s-oscuro-2: #1b1a21;
  --s-claro: #ffffff; --s-claro-alt: #f0f0f0; --s-texto-claro: #1b1a21; --s-suave-claro: #6a6872; --s-borde-claro: #d9d9dc;
  --s-texto-oscuro: #ece9e2; --s-suave-oscuro: #a8a5a0; --s-borde-oscuro: rgba(255,255,255,.16);
  /* superficies internas: cambian con el modo */
  --s-fondo: var(--s-claro); --s-fondo-alt: var(--s-claro-alt); --s-texto: var(--s-texto-claro); --s-suave: var(--s-suave-claro); --s-borde: var(--s-borde-claro);
  --s-acento-int: var(--s-acento);
  --s-escala: 1;
  --f-titulos: 'Open Sans', system-ui, sans-serif; --f-texto: 'Open Sans', system-ui, sans-serif;
  --radio: 0px; --radio-chico: 0px; --radio-boton: 0px; --radio-circulo: 0px;
  /* alias que usa base.css (formulario, crédito, estrellas) */
  --fondo: var(--s-fondo); --texto: var(--s-texto); --borde: var(--s-borde); --acento: var(--s-acento-int); --fondo-campo: transparent; --estrella: var(--s-acento-int);
}
[data-modo="oscuro"] {
  --s-fondo: var(--s-oscuro-2); --s-fondo-alt: var(--s-oscuro); --s-texto: var(--s-texto-oscuro); --s-suave: var(--s-suave-oscuro); --s-borde: var(--s-borde-oscuro);
  --s-acento-int: var(--s-acento-oscuro);
}

body { font-weight: 300; letter-spacing: .01em; }
h1, h2, h3 { font-weight: 300; letter-spacing: .04em; }
strong { font-weight: 400; }
.s-cont { width: min(1240px, 100% - 48px); margin-inline: auto; }
.s-angosto { max-width: 860px; }
.s-seccion { padding: clamp(72px, 9vw, 120px) 0; background: var(--s-fondo); color: var(--s-texto); scroll-margin-top: 76px; }
.s-seccion-alt { background: var(--s-fondo-alt); }
.s-oscuro { background: var(--s-oscuro); color: var(--s-texto-oscuro); }
.s-kicker { font-size: .68rem; letter-spacing: .32em; text-transform: uppercase; color: var(--s-acento-int); margin-bottom: 16px; font-weight: 400; }
.s-oscuro .s-kicker, .s-hero .s-kicker, .s-franja .s-kicker { color: var(--s-acento-oscuro); }
h2 { font-size: calc(clamp(1.9rem, 3.6vw, 2.8rem) * var(--s-escala)); line-height: 1.15; }
h3 { font-size: calc(1.2rem * var(--s-escala)); line-height: 1.3; }
.s-encabezado { max-width: 640px; margin-bottom: clamp(40px, 5vw, 64px); }
.s-encabezado::after { content: ""; display: block; width: 56px; height: 1px; background: var(--s-acento-int); margin-top: 22px; }
.s-linea { display: block; width: 56px; height: 1px; background: var(--s-acento-oscuro); margin: 22px 0; }

.s-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 14px 26px; border: 1px solid currentColor; border-radius: var(--radio-boton); font-size: .72rem; letter-spacing: .24em; text-transform: uppercase; text-decoration: none; font-weight: 400; cursor: pointer; background: transparent; transition: background .25s, color .25s, border-color .25s; }
.s-btn .icono { width: 16px; height: 16px; }
.s-btn-lleno { background: var(--s-texto); color: var(--s-fondo); border-color: var(--s-texto); }
.s-btn-lleno:hover { background: var(--s-acento-int); border-color: var(--s-acento-int); color: #fff; }
[data-modo="oscuro"] .s-btn-lleno:hover { color: var(--s-oscuro-2); }

/* Cabecera: flota sobre el hero y se oscurece al bajar */
.s-cabecera { position: fixed; top: 0; left: 0; right: 0; z-index: 800; color: #fff; transition: background .3s, box-shadow .3s; }
.scrolleado .s-cabecera, .menu-abierto .s-cabecera { background: var(--s-oscuro-2); box-shadow: 0 1px 0 var(--s-borde-oscuro); }
.s-cabecera-in { display: flex; align-items: center; gap: 28px; height: 76px; }
.s-marca { display: flex; align-items: center; gap: 12px; text-decoration: none; margin-right: auto; }
.s-marca img { max-height: 46px; width: auto; }
.s-marca-sigla { width: 40px; height: 40px; display: grid; place-items: center; border: 1px solid var(--s-acento-oscuro); color: var(--s-acento-oscuro); font-size: .85rem; letter-spacing: .12em; border-radius: var(--radio-circulo); flex: none; }
.s-marca-nombre { font-size: .82rem; letter-spacing: .26em; text-transform: uppercase; font-weight: 300; }
.s-nav { display: flex; align-items: center; gap: 26px; }
.s-nav a { text-decoration: none; font-size: .68rem; letter-spacing: .22em; text-transform: uppercase; opacity: .82; transition: opacity .2s, color .2s; }
.s-nav a:hover { opacity: 1; color: var(--s-acento-oscuro); }
.s-nav-tel { display: inline-flex; align-items: center; gap: 8px; padding-left: 26px; border-left: 1px solid var(--s-borde-oscuro); opacity: 1 !important; }
.s-nav-tel .icono { width: 15px; height: 15px; color: var(--s-acento-oscuro); }
.menu-btn { display: none; background: none; border: 0; color: #fff; padding: 6px; cursor: pointer; }
.menu-btn .icono { width: 28px; height: 28px; }
.menu-btn .cerrar, .menu-abierto .menu-btn .abrir { display: none; }
.menu-abierto .menu-btn .cerrar { display: block; }

/* Hero */
.s-hero { position: relative; min-height: 100svh; display: flex; align-items: center; background: var(--s-oscuro-2); color: #fff; overflow: hidden; padding: 110px 0 70px; }
.s-hero::before { content: ""; position: absolute; inset: 0; background: radial-gradient(ellipse at 20% 50%, color-mix(in srgb, var(--s-acento-oscuro) 12%, transparent), transparent 55%); pointer-events: none; }
.s-hero-foto { position: absolute; inset: 0; background: var(--s-hero-img) center / cover no-repeat; filter: grayscale(1) contrast(1.05); opacity: .32; }
.s-hero-foto::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, var(--s-oscuro-2) 0%, transparent 60%); }
.s-hero-in { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(40px, 6vw, 96px); align-items: center; }
.s-hero-emblema { margin-bottom: 36px; }
.s-emblema { width: clamp(180px, 20vw, 240px); height: auto; color: var(--s-acento-oscuro); font-family: var(--f-texto); font-weight: 300; }
.s-hero-logo { max-width: 260px; max-height: 160px; width: auto; }
.s-hero h1 { font-size: calc(clamp(2.2rem, 4.4vw, 3.6rem) * var(--s-escala)); letter-spacing: .06em; line-height: 1.1; }
.s-hero-lema { font-size: clamp(1.05rem, 1.5vw, 1.3rem); line-height: 1.5; max-width: 520px; }
.s-hero-bajada { margin-top: 18px; font-size: .95rem; line-height: 1.75; color: #b9b6bf; max-width: 500px; }

.s-mosaicos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.s-mosaico { aspect-ratio: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 16px; border: 1px solid rgba(255,255,255,.45); border-radius: var(--radio); text-decoration: none; color: #fff; font-size: .66rem; letter-spacing: .24em; text-transform: uppercase; text-align: center; padding: 14px; transition: background .3s, border-color .3s, color .3s; }
.s-mosaico .icono { width: 34px; height: 34px; stroke-width: 1.1; transition: color .3s; }
.s-mosaico:hover { background: #fff; color: var(--s-oscuro-2); border-color: #fff; }
.s-mosaico-acento { border-color: var(--s-acento-oscuro); color: var(--s-acento-oscuro); }
.s-mosaico-acento:hover { background: var(--s-acento-oscuro); color: var(--s-oscuro-2); border-color: var(--s-acento-oscuro); }

/* Franja de datos */
.s-franja { background: var(--s-oscuro); color: var(--s-texto-oscuro); border-top: 1px solid color-mix(in srgb, var(--s-acento-oscuro) 45%, transparent); }
.s-franja-in { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.s-dato { padding: 30px 28px; border-left: 1px solid var(--s-borde-oscuro); display: flex; flex-direction: column; gap: 8px; }
.s-dato:first-child { border-left: 0; padding-left: 0; }
.s-dato span { font-size: .64rem; letter-spacing: .3em; text-transform: uppercase; color: var(--s-acento-oscuro); }
.s-dato strong { font-weight: 300; font-size: .98rem; line-height: 1.45; }

/* Servicios notariales */
.s-areas { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--s-borde); border: 1px solid var(--s-borde); border-radius: var(--radio); overflow: hidden; }
.s-area { position: relative; background: var(--s-fondo); padding: 40px 34px 44px; display: flex; flex-direction: column; gap: 14px; transition: background .3s; }
.s-area:hover { background: var(--s-fondo-alt); }
.s-area-cab { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.s-area-cab .icono { width: 34px; height: 34px; stroke-width: 1.1; color: var(--s-acento-int); }
.s-romano { font-size: 1.6rem; letter-spacing: .14em; color: var(--s-acento-int); line-height: 1; }
.s-area h3 { font-size: calc(1.3rem * var(--s-escala)); }
.s-area p { color: var(--s-suave); font-size: .93rem; line-height: 1.75; }
.s-area-destacada { background: var(--s-oscuro-2); color: var(--s-texto-oscuro); }
.s-area-destacada:hover { background: var(--s-oscuro); }
.s-area-destacada p { color: #b9b6bf; }
.s-area-destacada .s-romano, .s-area-destacada .s-area-cab .icono { color: var(--s-acento-oscuro); }
.s-area-sello { position: absolute; right: 22px; bottom: 18px; font-size: .58rem; letter-spacing: .28em; text-transform: uppercase; color: var(--s-acento-oscuro); }

/* Trámites frecuentes */
.s-tramites { display: grid; grid-template-columns: 1fr 1fr; column-gap: clamp(32px, 5vw, 80px); border-top: 1px solid var(--s-borde); }
.s-tramites li { display: flex; gap: 22px; padding: 26px 0; border-bottom: 1px solid var(--s-borde); }
.s-num { font-size: .8rem; letter-spacing: .14em; color: var(--s-acento-int); padding-top: 6px; flex: none; width: 28px; }
.s-tramites h3 { font-size: calc(1.1rem * var(--s-escala)); margin-bottom: 6px; }
.s-tramites p { color: var(--s-suave); font-size: .9rem; line-height: 1.7; }

/* Nosotros + valores + cita */
.s-nosotros { display: grid; grid-template-columns: 7fr 5fr; gap: clamp(40px, 7vw, 110px); align-items: start; }
.s-nosotros-texto h2 { margin-bottom: 24px; }
.s-nosotros-texto p:not(.s-kicker) { color: #c4c1c8; line-height: 1.8; margin-bottom: 16px; font-size: 1rem; }
.s-valores { border-top: 1px solid var(--s-borde-oscuro); margin-top: 38px; }
.s-valores li { padding: 18px 0 18px 36px; border-bottom: 1px solid var(--s-borde-oscuro); position: relative; font-size: .95rem; }
.s-valores li::before { content: ""; position: absolute; left: 0; top: 29px; width: 18px; height: 1px; background: var(--s-acento-oscuro); }
.s-cita { margin: clamp(60px, 8vw, 100px) auto 0; text-align: center; max-width: 900px; padding-top: clamp(48px, 6vw, 72px); border-top: 1px solid var(--s-borde-oscuro); }
.s-cita p { font-family: var(--f-titulos); font-size: calc(clamp(1.6rem, 3.4vw, 2.6rem) * var(--s-escala)); line-height: 1.3; font-weight: 300; letter-spacing: .02em; }
.s-cita cite { display: block; margin-top: 22px; font-style: normal; font-size: .72rem; letter-spacing: .26em; text-transform: uppercase; color: var(--s-acento-oscuro); }

/* Acordeón minimalista (documentación y preguntas) */
.s-acordeon { border-top: 1px solid var(--s-borde); }
.s-acordeon details { border-bottom: 1px solid var(--s-borde); }
.s-acordeon summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 22px 0; font-size: calc(1.1rem * var(--s-escala)); font-family: var(--f-titulos); letter-spacing: .03em; }
.s-acordeon summary::-webkit-details-marker { display: none; }
.s-acordeon summary i { position: relative; width: 22px; height: 22px; flex: none; border: 1px solid var(--s-acento-int); border-radius: var(--radio-circulo); }
.s-acordeon summary i::before, .s-acordeon summary i::after { content: ""; position: absolute; left: 50%; top: 50%; background: var(--s-acento-int); transform: translate(-50%, -50%); transition: transform .3s; }
.s-acordeon summary i::before { width: 10px; height: 1px; }
.s-acordeon summary i::after { width: 1px; height: 10px; }
.s-acordeon details[open] summary i::after { transform: translate(-50%, -50%) rotate(90deg); }
.s-acordeon details[open] summary { color: var(--s-acento-int); }
.s-acordeon p, .s-acordeon ul { padding: 0 44px 26px 0; color: var(--s-suave); font-size: .95rem; line-height: 1.75; }
.s-acordeon ul li { padding: 7px 0 7px 26px; position: relative; }
.s-acordeon ul li::before { content: ""; position: absolute; left: 0; top: 19px; width: 12px; height: 1px; background: var(--s-acento-int); }

/* Proceso */
.s-proceso { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(24px, 3vw, 48px); list-style: none; margin: 0; padding: 0; }
.s-proceso li { border-top: 1px solid var(--s-borde); padding-top: 24px; position: relative; }
.s-proceso li::before { content: ""; position: absolute; top: -1px; left: 0; width: 40px; height: 1px; background: var(--s-acento-int); }
.s-paso-num { display: block; font-size: 2.4rem; font-weight: 300; color: var(--s-acento-int); letter-spacing: .06em; line-height: 1; margin-bottom: 18px; }
.s-proceso h3 { margin-bottom: 10px; font-size: calc(1.15rem * var(--s-escala)); }
.s-proceso p { color: var(--s-suave); font-size: .9rem; line-height: 1.7; }

/* Equipo */
.s-equipo { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(24px, 3vw, 48px); }
.s-retrato { aspect-ratio: 4 / 5; margin-bottom: 22px; border: 1px solid var(--s-borde); border-radius: var(--radio); overflow: hidden; background: var(--s-fondo-alt); }
.s-retrato img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1); transition: filter .5s; }
.s-miembro:hover .s-retrato img { filter: grayscale(.4); }
.s-retrato span { display: grid; place-items: center; height: 100%; font-size: clamp(3rem, 5vw, 4.4rem); font-weight: 300; letter-spacing: .16em; color: var(--s-acento-int); padding-left: .16em; }
.s-miembro h3 { font-size: calc(1.2rem * var(--s-escala)); }
.s-cargo { font-size: .66rem; letter-spacing: .26em; text-transform: uppercase; color: var(--s-acento-int); margin: 8px 0 8px; }
.s-detalle { color: var(--s-suave); font-size: .9rem; }

/* Opiniones: citas grandes sin tarjetas */
.s-opiniones { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(40px, 5vw, 80px) clamp(40px, 6vw, 100px); }
.s-opinion { margin: 0; border-top: 1px solid var(--s-borde); padding-top: 28px; }
.s-opinion blockquote { margin: 0 0 22px; font-family: var(--f-titulos); font-size: calc(clamp(1.15rem, 1.7vw, 1.45rem) * var(--s-escala)); line-height: 1.5; font-weight: 300; }
.s-opinion figcaption { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; font-size: .8rem; }
.s-opinion figcaption strong { font-weight: 400; }
.s-opinion figcaption span { color: var(--s-suave); letter-spacing: .14em; text-transform: uppercase; font-size: .64rem; }
.s-opinion .estrellas { font-size: .8rem; }

/* Contacto */
.s-contacto { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(48px, 7vw, 110px); margin-bottom: clamp(48px, 6vw, 80px); }
.s-contacto-datos h2 { margin-bottom: 26px; }
.s-turno { border-left: 1px solid var(--s-acento-int); padding: 6px 0 6px 22px; margin-bottom: 36px; font-size: 1.05rem; line-height: 1.6; }
.s-datos { display: grid; gap: 22px; margin-bottom: 36px; }
.s-datos li { display: grid; gap: 4px; }
.s-datos span { font-size: .62rem; letter-spacing: .3em; text-transform: uppercase; color: var(--s-acento-int); }
.s-datos strong, .s-datos a { font-weight: 300; text-decoration: none; font-size: .98rem; line-height: 1.55; }
.s-datos a:hover { color: var(--s-acento-int); }
.s-form { gap: 26px; }
.s-form .form-fila { gap: 26px; }
.s-form label > span { font-size: .62rem; letter-spacing: .26em; text-transform: uppercase; font-weight: 400; opacity: 1; color: var(--s-suave); }
.s-form input, .s-form select, .s-form textarea { border: 0; border-bottom: 1px solid var(--s-borde); border-radius: 0; padding: 10px 0; background: transparent; }
.s-form input:focus, .s-form select:focus, .s-form textarea:focus { box-shadow: none; border-bottom-color: var(--s-acento-int); }
.s-form .btn { display: inline-flex; align-items: center; gap: 10px; padding: 14px 26px; border: 1px solid var(--s-texto); border-radius: var(--radio-boton); background: var(--s-texto); color: var(--s-fondo); font-size: .72rem; letter-spacing: .24em; text-transform: uppercase; cursor: pointer; transition: background .25s, border-color .25s, color .25s; }
.s-form .btn:hover { background: var(--s-acento-int); border-color: var(--s-acento-int); color: #fff; }
[data-modo="oscuro"] .s-form .btn:hover { color: var(--s-oscuro-2); }
.s-form .btn .icono { width: 16px; height: 16px; }
.s-form .form-nota { font-size: .8rem; color: var(--s-suave); }
.s-mapa-caja { position: relative; border: 1px solid var(--s-borde); border-radius: var(--radio); overflow: hidden; }
.s-mapa-caja .mapa { min-height: 400px; filter: grayscale(1); }
[data-modo="oscuro"] .s-mapa-caja .mapa { filter: grayscale(1) invert(.92) hue-rotate(180deg); }
.s-mapa-caja .mapa-ruta { left: 24px; bottom: 24px; box-shadow: none; }

/* Pie */
.s-pie { background: var(--s-oscuro-2); color: #b9b6bf; padding: 72px 0 36px; border-top: 1px solid color-mix(in srgb, var(--s-acento-oscuro) 40%, transparent); }
.s-pie-in { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 22px; }
.s-pie-marca { display: flex; flex-direction: column; align-items: center; gap: 10px; }
.s-emblema-chico { width: 88px; }
.s-pie-marca .pie-logo { max-height: 56px; }
.s-pie-marca strong { color: #fff; font-size: .82rem; letter-spacing: .26em; text-transform: uppercase; font-weight: 300; margin-top: 8px; }
.s-pie-marca p { font-size: .82rem; }
.s-redes { display: flex; gap: 12px; }
.s-redes a { width: 40px; height: 40px; display: grid; place-items: center; border: 1px solid var(--s-borde-oscuro); color: #fff; border-radius: var(--radio-circulo); transition: border-color .25s, color .25s; }
.s-redes a:hover { border-color: var(--s-acento-oscuro); color: var(--s-acento-oscuro); }
.s-redes .icono { width: 17px; height: 17px; }
.s-pie-legal { font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; padding-top: 22px; border-top: 1px solid var(--s-borde-oscuro); width: 100%; max-width: 520px; }
.s-pie .credito { margin-top: 4px; }

/* Responsive */
@media (max-width: 1020px) {
  .menu-btn { display: block; }
  .s-nav { position: fixed; inset: 76px 0 0; background: var(--s-oscuro-2); flex-direction: column; justify-content: center; gap: 30px; transform: translateX(100%); transition: transform .35s; }
  .s-nav a { font-size: .95rem; letter-spacing: .3em; }
  .s-nav-tel { border-left: 0; padding-left: 0; border-top: 1px solid var(--s-borde-oscuro); padding-top: 26px; }
  .menu-abierto .s-nav { transform: none; }
  .menu-abierto body { overflow: hidden; }
  .s-hero-in { grid-template-columns: 1fr; gap: 48px; }
  .s-mosaicos { grid-template-columns: repeat(3, 1fr); max-width: 560px; }
  .s-areas { grid-template-columns: 1fr 1fr; }
  .s-nosotros, .s-contacto { grid-template-columns: 1fr; }
  .s-proceso { grid-template-columns: 1fr 1fr; row-gap: 40px; }
  .s-equipo { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
}
@media (max-width: 640px) {
  .s-cont { width: min(1240px, 100% - 32px); }
  .s-hero { padding: 100px 0 56px; }
  .s-hero-emblema { margin-bottom: 26px; }
  .s-emblema { width: 160px; }
  .s-mosaicos { grid-template-columns: 1fr 1fr; max-width: none; }
  .s-mosaico .icono { width: 28px; height: 28px; }
  .s-dato { border-left: 0; padding: 20px 0; border-top: 1px solid var(--s-borde-oscuro); }
  .s-dato:first-child { border-top: 0; }
  .s-areas, .s-tramites, .s-opiniones, .s-proceso { grid-template-columns: 1fr; }
  .s-area { padding: 32px 24px 40px; }
  .s-acordeon p, .s-acordeon ul { padding-right: 0; }
  .s-marca-nombre { font-size: .72rem; letter-spacing: .18em; }
}
