/* design tokens: la mesa abierta */
:root {
	--header-bg: #FFFCF6;
	--logo-ink: #35204E;
	--logo-accent: #8B6400;
	--surface: #FFFFFF;
	--band: #EEE8F6;
	--text: #35204E;
	--muted: #655B6F;
	--line: #83758F;
	--primary: #6534AB;
	--accent: #F0C747;

	--font-ui: "Manrope", sans-serif;
	--font-editorial: "Lora", Georgia, serif;

	--text-display: clamp(3.25rem, 6.4vw, 6.5rem);
	--text-h1: clamp(2.75rem, 4.8vw, 5rem);
	--text-h2: clamp(2rem, 3.3vw, 3.5rem);
	--text-h3: clamp(1.375rem, 2vw, 1.875rem);
	--text-lead: clamp(1.25rem, 1.8vw, 1.625rem);
	--text-body: clamp(1rem, 0.95rem + 0.2vw, 1.125rem);
	--text-small: 0.875rem;
	--text-label: 0.8125rem;

	--leading-display: 1.04;
	--leading-heading: 1.15;
	--leading-lead: 1.5;
	--leading-body: 1.7;
	--leading-small: 1.5;
	--tracking-display: -0.045em;
	--tracking-heading: -0.025em;
	--tracking-body: 0em;
	--tracking-label: 0.09em;

	--space-0: 0;
	--space-1: 0.25rem;
	--space-2: 0.5rem;
	--space-3: 0.75rem;
	--space-4: 1rem;
	--space-5: 1.5rem;
	--space-6: 2rem;
	--space-7: 3rem;
	--space-8: 4rem;
	--space-9: 6rem;
	--space-10: 8rem;

	--page-gutter: clamp(1rem, 3vw, 3rem);
	--grid-gap: clamp(1rem, 2vw, 2rem);
	--section-space: clamp(3.5rem, 7vw, 7rem);
	--container: 82.5rem;
	--container-reading: 46rem;
	--measure: 62ch;
	--measure-lead: 44ch;
	--label-width: 3.5rem;

	--radius-small: 0.375rem;
	--radius-control: 0.5rem;
	--radius-round: 999px;
	--rule: 1px solid var(--line);
	--rule-strong: 2px solid var(--primary);
	--shadow-panel: 0 0.5rem 1.5rem
		color-mix(in srgb, var(--text) 12%, transparent);

	--control-height: 3.25rem;
	--target-size: 2.75rem;
	--logo-height-mobile: 4.5rem;
	--logo-height-desktop: 6rem;
	--header-height-mobile: 6rem;
	--header-height-desktop: 8rem;
	--tab-width: clamp(4rem, 8vw, 6rem);
	--focus-width: 3px;
	--focus-offset: 4px;
	--consent-space: 18rem;

	--duration-fast: 160ms;
	--duration-normal: 240ms;
	--duration-entrance: 420ms;
	--ease: cubic-bezier(0.22, 1, 0.36, 1);
	--z-header: 20;
	--z-consent: 40;
	--z-dialog: 60;
}

/* builder contract */
/* Body classes: page-home, page-services, page-portfolio, page-about, page-process, page-contact, page-thank-you, page-legal, page-article. Use one per page. Each full-width section contains .container; its layout wrapper is named below. All supplied copy stays intact. Mark eligible sections data-appear and list/grid wrappers data-stagger; never hide content for motion. */
/* Split sections: .hero__grid > .hero__content + figure.hero__media; .intro__grid > .intro__content + figure.intro__media. Keep text first in source; desktop CSS reorders images where required. Text-only intros use .intro--text; about's second intro also uses .intro--editorial. */
/* Checklists: .checklist__layout > .section-heading + ul.checklist__list. Each li contains .sheet-index (aria-hidden), an inline SVG .checklist__check (aria-hidden), and .checklist__text. Supply literal indices 01–06, not statistics. .sheet-index is also used in case facts and glossary rows. */
/* Highlights: .highlights > .container > .section-heading + .highlights__grid > article.highlight. A linked item has one a.cardanchor wrapping all its content; unlinked items stay plain. Optional .highlight__index precedes h3. */
/* Cases: .case-study__grid > figure.case-study__media + .case-study__content. The latter contains heading, body and dl.case-study__facts; each .case-study__fact wraps dt/dd. Gallery: .gallery__grid > .gallery__content + figure.gallery__media. */
/* Glossaries: dl.glossary__list > div.glossary__row containing dt and dd. Optional .sheet-index inside dt. Forms: .contact-form__layout > form.contact-form__form[data-request-form] + aside.contact-form__aside; .legal-details spans both columns. Use #formulario on the form section. */
/* Hero photos alone receive a span.meeting-tab[aria-hidden=true] inside their positioned figure. CTA bands and footer can use the same span. One tab maximum per section. Reserve photo clearance with .hero__media. No decorative copy is generated by CSS. */

