/*
 * Fem un click · estilos de la web.
 *
 * Los colores y las tipografías salen de los ajustes globales de Elementor
 * (Site Settings → Global Colors / Global Fonts): para cambiar la paleta se
 * cambia allí y no aquí. Los valores tras la coma son el respaldo.
 *
 * Las páginas se montan en Elementor con contenedores a los que se da una clase
 * CSS (Avanzado → Clases CSS): sec, wrap, services, service, steps, cta… Son
 * las mismas del boceto navegable (docs/_doc/diseno/boceto).
 */

:root {
	--ink: var(--e-global-color-primary, #3a2730);
	--ink2: var(--e-global-color-secondary, #5e4f55);
	--accent: var(--e-global-color-accent, #e58f73);
	--muted: var(--e-global-color-fcmuted, #7a6c70);
	--bg: var(--e-global-color-fcfons, #fdf8f4);
	--paper: #fff;
	--line: var(--e-global-color-fcline, #eee2da);
	--soft: var(--e-global-color-fcsoft, #f8ede6);
	--foto: var(--e-global-color-fcfoto, #b8743d);
	--foto-t: #f6e8d9;
	--com: var(--e-global-color-fccom, #4a7192);
	--com-t: #e2ebf2;
	--mat: var(--e-global-color-fcmat, #a95a73);
	--mat-t: #f5e3e8;
	--ess: var(--e-global-color-fcess, #647f48);
	--ess-t: #e7eedd;
	--area: var(--ink);
	--area-t: var(--soft);
	--r: 16px;
	--serif: var(--e-global-typography-primary-font-family, "Fraunces"), Georgia, serif;
	--sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

.area-foto, .t-foto { --area: var(--foto); --area-t: var(--foto-t); }
.area-com, .t-com { --area: var(--com); --area-t: var(--com-t); }
.area-mat, .t-mat { --area: var(--mat); --area-t: var(--mat-t); }
.area-ess, .t-ess { --area: var(--ess); --area-t: var(--ess-t); }

/* ---------- Base ---------- */
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
[id] { scroll-margin-top: 96px; }
body { margin: 0; background: var(--bg); color: var(--ink); font: 17px/1.6 var(--sans); }
a { color: inherit; }
img { max-width: 100%; height: auto; }
h1, h2, h3, h4,
.elementor-heading-title {
	font-family: var(--serif); font-weight: 500; line-height: 1.15; letter-spacing: -.01em;
	color: inherit; margin: 0 0 .5em;
}
h1, .elementor-widget-heading h1.elementor-heading-title { font-size: clamp(2.2rem, 4.6vw, 3.5rem); }
h2, .elementor-widget-heading h2.elementor-heading-title { font-size: clamp(1.7rem, 3.4vw, 2.5rem); }
h3, .elementor-widget-heading h3.elementor-heading-title { font-size: 1.3rem; }
p { margin: 0 0 1em; }
.elementor-widget-text-editor > :last-child,
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }
:focus-visible { outline: 3px solid var(--area); outline-offset: 3px; }
.skip-link { position: absolute; left: -999px; top: 8px; background: var(--ink); color: #fff; padding: 8px 14px; border-radius: 8px; z-index: 99; }
.skip-link:focus { left: 8px; }
main:focus { outline: none; }

/* Contenedores de Elementor: sin márgenes ni huecos por defecto, los pone cada clase. */
.e-con { --padding-top: 0; --padding-right: 0; --padding-bottom: 0; --padding-left: 0; --gap: 0; --row-gap: 0; --column-gap: 0; }
.wrap { max-width: 1140px; margin-left: auto; margin-right: auto; padding-left: 20px; padding-right: 20px; width: 100%; box-sizing: border-box; }
.e-con.wrap { --padding-left: 20px; --padding-right: 20px; max-width: 1140px; margin-inline: auto; }
.e-con.narrow { max-width: 780px; }

/* ---------- Cabecera ---------- */
.top { position: sticky; top: 0; z-index: 40; background: rgba(253, 248, 244, .94); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); border-bottom: 1px solid var(--line); }
.admin-bar .top { top: 32px; }
.top .wrap { display: flex; align-items: center; justify-content: space-between; height: 76px; gap: 20px; }
.logo { display: inline-flex; align-items: center; text-decoration: none; }
.logo img { height: 40px; width: auto; display: block; }
.nav ul { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 4px; }
.nav a { text-decoration: none; font-size: 15px; padding: 8px 11px; border-radius: 999px; color: var(--ink2); white-space: nowrap; display: inline-flex; align-items: center; gap: 7px; }
.nav a:hover { background: var(--soft); color: var(--ink); }
.nav .current-menu-item > a, .nav .current-page-ancestor > a { color: var(--ink); font-weight: 600; }
.nav .dot > a::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: transparent; }
.nav .dot.current-menu-item > a::before, .nav .dot.current-page-ancestor > a::before { background: var(--area); }
.nav .cta-nav > a { background: var(--ink); color: #fff; margin-left: 8px; padding: 9px 18px; }
.nav .cta-nav > a:hover { background: #000; color: #fff; }
/* Selector de idioma */
.nav { display: flex; align-items: center; }
.nav .lang { gap: 0; margin-left: 10px; padding-left: 8px; border-left: 1px solid var(--line); }
.nav .lang a, .nav .lang span { font-size: 13px; font-weight: 600; letter-spacing: .04em; padding: 6px 7px; }
.nav .lang a { color: var(--muted); }
.nav .lang a:hover { color: var(--ink); }
.nav .lang span { color: var(--ink); display: inline-flex; }
.burger { display: none; background: none; border: 1px solid var(--line); border-radius: 999px; font: 600 14px var(--sans); padding: 9px 16px; color: var(--ink); cursor: pointer; }
/* Hello pinta los botones en rosa al pasar o enfocar */
.burger:hover, .burger:focus { background: var(--soft); color: var(--ink); border-color: var(--line); }
.burger:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
@media (max-width: 1020px) {
	.nav { display: none; }
	.burger { display: inline-block; }
	.menu-open .nav { display: block; position: fixed; inset: var(--navtop, 76px) 0 0; background: var(--bg); padding: 24px 20px; overflow: auto; }
	.menu-open .nav ul { flex-direction: column; align-items: stretch; gap: 2px; }
	.menu-open .nav a { display: flex; font: 500 1.6rem/1.2 var(--serif); padding: 14px 4px; border-radius: 0; border-bottom: 1px solid var(--line); color: var(--ink); }
	.menu-open .nav .cta-nav > a { font: 600 17px var(--sans); justify-content: center; margin: 20px 0 0; padding: 16px; border-radius: 999px; border: 0; color: #fff; }
	.menu-open .nav .dot > a::before { background: var(--area); }
	.menu-open .nav ul.lang { flex-direction: row; justify-content: center; gap: 8px; margin: 24px 0 0; padding: 0; border: 0; }
	.menu-open .nav .lang a, .menu-open .nav .lang span { font: 600 15px var(--sans); letter-spacing: .04em; padding: 10px 20px; border: 1px solid var(--line); border-radius: 999px; }
	.menu-open .nav .lang span { background: var(--ink); color: #fff; border-color: var(--ink); }
	.menu-open, .menu-open body { overflow: hidden; }
	.menu-open .top { backdrop-filter: none; -webkit-backdrop-filter: none; background: var(--bg); }
}
@media (max-width: 782px) { .admin-bar .top { top: 0; } }

/* ---------- Botones ---------- */
.e-con.btns { display: flex; --flex-direction: row; --flex-wrap: wrap; --gap: 12px; --row-gap: 12px; --column-gap: 12px; margin-top: 28px; }
.elementor-widget-button .elementor-button,
.btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px; text-decoration: none;
	border-radius: 999px; padding: 14px 24px; font: 600 16px/1.2 var(--sans);
	border: 1.5px solid var(--ink); background: var(--ink); color: #fff; cursor: pointer; transition: transform .15s;
}
.elementor-widget-button .elementor-button:hover,
.elementor-widget-button .elementor-button:focus { transform: translateY(-1px); background: var(--ink); color: #fff; }
.ghost .elementor-button, .ghost .elementor-button:hover, .ghost .elementor-button:focus, .btn.ghost { background: transparent; color: var(--ink); }
.light .elementor-button, .light .elementor-button:hover, .light .elementor-button:focus { background: #fff; border-color: #fff; color: var(--ink); }
.more a, a.more { font-weight: 600; text-decoration: none; border-bottom: 1.5px solid var(--area); padding-bottom: 2px; }

/* ---------- Imágenes ---------- */
.e-con .elementor-widget-image img, .ph img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: var(--r); }
.ph { position: relative; }
.ph figure, .ph .elementor-widget-container { height: 100%; margin: 0; }
.ph .widget-image-caption { display: none; }
/* Mientras no hay foto, Elementor pone su imagen de muestra: se pinta el hueco con su descripción. */
.ph img[src*="placeholder"] { opacity: 0; min-height: 160px; }
.ph:has(img[src*="placeholder"]) { background: var(--area-t); border-radius: var(--r); min-height: 160px;
	background-image: repeating-linear-gradient(135deg, transparent 0 22px, rgba(255, 255, 255, .35) 22px 23px); }
.ph:has(img[src*="placeholder"]) .widget-image-caption {
	display: block; position: absolute; left: 12px; bottom: 12px; margin: 0; max-width: calc(100% - 24px);
	background: rgba(255, 255, 255, .88); color: var(--ink2); font: 500 12.5px/1.35 var(--sans); padding: 6px 10px; border-radius: 8px; text-align: left;
}
.r169 img { aspect-ratio: 16/9; } .r43 img { aspect-ratio: 4/3; } .r45 img { aspect-ratio: 4/5; } .r11 img { aspect-ratio: 1; }

/* ---------- Secciones ---------- */
.e-con.sec { --padding-top: 88px; --padding-bottom: 88px; }
.e-con.sec.tight { --padding-top: 56px; --padding-bottom: 56px; }
.e-con.sec.alt { background: var(--paper); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.eyebrow .elementor-heading-title, .eyebrow { display: inline-flex; align-items: center; gap: 8px; font: 600 13px/1 var(--sans); letter-spacing: .08em; text-transform: uppercase; color: var(--ink2); margin-bottom: 18px; }
.eyebrow .elementor-heading-title::before { content: ""; width: 9px; height: 9px; border-radius: 50%; background: var(--area); }
.lead, .lead p { font-size: 1.2rem; color: var(--ink2); }
.e-con.lead-box .elementor-widget-text-editor { max-width: 680px; }
.sec-head { max-width: 820px; margin-bottom: 40px; }
.sec-head .elementor-widget-text-editor { color: var(--ink2); }

/* Hero de la portada */
.e-con.hero { position: relative; min-height: min(86vh, 760px); --justify-content: flex-end; background: var(--soft); overflow: hidden; }
.e-con.hero > .ph { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 0; }
.e-con.hero > .ph img { border-radius: 0; height: 100%; }
.e-con.hero > .ph:has(img[src*="placeholder"]) { border-radius: 0; }
.e-con.hero > .ph:has(img[src*="placeholder"]) .widget-image-caption { left: auto; right: 20px; bottom: 20px; }
.e-con.hero-in { position: relative; z-index: 1; --padding-top: 140px; --padding-bottom: 90px; }
.e-con.hero-card { max-width: 620px; }
.hero h1.elementor-heading-title { font-size: clamp(3rem, 8vw, 6rem); margin-bottom: .15em; }
.sub .elementor-heading-title, .sub p { font: italic 400 clamp(1.4rem, 2.6vw, 1.9rem)/1.3 var(--serif); margin-bottom: 22px; color: var(--ink); }
.hero .txt { font-size: 1.12rem; color: var(--ink2); max-width: 540px; }

/* Idea de marca */
.e-con.manifest { display: grid; grid-template-columns: 1fr 1.15fr; gap: 60px; align-items: start; }
.manifest .big .elementor-heading-title { font: 400 clamp(1.8rem, 3.4vw, 2.6rem)/1.2 var(--serif); }
.manifest .elementor-widget-text-editor p { font-size: 1.1rem; color: var(--ink2); }
.claim .elementor-heading-title, .claim p { margin-top: 28px; font: italic 500 1.35rem/1.35 var(--serif); color: var(--ink); padding-left: 18px; border-left: 3px solid var(--accent); }

/* Cuatro puertas y tarjetas */
.e-con.doors { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.e-con.door, .e-con.project, .e-con.service, .e-con.res, .e-con.way, .e-con.cv-item {
	background: var(--paper); border: 1px solid var(--line); border-radius: var(--r); overflow: hidden;
}
.e-con.door { border-radius: calc(var(--r) + 4px); text-decoration: none; transition: transform .2s, box-shadow .2s; color: inherit; }
a.e-con.door:hover { transform: translateY(-4px); box-shadow: 0 14px 30px -18px rgba(42, 38, 34, .45); }
.door .ph img, .project .ph img, .own .ph img { border-radius: 0; }
.door .ph:has(img[src*="placeholder"]), .project .ph:has(img[src*="placeholder"]), .own .ph:has(img[src*="placeholder"]) { border-radius: 0; }
.e-con.in { --padding-top: 20px; --padding-right: 20px; --padding-bottom: 22px; --padding-left: 20px; flex: 1; }
.door h3.elementor-heading-title { display: flex; align-items: center; gap: 9px; }
.door h3.elementor-heading-title::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--area); flex: none; }
.door .elementor-widget-text-editor { color: var(--ink2); font-size: 15.5px; }
.door .elementor-widget.more { margin-top: auto; font-weight: 600; font-size: 15px; }
.door .more p { display: inline; border-bottom: 1.5px solid var(--area); padding-bottom: 2px; }

/* Bloque de dos columnas */
.e-con.split { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
.e-con.split.rev > :first-child { order: 2; }
.e-con.split.top-align { align-items: start; gap: 32px; }

/* Proyectos */
.e-con.projects { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 18px; }
.e-con.project .e-con.in { --padding-top: 18px; }
.tag .elementor-heading-title, .tag p, .tag { display: inline-flex; align-items: center; gap: 6px; font: 600 12px/1 var(--sans); letter-spacing: .06em; text-transform: uppercase; color: var(--ink2); margin-bottom: 10px; }
.tag .elementor-heading-title::before, .tag p::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--area); }
.project h3.elementor-heading-title { font-size: 1.2rem; margin-bottom: 4px; }
.who, .who p { color: var(--muted); font-size: 14.5px; }
.project .fitxa p { font-size: 15px; color: var(--ink2); margin-bottom: 8px; }
.project .fitxa strong { color: var(--ink); }

/* Cabecera de área */
.e-con.phead { --padding-top: 64px; --padding-bottom: 72px; background: linear-gradient(var(--area-t), var(--bg)); }
.e-con.phead .split { gap: 56px; }
/* Fraunces es más ancha que la serif del boceto: un punto menos para que el título quepa en tres líneas. */
.phead h1.elementor-heading-title { font-size: clamp(2.1rem, 4vw, 3rem); }

/* Servicios */
.e-con.services { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.e-con.service { border-top: 4px solid var(--area); --padding-top: 26px; --padding-right: 26px; --padding-bottom: 22px; --padding-left: 26px; }
.service .elementor-widget-text-editor { color: var(--ink2); }

/* Pasos */
.e-con.steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; counter-reset: pas; }
.e-con.steps.three { grid-template-columns: repeat(3, 1fr); }
.e-con.step { counter-increment: pas; --padding-top: 18px; border-top: 2px solid var(--ink); }
/* Elementor reserva ::before de los contenedores para sus capas (position: absolute): aquí va en el flujo. */
.e-con.step::before { content: counter(pas, decimal-leading-zero); display: block; position: static; width: auto; height: auto; opacity: 1; border: 0; font: 500 1.6rem/1 var(--serif); color: var(--area); margin-bottom: 12px; }
.step h3.elementor-heading-title { font: 700 1.08rem/1.3 var(--sans); letter-spacing: 0; margin-bottom: 4px; }
.step .elementor-widget-text-editor { color: var(--ink2); font-size: 15.5px; }

/* Galería */
.e-con.gallery { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 190px; grid-auto-flow: dense; gap: 12px; }
.gallery .ph, .gallery .ph img { min-height: 0; height: 100%; }
.gallery .ph img[src*="placeholder"] { min-height: 0; }
.gallery .w2 { grid-column: span 2; } .gallery .h2 { grid-row: span 2; }

/* Preguntas frecuentes (acordeón de Elementor) */
.e-con.faq-grid { display: grid; grid-template-columns: .8fr 1.4fr; gap: 60px; }
.elementor-widget-n-accordion.faq {
	--n-accordion-border-width: 0; --n-accordion-padding: 22px 44px 22px 0; --n-accordion-title-font-size: 1.15rem;
	--n-accordion-title-normal-color: var(--ink); --n-accordion-title-hover-color: var(--ink); --n-accordion-title-active-color: var(--ink);
	border-top: 1px solid var(--line);
}
.faq .e-n-accordion-item { border-bottom: 1px solid var(--line); }
.faq .e-n-accordion-item-title { position: relative; }
.faq .e-n-accordion-item-title-text { font: 500 1.15rem/1.35 var(--serif); }
/* La flecha del boceto en lugar del + y el − de Elementor */
.faq.elementor-widget-n-accordion .e-n-accordion-item-title-icon { display: none; }
.faq .e-n-accordion-item-title::after { content: ""; position: absolute; right: 6px; top: 50%; width: 12px; height: 12px; margin-top: -9px; border-right: 2px solid var(--ink); border-bottom: 2px solid var(--ink); transform: rotate(45deg); transition: transform .2s; }
.faq .e-n-accordion-item[open] > .e-n-accordion-item-title::after { transform: rotate(-135deg); margin-top: -3px; }
.faq .e-n-accordion-item > .e-con { --padding-right: 44px; --padding-bottom: 14px; color: var(--ink2); }
.faq .e-n-accordion-item > .e-con p { margin: 0; }

/* Nota, lista y bloque propio */
.note { display: flex; gap: 16px; background: var(--paper); border: 1px solid var(--line); border-left: 4px solid var(--area); border-radius: 12px; padding: 20px 24px; color: var(--ink2); font-size: 15.5px; }
.note strong, .note b { color: var(--ink); }
.note p { margin: 0; }
.checks ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 14px; }
.checks li { padding-left: 30px; position: relative; color: var(--ink2); }
.checks li strong { color: var(--ink); }
.checks li::before { content: ""; position: absolute; left: 2px; top: .55em; width: 12px; height: 12px; border-radius: 50%; background: var(--area); }
.e-con.own { display: grid; grid-template-columns: 1fr 1fr; background: var(--paper); border: 1px solid var(--line); border-radius: calc(var(--r) + 6px); overflow: hidden; }
.own .ph, .own .ph img { min-height: 320px; height: 100%; }
.e-con.own > .e-con.in { --padding-top: 44px; --padding-right: 44px; --padding-bottom: 44px; --padding-left: 44px; }
.kicker .elementor-heading-title { font: 600 13px/1 var(--sans); letter-spacing: .08em; text-transform: uppercase; color: var(--muted); margin-bottom: 14px; }
.e-con.cards { display: grid; gap: 18px; }
.e-con.res { --padding-top: 24px; --padding-right: 24px; --padding-bottom: 24px; --padding-left: 24px; }
.res .elementor-widget-text-editor { color: var(--ink2); font-size: 15.5px; }

/* Qui soc */
.e-con.values { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.e-con.value { border-top: 2px solid var(--ink); --padding-top: 16px; }
.value h3.elementor-heading-title { font-size: 1.25rem; margin-bottom: 6px; }
.value .elementor-widget-text-editor { color: var(--ink2); font-size: 15.5px; }
.e-con.cv { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.e-con.cv-item { --padding-top: 24px; --padding-right: 24px; --padding-bottom: 24px; --padding-left: 24px; }
.cv-item ul { margin: 0; padding-left: 18px; color: var(--ink2); font-size: 15.5px; }
.cv-item li { margin-bottom: 8px; }
.media p { display: flex; gap: 14px; flex-wrap: wrap; margin: 0; }
.media span { border: 1px solid var(--line); background: var(--paper); border-radius: 12px; padding: 20px 30px; font: 600 15px var(--sans); color: var(--muted); letter-spacing: .04em; }

/* Llamada final */
.e-con.cta { background: var(--ink); color: #f6f1ea; border-radius: calc(var(--r) + 10px); --padding-top: 72px; --padding-right: 40px; --padding-bottom: 72px; --padding-left: 40px; text-align: center; --align-items: center; }
.cta .elementor-heading-title { color: #fff; }
.cta .elementor-widget-text-editor { color: #e4d8d6; max-width: 520px; margin: 0 auto; }
.cta .e-con.btns { --justify-content: center; }
.cta .ghost .elementor-button { color: #fff; border-color: rgba(255, 255, 255, .55); }

/* Contacto */
.e-con.ways { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-bottom: 56px; }
.e-con.way { border-top: 4px solid var(--area); --padding-top: 26px; --padding-right: 26px; --padding-bottom: 26px; --padding-left: 26px; }
.way .elementor-widget-text-editor { color: var(--ink2); font-size: 15.5px; }
.e-con.contact { display: grid; grid-template-columns: 1.5fr 1fr; gap: 56px; align-items: start; }
.form-box { background: var(--paper); border: 1px solid var(--line); border-radius: calc(var(--r) + 4px); padding: 34px; }
/* Formulario de Fluent Forms con el aspecto del boceto */
.form-box .fluentform .ff-el-group { margin-bottom: 20px; }
.form-box .fluentform .ff-el-input--label label { font: 600 15px/1.3 var(--sans); color: var(--ink); margin-bottom: 7px; }
.form-box .fluentform .ff-el-input--label label small { font-weight: 400; color: var(--muted); }
.form-box .fluentform .ff-el-form-control { font: 16px/1.4 var(--sans); color: var(--ink); background: var(--bg); border: 1.5px solid var(--line); border-radius: 10px; padding: 13px 14px; box-shadow: none; }
.form-box .fluentform .ff-el-form-control:focus { outline: none; border-color: var(--ink); background: #fff; }
.form-box .fluentform textarea.ff-el-form-control { min-height: 150px; resize: vertical; }
.form-box .fluentform .ajuda { font-size: 14px; color: var(--ink2); background: var(--mat-t); border-radius: 8px; padding: 10px 12px; margin: -8px 0 0; }
.form-box .fluentform .ff-el-tc label, .form-box .fluentform .ff_t_c, .form-box .fluentform .ff-el-form-check label { display: flex; gap: 12px; align-items: flex-start; font: 15px/1.5 var(--sans); color: var(--ink2); }
.form-box .fluentform .ff-el-form-check-input { width: 20px; height: 20px; margin: 2px 0 0; flex: none; accent-color: var(--ink); }
.form-box .fluentform .ff-el-tc a { color: var(--ink); text-decoration: underline; }
.form-box .fluentform .error, .form-box .fluentform .text-danger { color: #a3361f; font-size: 14px; margin-top: 6px; }
.form-box .fluentform .ff-el-is-error .ff-el-form-control { border-color: #c4553b; }
.form-box .fluentform .ff-btn-submit, .form-box .fluentform .ff-btn-submit:hover, .form-box .fluentform .ff-btn-submit:focus { background: var(--ink); color: #fff; border: 1.5px solid var(--ink); border-radius: 999px; padding: 14px 30px; font: 600 16px var(--sans); opacity: 1; }
.form-box .fluentform .ff-btn-submit:hover { background: #000; }
.form-box .rgpd { margin-top: 26px; padding-top: 20px; border-top: 1px solid var(--line); font-size: 13px; line-height: 1.55; color: var(--muted); }
.form-box .rgpd p { margin: 0 0 6px; color: var(--ink2); }
.form-box .rgpd ul { margin: 0; padding-left: 18px; }
.form-box .rgpd li { margin-bottom: 3px; }
.aside ul { list-style: none; padding: 0; margin: 0; }
.aside li { padding: 14px 0; border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; gap: 12px; font-size: 15.5px; }
.aside li span:first-child { color: var(--muted); }
.e-con.done { --padding-top: 120px; --padding-bottom: 120px; text-align: center; --align-items: center; }

/* ---------- Páginas de texto (legales) ---------- */
.page-content, .site-main .page-header { max-width: 780px; margin-inline: auto; padding-inline: 20px; }
article.site-main, .error-404 { padding: 64px 0 16px; }
.page-content .upd { color: var(--muted); font-size: 14.5px; margin-top: -.6em; }
.site-main .page-header h1 { font-size: clamp(2rem, 4vw, 3rem); }
.page-content h2 { font-size: 1.55rem; margin: 2.2em 0 .6em; }
.page-content h3 { font-size: 1.2rem; margin: 1.8em 0 .5em; }
.page-content p, .page-content li { color: var(--ink2); }
.page-content li { margin-bottom: .45em; }
.page-content strong { color: var(--ink); }
.page-content table { width: 100%; border-collapse: collapse; margin: 1.2em 0 1.6em; font-size: 14.5px; display: block; overflow-x: auto; }
.page-content th, .page-content td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--line); vertical-align: top; }
.page-content th { background: var(--soft); font-weight: 600; }

/* 404 */
.kicker-404 { font: 500 1rem/1 var(--serif); color: var(--accent); margin: 0 0 12px; }
.links-404 { list-style: none; padding: 0; margin: 24px 0 32px; display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.links-404 a { display: flex; align-items: center; gap: 10px; padding: 16px 18px; background: var(--paper); border: 1px solid var(--line); border-radius: var(--r); text-decoration: none; color: var(--ink); font: 500 1.15rem/1.2 var(--serif); }
.links-404 a::before { content: ""; width: 9px; height: 9px; border-radius: 50%; background: var(--area); flex: none; }
.links-404 a:hover { border-color: var(--area); }
.btns-404 { display: flex; flex-wrap: wrap; gap: 12px; }
.page-content .btn-404 { display: inline-block; padding: 13px 24px; border-radius: 999px; border: 1.5px solid var(--ink); background: var(--ink); color: #fff; font-weight: 600; text-decoration: none; }
.page-content .btn-404.ghost { background: transparent; color: var(--ink); }
@media (max-width: 560px) { .links-404 { grid-template-columns: 1fr; } }

/* ---------- Pie ---------- */
.foot { background: var(--ink); color: #e4d8d6; padding: 72px 0 28px; margin-top: 96px; font-size: 15px; }
.foot .logo img { height: 36px; }
.foot-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 40px; }
.foot-h { font: 600 12.5px/1 var(--sans); letter-spacing: .09em; text-transform: uppercase; color: #b9a8ab; margin: 6px 0 16px; }
.foot ul { list-style: none; padding: 0; margin: 0; }
.foot li { margin-bottom: 9px; }
.foot a { text-decoration: none; color: #f5ece8; }
.foot a:hover { text-decoration: underline; }
.foot .motto { font: italic 1.1rem/1.4 var(--serif); color: #f5ece8; margin: 18px 0 0; max-width: 260px; }
.kit { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 28px; margin-top: 48px; }
.kit span { font: 600 12.5px/1 var(--sans); letter-spacing: .09em; text-transform: uppercase; color: #b9a8ab; }
.kit img { display: block; height: 40px; width: auto; }
.kit img.prtr { height: 72px; margin: -16px 0; }
.legalbar { border-top: 1px solid rgba(255, 255, 255, .14); margin-top: 48px; padding-top: 22px; display: flex; flex-wrap: wrap; gap: 8px 22px; font-size: 13.5px; color: #b9a8ab; }
.legalbar a { color: #f5ece8; }
.legalbar .cmplz-manage-consent { all: unset; color: #f5ece8; cursor: pointer; }
.legalbar .cmplz-manage-consent:hover, .legalbar .cmplz-manage-consent:focus-visible { text-decoration: underline; }
.cmplz-cookiebanner .cmplz-message a { text-decoration: underline; }
body:has(.e-con.cta) .foot, body:has(.e-con.done) .foot { margin-top: 0; }

/* ---------- Responsive ---------- */
@media (max-width: 960px) {
	.e-con.doors { grid-template-columns: repeat(2, 1fr); }
	.e-con.steps, .e-con.values { grid-template-columns: repeat(2, 1fr); }
	.e-con.gallery { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 150px; }
	.foot-grid { grid-template-columns: 1fr 1fr; }
	.e-con.cv { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
	body { font-size: 16px; }
	.e-con.sec { --padding-top: 64px; --padding-bottom: 64px; }
	.e-con.manifest, .e-con.split, .e-con.faq-grid, .e-con.services, .e-con.own, .e-con.ways, .e-con.contact { grid-template-columns: 1fr; gap: 32px; }
	.e-con.split.rev > :first-child { order: 0; }
	.e-con.own > .e-con.in { --padding-top: 28px; --padding-right: 28px; --padding-bottom: 28px; --padding-left: 28px; }
	.own .ph, .own .ph img { min-height: 220px; }
	.e-con.steps.three { grid-template-columns: 1fr; }
	.e-con.cta { --padding-top: 52px; --padding-right: 22px; --padding-bottom: 52px; --padding-left: 22px; }
	.e-con.hero-in { --padding-top: 180px; --padding-bottom: 60px; }
	.e-con.hero > .ph:has(img[src*="placeholder"]) .widget-image-caption { top: 16px; bottom: auto; right: 16px; }
	.form-box { padding: 22px; }
}
@media (max-width: 520px) {
	.e-con.doors, .e-con.steps, .e-con.values { grid-template-columns: 1fr; }
	.foot-grid { grid-template-columns: 1fr; }
	.top .wrap { height: 64px; }
	.logo img { height: 32px; }
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; scroll-behavior: auto !important; } }

/* Lo que aún falta (lo rellena Carla): en amarillo, para que no se publique sin ver. */
mark.falta { background: #ffe27a; color: #3d3200; border-radius: 5px; padding: .05em .4em; font: 600 .82em/1.5 var(--sans); box-decoration-break: clone; -webkit-box-decoration-break: clone; }