/* base and typography */
:root {
	--font-heading: var(--font-ui);
	--font-body: var(--font-ui);
	--sheet-index-mobile: 2.5rem;
	--container-sheet: 60rem;
	--nav-gap-mobile: 0.6875rem;
	--textarea-height: 11.25rem;
	--marquee-height: 5.5rem;
	--quote-measure: 40ch;
}
*, *::before, *::after { box-sizing: border-box; }
html { color-scheme: light; scroll-padding-top: var(--space-6); }
body { margin: 0; background: var(--header-bg); color: var(--text); font-family: var(--font-body); font-size: var(--text-body); line-height: var(--leading-body); letter-spacing: var(--tracking-body); overflow-wrap: break-word; }
main { display: block; }
[hidden] { display: none !important; }
h1, h2, h3, h4, p, blockquote, figure, dl, dd { margin: 0; }
h1, h2, h3, h4 { font-family: var(--font-heading); font-weight: 700; text-wrap: balance; }
h1 { font-size: var(--text-h1); line-height: var(--leading-display); letter-spacing: var(--tracking-display); }
h2 { font-size: var(--text-h2); line-height: var(--leading-heading); letter-spacing: var(--tracking-heading); }
h3 { font-size: var(--text-h3); line-height: var(--leading-heading); letter-spacing: var(--tracking-heading); }
p { max-width: var(--measure); }
p + p { margin-top: var(--space-5); }
ul, ol { margin: 0; padding-left: var(--space-5); }
li::marker { color: var(--primary); }
a { color: var(--primary); text-underline-offset: var(--space-1); text-decoration-thickness: 1px; transition: color var(--duration-fast) var(--ease), background-color var(--duration-fast) var(--ease), border-color var(--duration-fast) var(--ease); }
a:hover { color: var(--logo-ink); text-decoration-thickness: 2px; }
button, input, select, textarea { font: inherit; }
button, select, input[type='checkbox'], input[type='radio'] { cursor: pointer; }
button { color: inherit; }
button, a, input, select, textarea, summary { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: var(--focus-width) solid var(--primary); outline-offset: var(--focus-offset); }
::selection { background: var(--accent); color: var(--text); }
img { display: block; max-width: 100%; height: auto; object-fit: cover; border-radius: var(--radius-small); }
svg { display: block; width: var(--space-5); height: var(--space-5); flex-shrink: 0; }
address { font-style: normal; }
small, figcaption { font-size: var(--text-small); line-height: var(--leading-small); }
figcaption { color: var(--muted); margin-top: var(--space-3); max-width: var(--measure); }
hr { border: 0; border-top: var(--rule); margin-block: var(--space-7); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.skip-link { position: absolute; inset-inline-start: var(--page-gutter); top: var(--space-4); z-index: var(--z-dialog); padding: var(--space-3) var(--space-5); background: var(--surface); transform: translateY(-200%); }
.skip-link:focus { transform: translateY(0); }

/* layout and editorial utilities */
.container { width: min(calc(100% - var(--page-gutter) * 2), var(--container)); margin-inline: auto; }
.reading { width: min(calc(100% - var(--page-gutter) * 2), var(--container-reading)); margin-inline: auto; }
.grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--grid-gap); }
.grid > * { min-width: 0; grid-column: 1 / -1; }
.section, .hero, .intro, .checklist, .testimonial, .highlights, .case-study, .gallery, .glossary, .area-list, .contact-band, .contact-form, .faq, .cta-band { padding-block: var(--section-space); }
.section-heading { margin-bottom: var(--space-6); }
.section-heading > p, .section-heading > .section-subtitle { margin-top: var(--space-5); }
.section-subtitle, .lead, .hero__sub { font-size: var(--text-lead); line-height: var(--leading-lead); max-width: var(--measure-lead); }
.overline, .section-label { font-size: var(--text-label); font-weight: 700; line-height: var(--leading-small); letter-spacing: var(--tracking-label); text-transform: uppercase; }
.overline { margin-bottom: var(--space-5); }
.editorial { font-family: var(--font-editorial); font-weight: 400; font-size: var(--text-lead); line-height: var(--leading-body); }
.prose { max-width: var(--measure); }
.prose > * + * { margin-top: var(--space-5); }
.prose > h2, .prose > h3 { margin-top: var(--space-8); }
.surface-cream { background: var(--header-bg); }
.surface-white { background: var(--surface); }
.surface-lavender { background: var(--band); }
.rule-top { border-top: var(--rule); padding-top: var(--space-5); }

/* controls */
.button, .consentcard button { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-3); min-height: var(--control-height); padding: var(--space-3) var(--space-5); border: 1px solid var(--primary); border-radius: var(--radius-control); background: var(--primary); color: var(--surface); font-size: var(--space-4); font-weight: 700; line-height: var(--leading-small); text-align: center; text-decoration: none; transition: background-color var(--duration-fast) var(--ease), color var(--duration-fast) var(--ease), border-color var(--duration-fast) var(--ease); }
.button:hover, .consentcard button:hover { background: var(--logo-ink); border-color: var(--logo-ink); color: var(--surface); text-decoration: none; }
.button--secondary { background: transparent; color: var(--primary); }
.text-link { display: inline-flex; align-items: center; gap: var(--space-3); min-height: var(--target-size); font-weight: 700; }

/* header and progressive disclosure navigation */
.site-header { position: relative; z-index: var(--z-header); background: var(--header-bg); border-bottom: var(--rule); }
.site-header__inner { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; column-gap: var(--nav-gap-mobile); min-height: var(--header-height-mobile); }
.logolink { display: block; flex: 0 0 auto; line-height: 1; }
.logolink img { display: block; width: auto; height: 72px; max-width: none; border-radius: 0; object-fit: cover; }
.nav-toggle { display: inline-flex; align-items: center; justify-content: center; width: var(--target-size); height: var(--target-size); padding: var(--space-2); border: var(--rule); border-radius: var(--radius-control); background: transparent; color: var(--text); transition: background-color var(--duration-fast) var(--ease); }
.nav-toggle:hover { background: var(--band); }
.nav-toggle__close { display: none; }
.nav-toggle[aria-expanded='true'] .nav-toggle__open { display: none; }
.nav-toggle[aria-expanded='true'] .nav-toggle__close { display: block; }
.primary-nav { flex-basis: 100%; padding-block: var(--space-3) var(--space-5); }
.primary-nav ul { list-style: none; padding: 0; display: flex; flex-direction: column; }
.primary-nav a { display: flex; align-items: center; min-height: var(--control-height); color: var(--text); font-size: var(--space-4); font-weight: 500; text-decoration: none; border-bottom: 2px solid transparent; }
.primary-nav a:hover { color: var(--primary); border-bottom-color: var(--primary); }
.primary-nav a[aria-current='page'] { border-bottom-color: var(--primary); color: var(--primary); }
.site-header.nav-ready .primary-nav { display: none; }
.site-header.nav-ready.is-menu-open .primary-nav { display: block; }

/* signature: semicircle and coordination sheet */
.meeting-tab { position: absolute; width: var(--tab-width); aspect-ratio: 2 / 1; border-radius: var(--radius-round) var(--radius-round) 0 0; background: var(--accent); pointer-events: none; }
.hero__media > .meeting-tab { right: var(--space-5); bottom: 100%; }
.sheet-index, .highlight__index { color: var(--primary); font-size: var(--text-label); line-height: var(--leading-small); font-weight: 700; letter-spacing: var(--tracking-label); font-variant-numeric: tabular-nums; }
.sheet-index { display: inline-block; min-width: var(--sheet-index-mobile); }

/* hero: split default, panoramic services/process */
.hero { background: var(--header-bg); }
.hero__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-5); }
.hero__content { min-width: 0; }
.hero__title { max-width: 16ch; }
.hero__sub { margin-top: var(--space-6); }
.hero__action, .hero__content > .button { margin-top: var(--space-6); }
.hero__media { position: relative; min-width: 0; margin-top: calc(var(--tab-width) / 2 + var(--space-5)); }
.hero__media img { width: 100%; aspect-ratio: 4 / 5; }
.page-home .hero__title, .hero--home .hero__title { font-size: var(--text-display); }
.page-home .hero__media img { object-position: 55% 50%; }
.page-portfolio .hero__media img, .page-services .hero__media img, .page-process .hero__media img, .hero--panoramic .hero__media img { aspect-ratio: 4 / 3; }
.page-services .hero__media img { object-position: 50% 45%; }

/* introductory paragraphs */
.intro { background: var(--surface); }
.intro__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-5); }
.intro__content { min-width: 0; }
.intro__content > p { margin-top: var(--space-5); }
.intro__media { min-width: 0; }
.intro__media img { width: 100%; aspect-ratio: 4 / 3; }
.page-home .intro__content > p, .page-portfolio .intro__content > p, .intro--editorial .intro__content > p { font-family: var(--font-editorial); font-size: var(--text-lead); line-height: var(--leading-body); }
.page-services .intro__media img, .page-contact .intro__media img { aspect-ratio: 1; }
.page-about .intro__media img { aspect-ratio: 4 / 5; }
.intro--editorial { background: var(--band); }
.intro--editorial .intro__content { border-top: var(--rule); padding-top: var(--space-6); max-width: var(--container-reading); }

/* checklists: ruled sheets, never cards */
.checklist { background: var(--band); }
.checklist__layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-5); }
.checklist__layout > .section-heading { margin-bottom: 0; }
.checklist__list { list-style: none; padding: 0; counter-reset: checklist; }
.checklist__list > li { position: relative; display: grid; grid-template-columns: var(--sheet-index-mobile) minmax(0, 1fr); align-items: baseline; column-gap: var(--space-2); padding-block: var(--space-5); border-top: var(--rule); }
.checklist__list > li:last-child { border-bottom: var(--rule); }
.checklist__text { grid-column: 2; min-width: 0; }
.checklist__text > h3 { font-size: var(--text-body); line-height: var(--leading-body); font-weight: 500; letter-spacing: 0; }
.checklist__text > p, .checklist__text > small { display: block; margin-top: var(--space-2); color: var(--muted); }
.checklist__check { grid-column: 2; grid-row: 1; justify-self: end; width: var(--space-4); height: var(--space-4); color: var(--primary); align-self: start; margin-top: var(--space-1); }
.checklist__check + .checklist__text { grid-row: 1; padding-right: var(--space-6); }
.page-services .checklist, .page-about .checklist, .checklist--cream { background: var(--header-bg); }
.page-portfolio .checklist__layout, .checklist--reading .checklist__layout { max-width: var(--container-sheet); margin-inline: auto; }

/* testimonial */
.testimonial { background: var(--header-bg); }
.testimonial__quote { max-width: var(--quote-measure); font-family: var(--font-editorial); font-size: clamp(1.5rem, 2.5vw, 2rem); line-height: var(--leading-lead); font-weight: 400; }
.testimonial__quote p { max-width: inherit; }
.testimonial__quote cite { display: block; margin-top: var(--space-6); font-family: var(--font-ui); font-size: var(--space-4); font-weight: 500; font-style: normal; line-height: var(--leading-small); }

/* highlights and services */
.highlights { background: var(--surface); }
.highlights__grid, .services-list { display: grid; grid-template-columns: minmax(0, 1fr); column-gap: var(--grid-gap); }
.highlight { min-width: 0; padding-block: var(--space-5) var(--space-7); border-top: var(--rule); }
.highlight__index { display: block; margin-bottom: var(--space-5); }
.highlight h3 + p, .highlight .cardanchor h3 + p { margin-top: var(--space-5); }
.highlight p { max-width: 48ch; }
.cardanchor { display: block; color: var(--text); text-decoration: none; border-radius: var(--radius-small); }
.cardanchor:hover { color: var(--primary); }
.cardanchor:hover h3 { text-decoration: underline; text-underline-offset: var(--space-1); }
.cardanchor p { color: var(--text); }
.page-services .highlights, .page-portfolio .highlights { background: var(--band); }

/* case studies: image, intact narrative, definition-list facts */
.case-study { background: var(--band); }
.case-study__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-5); }
.case-study__content { grid-row: 1; min-width: 0; }
.case-study__content > p { margin-top: var(--space-5); }
.case-study__content > .overline { margin-top: 0; }
.case-study__media img { width: 100%; aspect-ratio: 3 / 2; }
.case-study__facts { margin-top: var(--space-6); }
.case-study__fact { padding-block: var(--space-5); border-top: var(--rule); }
.case-study__fact:last-child { border-bottom: var(--rule); }
.case-study__fact dt { display: grid; grid-template-columns: var(--sheet-index-mobile) minmax(0, 1fr); align-items: baseline; font-weight: 700; }
.case-study__fact dt:not(:has(.sheet-index)) { display: block; }
.case-study__fact dd { margin-top: var(--space-2); }
.case-study__fact:has(.sheet-index) dd { margin-left: var(--sheet-index-mobile); }
.page-portfolio .case-study { background: var(--header-bg); }
.page-portfolio .case-study__media img { aspect-ratio: 4 / 3; }

/* gallery: one real image, no simulated carousel */
.gallery { background: var(--surface); }
.gallery__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-5); }
.gallery__content p { margin-top: var(--space-5); }
.gallery__media img { width: 100%; aspect-ratio: 4 / 3; }
.gallery-strip { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--grid-gap); }

/* glossary */
.glossary { background: var(--band); }
.glossary__inner { max-width: var(--container-reading); margin-inline: auto; }
.glossary__list { counter-reset: glossary; }
.glossary__row { padding-block: var(--space-5); border-top: var(--rule); }
.glossary__row:last-child { border-bottom: var(--rule); }
.glossary__row dt { font-size: var(--text-h3); font-weight: 700; line-height: var(--leading-heading); letter-spacing: var(--tracking-heading); }
.glossary__row dt:has(.sheet-index) { display: grid; grid-template-columns: var(--sheet-index-mobile) minmax(0, 1fr); align-items: baseline; }
.glossary__row dd { margin-top: var(--space-3); max-width: var(--measure); }
.page-process .glossary { background: var(--header-bg); }
.page-process .glossary__inner { max-width: var(--container-sheet); }

/* coverage and contact bands */
.area-list { background: var(--surface); }
.area-list__layout { display: grid; gap: var(--space-6); }
.area-list__content > p { margin-top: var(--space-5); }
.area-list__items { display: grid; grid-template-columns: minmax(0, 1fr); list-style: none; padding: 0; column-gap: var(--grid-gap); }
.area-list__items li { padding-block: var(--space-5); border-top: var(--rule); font-size: var(--text-lead); font-weight: 500; }
.contact-band { background: var(--band); }
.contact-band__grid { display: grid; gap: var(--space-5); }
.contact-band__content > .button { margin-top: var(--space-5); }
.contact-band__channels { display: grid; gap: var(--space-5); margin-top: var(--space-6); }
.contact-band__channel { border-top: var(--rule); padding-top: var(--space-5); min-width: 0; }
.contact-band__channel a { display: inline-block; min-height: var(--target-size); overflow-wrap: anywhere; }
.page-contact .contact-band { background: var(--header-bg); }
.contact-card address a { display: block; margin-top: var(--space-3); }
.contact-hours { width: 100%; border-collapse: collapse; margin-top: var(--space-5); font-size: var(--text-small); }
.contact-hours th, .contact-hours td { padding-block: var(--space-3); border-bottom: var(--rule); text-align: left; }
.contact-hours th { font-weight: 500; }
.contact-hours td { text-align: right; font-variant-numeric: tabular-nums; }

/* marquee: static wrapping baseline; animation is injected */
.marquee-strip { background: var(--header-bg); border-block: var(--rule); }
.marquee-strip [data-scroller] { min-height: var(--marquee-height); padding-block: var(--space-5); }
.marquee-strip ul { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-5) var(--space-6); list-style: none; padding: 0; }
.marquee-strip li { display: inline-flex; align-items: center; gap: var(--space-6); font-size: var(--space-5); font-weight: 500; line-height: var(--leading-lead); }
.marquee-strip li::after { content: ''; flex: 0 0 auto; width: var(--space-5); aspect-ratio: 2 / 1; background: var(--primary); border-radius: var(--radius-round) var(--radius-round) 0 0; }
.marquee-pause { margin-top: var(--space-4); }

/* cta bands */
.cta-band { position: relative; background: var(--primary); color: var(--surface); margin-top: calc(var(--tab-width) / 2); }
.cta-band > .meeting-tab { bottom: 100%; right: var(--page-gutter); }
.cta-band__grid { display: grid; gap: var(--space-6); align-items: center; }
.cta-band__content p { margin-top: var(--space-5); font-size: var(--text-lead); line-height: var(--leading-lead); }
.cta-band .button { background: var(--surface); color: var(--text); border-color: var(--surface); }
.cta-band .button:hover { color: var(--surface); background: var(--logo-ink); border-color: var(--logo-ink); }
.cta-band a:not(.button) { color: var(--surface); }
.cta-band :focus-visible { outline-color: var(--surface); }

/* contact form and legal details */
.contact-form { background: var(--surface); }
#formulario { scroll-margin-top: var(--space-6); }
.contact-form__layout { display: grid; gap: var(--space-7); align-items: start; }
.contact-form__form { min-width: 0; }
.contact-form__fields { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-5); }
.form-field { display: flex; flex-direction: column; gap: var(--space-2); min-width: 0; }
.form-field--full { grid-column: 1 / -1; }
.form-field label, .form-field legend { font-size: var(--text-small); font-weight: 700; }
.contact-form__form > .form-field + .form-field { margin-top: var(--space-5); }
input:not([type='checkbox']):not([type='radio']), select, textarea { display: block; width: 100%; min-width: 0; min-height: var(--control-height); padding: var(--space-3) var(--space-4); background: var(--header-bg); color: var(--text); border: var(--rule); border-radius: var(--radius-control); line-height: var(--leading-small); transition: border-color var(--duration-fast) var(--ease), background-color var(--duration-fast) var(--ease); }
input:hover, select:hover, textarea:hover { border-color: var(--primary); }
input:focus, select:focus, textarea:focus { border-color: var(--primary); background: var(--surface); }
textarea { min-height: var(--textarea-height); resize: vertical; }
input[type='checkbox'], input[type='radio'] { width: var(--space-5); height: var(--space-5); flex: 0 0 var(--space-5); margin: 0; accent-color: var(--primary); }
input:disabled { cursor: default; }
fieldset { margin: 0; padding: var(--space-4); border: var(--rule); border-radius: var(--radius-control); min-width: 0; }
fieldset legend { padding-inline: var(--space-2); }
.radio-options { display: grid; gap: var(--space-3); }
.radio-options label { display: flex; align-items: center; gap: var(--space-3); min-height: var(--target-size); }
.form-hint { color: var(--muted); font-size: var(--text-small); }
.form-error { color: var(--logo-ink); font-size: var(--text-small); font-weight: 700; border-left: var(--rule-strong); padding-left: var(--space-3); }
.form-error-summary { border: var(--rule-strong); border-radius: var(--radius-control); padding: var(--space-5); margin-bottom: var(--space-6); }
.form-error-summary ul { margin-top: var(--space-3); }
[aria-invalid='true'] { border: var(--rule-strong); }
.consentrow { display: flex; align-items: flex-start; gap: var(--space-3); margin-block: var(--space-6) var(--space-5); font-size: var(--text-small); line-height: var(--leading-small); }
.consentrow span { max-width: var(--measure); }
.formextra { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.sentmsg { margin-top: var(--space-6); border-top: var(--rule-strong); padding-top: var(--space-5); }
.contact-form__aside { border-top: var(--rule); padding-top: var(--space-5); }
.contact-form__aside > * + * { margin-top: var(--space-5); }
.contact-form__aside p, .contact-form__aside address { font-size: var(--text-small); }
.legal-details { grid-column: 1 / -1; border-top: var(--rule); padding-top: var(--space-5); color: var(--muted); font-size: var(--text-small); line-height: var(--leading-small); }
.legal-details dl > div { display: grid; gap: var(--space-2); margin-top: var(--space-3); }
.legal-details dt { font-weight: 700; color: var(--text); }
.legal-details__links { display: flex; flex-wrap: wrap; gap: var(--space-3) var(--space-5); margin-top: var(--space-4); }

/* faq: native, multiple open rows supported */
.faq { background: var(--band); }
.faq__inner { max-width: var(--container-reading); margin-inline: auto; }
.faq__list details { border-top: var(--rule); }
.faq__list details:last-child { border-bottom: var(--rule); }
.faq__list summary { position: relative; display: flex; align-items: center; min-height: var(--control-height); padding: var(--space-5) var(--space-7) var(--space-5) 0; font-weight: 700; line-height: var(--leading-lead); list-style: none; cursor: pointer; transition: color var(--duration-fast) var(--ease); }
.faq__list summary::-webkit-details-marker { display: none; }
.faq__list summary::before, .faq__list summary::after { content: ''; position: absolute; right: var(--space-2); top: 50%; width: var(--space-4); height: 2px; background: currentColor; }
.faq__list summary::after { transform: rotate(90deg); }
.faq__list details[open] summary::after { transform: rotate(0); }
.faq__list summary:hover { color: var(--primary); }
.faq__answer, .faq__list details > p { padding-bottom: var(--space-5); padding-right: var(--space-7); }

/* thank-you, legal and article layouts */
.page-thank-you .hero__grid { display: block; }
.page-thank-you .hero__content { position: relative; max-width: var(--container-reading); padding-top: calc(var(--tab-width) / 2 + var(--space-6)); }
.page-thank-you .hero__content > .meeting-tab { left: 0; top: 0; }
.page-thank-you .hero__title { max-width: none; }
.page-thank-you .cta-band { margin-top: 0; background: var(--band); color: var(--text); }
.page-thank-you .cta-band .button { background: var(--primary); border-color: var(--primary); color: var(--surface); }
.page-thank-you .cta-band .button:hover { background: var(--logo-ink); border-color: var(--logo-ink); }
.page-thank-you .cta-band :focus-visible { outline-color: var(--primary); }
.legal-page, .article-detail { padding-block: var(--section-space); }
.legal-page__header, .article-detail__header { margin-bottom: var(--space-7); }
.legal-page__body, .article-detail__body { max-width: var(--container-reading); margin-inline: auto; }
.legal-page__body > * + *, .article-detail__body > p + p { margin-top: var(--space-5); }
.legal-page__body h2, .article-detail__body h2 { margin-block: var(--space-8) var(--space-5); }
.legal-page__body h3, .article-detail__body h3 { margin-block: var(--space-6) var(--space-4); }
.legal-page__body p, .article-detail__body p { max-width: 72ch; }
.article-detail__standfirst { font-family: var(--font-editorial); font-size: var(--text-lead); line-height: var(--leading-lead); margin-top: var(--space-6); max-width: var(--measure-lead); }
.article-detail__meta { display: flex; flex-wrap: wrap; gap: var(--space-3) var(--space-5); color: var(--muted); font-size: var(--text-small); margin-top: var(--space-5); }
.article-detail__media { margin-block: var(--space-7); }
.article-detail__media img { width: 100%; aspect-ratio: 4 / 3; }
.article-detail__body .checklist, .article-detail__body .glossary { margin-block: var(--space-7); padding: var(--space-5); }
.back { display: inline-flex; align-items: center; min-height: var(--target-size); margin-top: var(--space-8); font-weight: 700; }
.table-scroll { overflow-x: auto; max-width: 100%; }
.article-detail table, .legal-page table { width: 100%; border-collapse: collapse; text-align: left; }
.article-detail th, .article-detail td, .legal-page th, .legal-page td { padding: var(--space-4); border-bottom: var(--rule); vertical-align: top; }
.article-detail caption { text-align: left; font-weight: 700; margin-bottom: var(--space-5); }
.pull-quote { margin-block: var(--space-8); padding-block: var(--space-6); border-block: var(--rule); font-family: var(--font-editorial); font-size: var(--text-lead); }
.pull-quote cite { display: block; font-family: var(--font-ui); font-size: var(--text-small); margin-top: var(--space-5); font-style: normal; }

/* footer: 5/4/3 columns and one mustard tab */
.site-footer { background: var(--band); padding-top: var(--section-space); }
.site-footer__grid { display: grid; gap: var(--space-7); padding-bottom: var(--space-7); }
.site-footer__brand { position: relative; padding-top: calc(var(--tab-width) / 2 + var(--space-5)); }
.site-footer__brand > .meeting-tab { left: 0; top: 0; }
.site-footer__name { font-size: var(--text-h3); font-weight: 700; line-height: var(--leading-heading); letter-spacing: var(--tracking-heading); }
.site-footer__tagline { font-size: var(--text-lead); line-height: var(--leading-lead); margin-top: var(--space-4); max-width: 24ch; }
.site-footer__description { margin-top: var(--space-5); color: var(--muted); font-size: var(--text-small); }
.site-footer__nav ul, .site-footer__legal { padding: 0; list-style: none; }
.site-footer__nav a, .site-footer__legal a { display: inline-flex; align-items: center; min-height: var(--target-size); }
.site-footer a { color: var(--text); }
.site-footer a:hover { color: var(--primary); }
.site-footer__nav a { font-weight: 500; }
.site-footer__contact { font-size: var(--text-small); }
.site-footer__contact address p + p { margin-top: var(--space-3); }
.site-footer__contact address a { display: inline-flex; align-items: center; min-height: var(--target-size); overflow-wrap: anywhere; }
.site-footer__legal { margin-top: var(--space-5); }
.cookie-reopen { display: inline-flex; align-items: center; min-height: var(--target-size); padding: 0; border: 0; background: transparent; font-size: var(--text-small); text-decoration: underline; text-underline-offset: var(--space-1); cursor: pointer; transition: color var(--duration-fast) var(--ease); }
.cookie-reopen:hover { color: var(--primary); }
.site-footer__bottom { padding-block: var(--space-5); border-top: var(--rule); font-size: var(--text-small); color: var(--muted); }

/* cookie consent: visibility and preference behavior injected later */
.consentcard { position: fixed; left: 1rem; right: 1rem; bottom: 1rem; display: none; z-index: 9999; max-width: var(--container); margin-inline: auto; padding: var(--space-5); border: var(--rule); border-top: var(--rule-strong); border-radius: var(--radius-control); background: var(--surface); color: var(--text); box-shadow: var(--shadow-panel); max-height: calc(100dvh - var(--space-6)); overflow-y: auto; }
.consentcard.isshown { display: block; }
.consentcard > p { max-width: var(--measure); font-size: var(--text-small); line-height: var(--leading-small); }
.consentcard-ctrl { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-3); margin-top: var(--space-5); }
.consentcard button { font-size: var(--text-small); }
.consentcard [data-ck-allow], .consentcard [data-ck-deny] { background: var(--surface); color: var(--primary); border-color: var(--primary); }
.consentcard [data-ck-allow]:hover, .consentcard [data-ck-deny]:hover { background: var(--logo-ink); color: var(--surface); border-color: var(--logo-ink); }
.consentcard [data-ck-options] { background: var(--header-bg); border-color: var(--line); color: var(--text); }
.consentcard [data-ck-options]:hover { background: var(--band); }
.consentcard-options { display: grid; gap: var(--space-3); margin-top: var(--space-5); padding-top: var(--space-5); border-top: var(--rule); }
.consentcard-options label { display: flex; align-items: center; gap: var(--space-3); min-height: var(--target-size); font-size: var(--text-small); }
body:has(.consentcard.isshown) { padding-bottom: var(--consent-space); }
body:has(.consentcard.isshown .consentcard-options:not([hidden])) { padding-bottom: calc(var(--consent-space) * 2); }

/* small screens: retain full 72px logo without overflowing 320px */
@media (min-width: 360px) {
	.site-header__inner { flex-wrap: wrap; }
	.logolink + .nav-toggle { margin-left: auto; }
}

/* tablet: twelve-column composition, disclosure navigation retained */
@media (min-width: 768px) {
	.grid { grid-template-columns: repeat(12, minmax(0, 1fr)); }
	.site-header__inner { min-height: var(--header-height-desktop); }
	.logolink img { height: 96px; width: auto; }
	.hero__grid, .intro__grid, .checklist__layout, .case-study__grid, .gallery__grid, .contact-band__grid, .cta-band__grid, .contact-form__layout { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--grid-gap); }
	.hero__content { grid-column: 1 / 8; }
	.hero__media { grid-column: 8 / -1; align-self: start; margin-top: calc(var(--tab-width) / 2); }
	.page-home .hero__media { margin-top: var(--space-8); }
	.page-portfolio .hero__content { grid-column: 1 / 6; }
	.page-portfolio .hero__media { grid-column: 6 / -1; }
	.page-services .hero__content, .hero--panoramic .hero__content { grid-column: 1 / 10; }
	.page-process .hero__content { grid-column: 1 / 9; }
	.page-services .hero__title, .page-process .hero__title { max-width: 20ch; }
	.page-services .hero__media, .page-process .hero__media, .hero--panoramic .hero__media { grid-column: 1 / -1; margin-top: calc(var(--tab-width) / 2 + var(--space-6)); }
	.page-services .hero__media img, .page-process .hero__media img, .hero--panoramic .hero__media img { aspect-ratio: 21 / 9; }
	.intro__media { grid-column: 1 / 6; grid-row: 1; }
	.intro__content { grid-column: 7 / -1; grid-row: 1; }
	.page-services .intro__content { grid-column: 1 / 8; }
	.page-services .intro__media { grid-column: 8 / -1; }
	.page-contact .intro__media { grid-column: 1 / 5; }
	.page-contact .intro__content { grid-column: 6 / -1; }
	.intro--text .intro__content { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--grid-gap); grid-column: 1 / -1; }
	.intro--text .intro__content > h2 { grid-column: 1 / 6; }
	.intro--text .intro__content > p { grid-column: 7 / -1; margin-top: 0; }
	.page-portfolio .intro--text .intro__content > h2 { grid-column: 1 / 5; }
	.page-portfolio .intro--text .intro__content > p { grid-column: 6 / -1; }
	.intro--editorial .intro__content, .intro--text.intro--editorial .intro__content { grid-column: 3 / 11; display: block; }
	.intro--editorial .intro__content > p, .intro--text.intro--editorial .intro__content > p { margin-top: var(--space-5); }
	.checklist__layout > .section-heading { grid-column: 1 / 5; }
	.checklist__list { grid-column: 5 / -1; }
	.checklist__list > li { grid-template-columns: var(--label-width) minmax(0, 1fr); }
	.sheet-index { min-width: var(--label-width); }
	.page-services .checklist__layout > .section-heading, .page-portfolio .checklist__layout > .section-heading, .checklist--columns .section-heading, .checklist--reading .section-heading { grid-column: 1 / -1; margin-bottom: var(--space-6); }
	.page-services .checklist__list, .checklist--columns .checklist__list { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--space-7); }
	.page-services .checklist__list > li:last-child, .checklist--columns .checklist__list > li:last-child { border-bottom: 0; }
	.page-services .checklist__list, .checklist--columns .checklist__list { border-bottom: var(--rule); }
	.page-portfolio .checklist__list, .checklist--reading .checklist__list { grid-column: 1 / -1; }
	.testimonial__quote { margin-left: calc((100% + var(--grid-gap)) / 6); }
	.highlights__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.page-home .highlights__grid { grid-template-columns: 7fr 5fr; column-gap: var(--space-7); }
	.page-services .highlights__grid, .services-list { grid-template-columns: minmax(0, 1fr); }
	.page-services .highlight, .page-services .highlight > .cardanchor, .services-list .highlight { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--grid-gap); }
	.page-services .highlight:has(> .cardanchor) { display: block; }
	.page-services .highlight h3, .services-list .highlight h3 { grid-column: 1 / 5; }
	.page-services .highlight p, .page-services .highlight .cardanchor h3 + p, .services-list .highlight p { grid-column: 5 / -1; margin-top: 0; max-width: var(--measure); }
	.case-study__media { grid-column: 1 / 8; grid-row: 1; }
	.case-study__content { grid-column: 8 / -1; grid-row: 1; }
	.case-study__fact dt { grid-template-columns: var(--label-width) minmax(0, 1fr); }
	.case-study__fact:has(.sheet-index) dd { margin-left: var(--label-width); }
	.page-portfolio .case-study__media { grid-column: 1 / -1; }
	.page-portfolio .case-study__media img { aspect-ratio: 16 / 9; }
	.page-portfolio .case-study__content { grid-row: 2; grid-column: 1 / -1; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--grid-gap); margin-top: var(--space-6); }
	.page-portfolio .case-study__content > h2, .page-portfolio .case-study__content > .overline { grid-column: 1 / 6; }
	.page-portfolio .case-study__content > p:not(.overline) { grid-column: 6 / -1; margin-top: 0; }
	.page-portfolio .case-study__facts { grid-column: 6 / -1; margin-top: var(--space-5); }
	.gallery__content { grid-column: 1 / 5; }
	.gallery__media { grid-column: 5 / -1; }
	.gallery-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.glossary__row { display: grid; grid-template-columns: 1fr 2fr; gap: var(--grid-gap); }
	.glossary__row dt { font-size: var(--text-body); line-height: var(--leading-body); letter-spacing: 0; }
	.glossary__row dt:has(.sheet-index) { grid-template-columns: var(--label-width) minmax(0, 1fr); }
	.glossary__row dd { margin-top: 0; }
	.area-list__layout { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--grid-gap); }
	.area-list__content { grid-column: 1 / 6; }
	.area-list__items { grid-column: 7 / -1; grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.contact-band__grid > h2, .contact-band__grid > .section-heading { grid-column: 1 / 7; }
	.contact-band__content { grid-column: 7 / -1; }
	.page-contact .contact-band__grid > h2, .page-contact .contact-band__grid > .section-heading, .page-contact .contact-band__content { grid-column: 1 / -1; }
	.contact-band__channels { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.cta-band__content { grid-column: 1 / 9; }
	.cta-band__action { grid-column: 9 / -1; justify-self: end; }
	.contact-form__form { grid-column: 1 / 9; }
	.contact-form__aside { grid-column: 9 / -1; }
	.contact-form__fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.legal-details dl > div { grid-template-columns: 1fr 3fr; }
	.page-thank-you .hero__grid { display: grid; }
	.page-thank-you .hero__content { grid-column: 3 / 11; }
	.article-detail__header { max-width: calc(var(--container) * 0.75); }
	.article-detail__media img { aspect-ratio: 16 / 9; }
	.site-footer__grid { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--grid-gap); }
	.site-footer__brand { grid-column: 1 / 6; padding-right: var(--space-5); }
	.site-footer__nav { grid-column: 6 / 10; padding-top: calc(var(--tab-width) / 2 + var(--space-5)); padding-left: var(--space-5); }
	.site-footer__contact { grid-column: 10 / -1; padding-top: calc(var(--tab-width) / 2 + var(--space-5)); }
	.consentcard-ctrl { display: flex; flex-wrap: wrap; }
	.consentcard-ctrl button { flex: 1 1 0; }
	.consentcard-options { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.consentcard-options > button { grid-column: 1 / -1; justify-self: start; }
}

/* full desktop: sticky masthead and horizontal navigation */
@media (min-width: 1200px) {
	html { scroll-padding-top: calc(var(--header-height-desktop) + var(--space-6)); }
	.site-header { position: sticky; top: 0; }
	.site-header__inner { flex-wrap: nowrap; gap: var(--space-5); }
	.nav-toggle { display: none !important; }
	.primary-nav, .site-header.nav-ready .primary-nav, .site-header.nav-ready.is-menu-open .primary-nav { display: block; flex-basis: auto; padding: 0; margin-left: auto; }
	.primary-nav ul { flex-direction: row; align-items: center; gap: var(--space-4); }
	.primary-nav a { white-space: nowrap; }
	.primary-nav__home { display: none; }
	.hero__grid { align-items: start; }
	#formulario { scroll-margin-top: calc(var(--header-height-desktop) + var(--space-6)); }
	.consentcard.isshown { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: var(--space-5); }
	.consentcard-ctrl { margin-top: 0; }
	.consentcard-options { grid-column: 1 / -1; }
}

/* reduced motion and print */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
	.marquee-strip ul { flex-wrap: wrap; transform: none !important; }
	.marquee-strip [aria-hidden='true'] { display: none; }
}
@media print {
	.site-header { position: static; }
	.nav-toggle, .consentcard, .cookie-reopen, .marquee-pause { display: none !important; }
	body { background: white; color: black; padding-bottom: 0 !important; }
	.container { width: 100%; }
	.cta-band { background: white; color: black; }
	a { color: inherit; }
	img, blockquote, .checklist__list > li { break-inside: avoid; }
}

/* page: index */
/* inicio: editorial heading measure and photographic alignment */
.page-index .highlights > .container > .section-heading { max-width: var(--container-reading); }
.page-index .case-study__media { align-self: start; }

/* page: servicios */
/* servicios: align the working photograph with the opening paragraph */
@media (min-width: 768px) {
	.page-servicios .intro--planning .intro__content { display: contents; }
	.page-servicios .intro--planning .intro__content > h2 { grid-column: 1 / 8; grid-row: 1; margin-bottom: var(--space-3); }
	.page-servicios .intro--planning .intro__content > p { grid-column: 1 / 8; grid-row: 2; margin-top: 0; }
	.page-servicios .intro--planning .intro__media { grid-column: 8 / -1; grid-row: 2; align-self: start; }
}

/* page: contacto */
/* contacto: prominent direct contact channels */
.page-contacto .contact-band__channel a { font-size: var(--text-lead); font-weight: 500; line-height: var(--leading-lead); }
.page-contacto .contact-form__aside > p { line-height: var(--leading-body); }
.page-contacto .legal-details dd a { overflow-wrap: anywhere; }

/* page: privacy */
/* privacy policy: index and reading column */
.page-privacy .privacy-header { max-width: var(--container-reading); }
.page-privacy .privacy-header__date { margin-top: var(--space-5); color: var(--muted); font-size: var(--text-small); font-variant-numeric: tabular-nums; }
.page-privacy .privacy-header__intro { margin-top: var(--space-6); font-family: var(--font-editorial); font-size: var(--text-lead); line-height: var(--leading-lead); }
.page-privacy .privacy-layout { display: grid; gap: var(--space-7); align-items: start; }
.page-privacy .privacy-toc { padding-block: var(--space-5); border-block: var(--rule); }
.page-privacy .privacy-toc ol { display: grid; gap: var(--space-2); margin-top: var(--space-4); padding-left: var(--space-5); font-size: var(--text-small); line-height: var(--leading-small); }
.page-privacy .privacy-toc a { display: inline-block; padding-block: var(--space-1); color: var(--text); }
.page-privacy .privacy-toc a:hover { color: var(--primary); }
.page-privacy .privacy-article { min-width: 0; margin: 0; }
.page-privacy .privacy-section { scroll-margin-top: calc(var(--header-height-desktop) + var(--space-6)); padding-block: var(--space-7); border-top: var(--rule); }
.page-privacy .privacy-section:first-child { padding-top: 0; border-top: 0; }
.page-privacy .privacy-section h2 { display: grid; grid-template-columns: var(--sheet-index-mobile) minmax(0, 1fr); gap: var(--space-2); align-items: baseline; margin: 0 0 var(--space-5); }
.page-privacy .privacy-section h2 .sheet-index { font-family: var(--font-ui); letter-spacing: var(--tracking-label); }
.page-privacy .privacy-section p + p { margin-top: var(--space-5); }
.page-privacy .privacy-data-list { margin-block: var(--space-6); border-top: var(--rule); }
.page-privacy .privacy-data-list > div { padding-block: var(--space-5); border-bottom: var(--rule); }
.page-privacy .privacy-data-list dt { font-weight: 700; line-height: var(--leading-heading); }
.page-privacy .privacy-data-list dd { margin-top: var(--space-2); }
.page-privacy .privacy-address { margin-top: var(--space-5); padding-top: var(--space-5); border-top: var(--rule); line-height: var(--leading-body); }
@media (min-width: 768px) {
	.page-privacy .privacy-layout { grid-template-columns: minmax(0, 3fr) minmax(0, 9fr); gap: var(--space-8); }
	.page-privacy .privacy-toc { position: sticky; top: calc(var(--header-height-desktop) + var(--space-6)); max-height: calc(100vh - var(--header-height-desktop) - var(--space-8)); overflow-y: auto; }
	.page-privacy .privacy-section h2 { grid-template-columns: var(--label-width) minmax(0, 1fr); }
}
@media (min-width: 1200px) {
	.page-privacy .privacy-layout { grid-template-columns: minmax(0, 3fr) minmax(0, 7fr); }
	.page-privacy .privacy-data-list > div { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: var(--grid-gap); }
	.page-privacy .privacy-data-list dd { margin-top: 0; }
}

/* page: cookies */
/* cookie policy: editorial legal layout */
.page-cookies .cookies-intro { padding-bottom: var(--space-8); border-bottom: var(--rule); }
.page-cookies .cookies-intro h1 { max-width: 15ch; }
.page-cookies .cookies-intro__date { margin-top: var(--space-5); color: var(--muted); font-size: var(--text-small); font-variant-numeric: tabular-nums; }
.page-cookies .cookies-intro__lead { max-width: var(--measure-lead); margin-top: var(--space-7); font-family: var(--font-editorial); font-size: var(--text-lead); line-height: var(--leading-lead); }
.page-cookies .cookies-layout { display: grid; gap: var(--space-8); padding-top: var(--space-8); }
.page-cookies .cookies-toc { align-self: start; border-top: var(--rule-strong); padding-top: var(--space-5); }
.page-cookies .cookies-toc ol { display: grid; gap: var(--space-1); padding-left: var(--space-5); margin-top: var(--space-4); font-size: var(--text-small); }
.page-cookies .cookies-toc li { padding-left: var(--space-2); }
.page-cookies .cookies-toc a { display: inline-block; padding-block: var(--space-1); color: var(--text); }
.page-cookies .cookies-toc a:hover { color: var(--primary); }
.page-cookies .cookies-article { min-width: 0; max-width: var(--container-reading); }
.page-cookies .cookies-section { scroll-margin-top: calc(var(--header-height-desktop) + var(--space-6)); padding-block: var(--space-7); border-top: var(--rule); }
.page-cookies .cookies-section:first-child { padding-top: 0; border-top: 0; }
.page-cookies .cookies-section h2 { display: flex; gap: var(--space-3); align-items: baseline; margin-bottom: var(--space-6); }
.page-cookies .cookies-section h2 .sheet-index { flex: 0 0 var(--sheet-index-mobile); font-family: var(--font-ui); }
.page-cookies .cookies-section p + p { margin-top: var(--space-5); }
.page-cookies .cookies-section code { overflow-wrap: anywhere; font-size: .92em; }
.page-cookies .cookies-definitions > div { display: grid; gap: var(--space-2); padding-block: var(--space-5); border-top: var(--rule); }
.page-cookies .cookies-definitions > div:last-child { border-bottom: var(--rule); }
.page-cookies .cookies-definitions dt { font-weight: 700; }
.page-cookies .cookies-definitions dd { color: var(--text); }
.page-cookies .cookies-definitions + p, .page-cookies .cookies-table-wrap + p { margin-top: var(--space-6); }
.page-cookies .cookies-table-wrap { max-width: 100%; margin-block: var(--space-6); overflow-x: auto; }
.page-cookies .cookies-table-wrap table { min-width: 44rem; width: 100%; border-collapse: collapse; font-size: var(--text-small); line-height: var(--leading-small); text-align: left; }
.page-cookies .cookies-table-wrap caption { margin-bottom: var(--space-3); text-align: left; font-weight: 700; }
.page-cookies .cookies-table-wrap th, .page-cookies .cookies-table-wrap td { padding: var(--space-3); border-bottom: var(--rule); vertical-align: top; }
.page-cookies .cookies-table-wrap thead { background: var(--band); }
.page-cookies .cookies-table-wrap tbody th { font-weight: 700; }
.page-cookies .cookies-reopen { margin-block: var(--space-6); }
@media (min-width: 768px) {
	.page-cookies .cookies-layout { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: var(--space-8); }
	.page-cookies .cookies-toc { position: sticky; top: calc(var(--header-height-desktop) + var(--space-6)); }
	.page-cookies .cookies-section h2 .sheet-index { flex-basis: var(--label-width); }
}
@media (min-width: 1200px) {
	.page-cookies .cookies-layout { grid-template-columns: minmax(0, 1fr) minmax(0, 3fr); }
}

/* page: terms */
/* términos de uso: cabecera editorial */
.page-terms .terms-header { border-bottom: var(--rule); padding-bottom: var(--space-7); }
.page-terms .terms-header h1 { max-width: 12ch; }
.page-terms .terms-header__date { margin-top: var(--space-5); color: var(--muted); font-size: var(--text-small); font-variant-numeric: tabular-nums; }
.page-terms .terms-header__intro { margin-top: var(--space-6); max-width: var(--container-reading); font-family: var(--font-editorial); font-size: var(--text-lead); line-height: var(--leading-lead); }

/* términos de uso: índice y hoja de lectura */
.page-terms .terms-layout { display: grid; gap: var(--space-8); padding-top: var(--space-7); align-items: start; }
.page-terms .terms-toc { border-top: var(--rule-strong); padding-top: var(--space-5); }
.page-terms .terms-toc h2 { font-family: var(--font-ui); font-size: var(--text-label); line-height: var(--leading-small); letter-spacing: var(--tracking-label); text-transform: uppercase; }
.page-terms .terms-toc ol { list-style: none; padding: 0; margin-top: var(--space-4); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--space-5); }
.page-terms .terms-toc li { border-bottom: var(--rule); }
.page-terms .terms-toc a { display: flex; align-items: center; min-height: var(--target-size); padding-block: var(--space-2); color: var(--text); font-size: var(--text-small); line-height: var(--leading-small); text-decoration: none; }
.page-terms .terms-toc a:hover { color: var(--primary); text-decoration: underline; }
.page-terms .terms-body { width: 100%; max-width: var(--container-reading); margin-inline: 0; }
.page-terms .terms-section { scroll-margin-top: calc(var(--header-height-desktop) + var(--space-5)); padding-block: var(--space-6) var(--space-7); border-top: var(--rule); }
.page-terms .terms-section:first-child { padding-top: 0; border-top: 0; }
.page-terms .terms-section h2 { display: grid; grid-template-columns: var(--sheet-index-mobile) minmax(0, 1fr); column-gap: var(--space-2); align-items: baseline; margin: 0 0 var(--space-5); font-size: clamp(1.625rem, 2.5vw, 2.5rem); }
.page-terms .terms-section h2 .sheet-index { font-family: var(--font-ui); letter-spacing: var(--tracking-label); }
.page-terms .terms-section p + p { margin-top: var(--space-5); }

@media (min-width: 768px) {
	.page-terms .terms-layout { grid-template-columns: minmax(0, 3fr) minmax(0, 8fr); column-gap: var(--space-8); }
	.page-terms .terms-toc { position: sticky; top: calc(var(--header-height-desktop) + var(--space-6)); }
	.page-terms .terms-toc ol { grid-template-columns: minmax(0, 1fr); }
	.page-terms .terms-section h2 { grid-template-columns: var(--label-width) minmax(0, 1fr); }
}
@media (min-width: 1200px) {
	.page-terms .terms-layout { grid-template-columns: minmax(0, 3fr) minmax(0, 7fr) minmax(0, 2fr); }
	.page-terms .terms-body { grid-column: 2; }
}
@media (max-width: 767px) {
	.page-terms .terms-toc { position: static; }
	.page-terms .terms-section { scroll-margin-top: var(--space-6); }
}

.legal { max-width: 72ch; margin: 0 auto; padding: clamp(2rem, 6vw, 4.5rem) 1.25rem; }
.legal h1 { margin: 0 0 0.75rem; }
.legal h2 { margin: 2.25rem 0 0.75rem; }
.legal p, .legal li { line-height: 1.7; }
.legal ul { padding-left: 1.25rem; }
.legal-meta { opacity: 0.7; font-size: 0.9em; }
.legal-back { margin-top: 2.5rem; }
.legal-risk { margin: 1rem 0; padding: 1rem 1.25rem; border-left: 4px solid #D97706; border-radius: 0.375rem; background: #FFF7E6; color: #3B2A06; }
.legal-risk p { margin: 0; }

/* motion */
.motionok [data-appear]:not(.animend), .motionok [data-stagger] > :not(.animend) {
	transition-property: opacity, transform;
	transition-duration: 0.7s;
	transition-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
}
.motionok [data-appear]:not(.in), .motionok [data-stagger] > :not(.in) {
	opacity: 0; transform: translateY(11px);
}
[data-tabset] [role="tablist"] { display: none; }
.js [data-tabset] [role="tablist"] { display: flex; flex-wrap: wrap; }
[data-scroller] { overflow: hidden; }
.motionok [data-scroller] > :first-child {
	display: flex; flex-wrap: nowrap; width: max-content;
	animation: ticker 33s linear infinite;
}
.motionok [data-scroller]:hover > :first-child { animation-play-state: paused; }
@keyframes ticker { to { transform: translateX(-50%); } }
.readbar {
	position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 9998;
	transform: scaleX(0); transform-origin: 0 50%;
	background: var(--color-accent, currentColor); pointer-events: none;
}
@media (prefers-reduced-motion: reduce) {
	.motionok [data-appear]:not(.in), .motionok [data-stagger] > :not(.in) { opacity: 1; transform: none; clip-path: none; filter: none; }
	.motionok [data-scroller] > :first-child { animation: none; }
}
