/*
Theme Name: Elisabetta Rondelli — Tema completo
Theme URI: https://elisabettarondelli.com/
Author: Elisabetta Rondelli
Description: Tema WordPress bilingue completo, fedele all’anteprima, con pagine e immagini incluse.
Version: 2.1.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: elisabetta-rondelli
Tags: custom-menu, featured-images

Contratto dei template: classi prefissate er- per i componenti personalizzati.
Tema autonomo: nessuna intestazione Template e nessun tema padre richiesto.
Instrument Serif e Manrope saranno caricati tramite functions.php, quando
disponibili. Nessun @import o riferimento a file font ancora inesistenti.
Il CSS non carica script e non modifica il contenuto degli iframe esterni.
SEO: gerarchie H1/H2/H3 e metadati saranno definiti nei file PHP.
Il foglio di stile non aggiunge contenuti, promesse commerciali o tag SEO.
*/

/* 01. Design tokens */
:root {
  color-scheme: light;
  --fondo-carta: #FAF9F7;
  --testo-grafite: #202020;
  --primario-melanzana: #990C0C;
  --melanzana-hover: #760909;
  --accento-cedro: #F4E5E2;
  --separatori: #E3DEDB;
  --er-white: #ffffff;
  --er-muted: #606060;
  --er-field-border: #827a8d;
  --er-error: #962c3c;
  --er-success: #285b3b;
  --er-font-body: "Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;
  --er-font-display: "Manrope", system-ui, sans-serif;
  --er-container: 77.5rem;
  --er-gutter: clamp(1.25rem, 4vw, 4rem);
  --er-section: clamp(3.5rem, 8vw, 8rem);
  --er-gap: clamp(1.5rem, 4vw, 4rem);
  --er-radius: 0.375rem;
  --er-header-offset: 1.5rem;
  --er-fast: 180ms;
}

/* 02. Base: nessun contenuto nascosto in attesa di JavaScript */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 2rem; }
body {
  margin: 0;
  background: var(--fondo-carta);
  color: var(--testo-grafite);
  font-family: var(--er-font-body);
  font-size: 1.0625rem;
  line-height: 1.65;
  overflow-wrap: break-word;
}
[hidden] { display: none !important; }
img, svg, video { display: block; max-width: 100%; height: auto; }
iframe { display: block; max-width: 100%; border: 0; }
figure { margin: 0; }
button, input, textarea, select { font: inherit; }
button, select { cursor: pointer; }
button { color: inherit; }
a { color: var(--primario-melanzana); text-underline-offset: 0.22em; }
a:hover { text-decoration-thickness: 0.12em; }
button, a, input, textarea, select, summary { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid var(--primario-melanzana); outline-offset: 4px; }
::selection { background: var(--accento-cedro); color: var(--testo-grafite); }
h1, h2, h3, h4, h5, h6 { margin: 0 0 1rem; font-weight: 500; line-height: 1.15; }
h1, h2 { font-family: var(--er-font-display); }
h1 { font-size: clamp(2.5rem, 5.7vw, 5rem); line-height: 1.04; }
h2 { font-size: clamp(1.875rem, 4vw, 3.25rem); line-height: 1.1; }
h3 { font-size: clamp(1.375rem, 2vw, 1.75rem); }
h4 { font-size: 1.125rem; font-weight: 600; }
p, ul, ol, blockquote { margin: 0 0 1.5rem; }
ul, ol { padding-inline-start: 1.5rem; }
li + li { margin-top: 0.5rem; }
small, figcaption { font-size: 0.875rem; }
figcaption { margin-top: 0.75rem; color: var(--er-muted); }
blockquote { margin-inline: 0; padding-inline-start: 1.5rem; border-inline-start: 2px solid var(--primario-melanzana); }
hr { margin-block: 2rem; border: 0; border-top: 1px solid var(--separatori); }
table { width: 100%; border-collapse: collapse; text-align: start; }
th, td { padding: 1rem; border-bottom: 1px solid var(--separatori); vertical-align: top; }
th { font-weight: 600; }
pre { max-width: 100%; overflow: auto; padding: 1rem; background: var(--er-white); }
code { font-family: ui-monospace, monospace; font-size: 0.9em; }

/* 03. Accessibilita e layout condiviso */
.screen-reader-text {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0;
}
.screen-reader-text:focus {
  position: fixed; inset: 1rem auto auto 1rem; width: auto; height: auto;
  margin: 0; padding: 1rem; clip-path: none; white-space: normal;
  background: var(--er-white); color: var(--testo-grafite); z-index: 100000;
}
.er-container { width: min(var(--er-container), calc(100% - var(--er-gutter) * 2)); margin-inline: auto; }
.er-section { padding-block: var(--er-section); }
.er-section--compact { padding-block: calc(var(--er-section) * 0.6); }
.er-section--white { background: var(--er-white); }
.er-section--accent { background: var(--accento-cedro); }
.er-section--dark { background: var(--testo-grafite); color: var(--fondo-carta); }
.er-section--dark a, .er-section--dark .er-eyebrow { color: var(--accento-cedro); }
.er-section--dark :focus-visible { outline-color: var(--accento-cedro); }
.er-section--dark .er-muted { color: var(--separatori); }
.er-section-heading { max-width: 48rem; margin-bottom: clamp(2rem, 5vw, 4rem); }
.er-grid { display: grid; gap: var(--er-gap); }
.er-grid > *, .er-split > *, .er-method > *, .er-story-row > * { min-width: 0; }
.er-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--er-gap); align-items: start; }
.er-stack > * + * { margin-top: 1.5rem; }
.er-prose { max-width: 68ch; }
.er-prose > :last-child, .er-stack > :last-child { margin-bottom: 0; }
.er-lead { font-size: clamp(1.125rem, 1.7vw, 1.375rem); line-height: 1.6; }
.er-eyebrow { display: block; margin-bottom: 1.25rem; color: var(--primario-melanzana); font-size: 0.8125rem; font-weight: 600; letter-spacing: 0.09em; text-transform: uppercase; }
.er-muted, .er-microcopy { color: var(--er-muted); }
.er-microcopy { max-width: 52ch; margin-top: 0.75rem; font-size: 0.875rem; }
.er-number { color: var(--primario-melanzana); font-size: 0.875rem; font-variant-numeric: tabular-nums; }
.er-table-scroll { max-width: 100%; overflow-x: auto; }

/* 04. Pulsanti e link: target minimo 48px per i controlli principali */
.er-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; margin-top: 2rem; }
.er-button, .wp-block-button__link, input[type="submit"] {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 3rem; padding: 0.8rem 1.4rem; border: 1px solid var(--primario-melanzana);
  border-radius: var(--er-radius); background: var(--primario-melanzana); color: var(--er-white);
  font-family: var(--er-font-body); font-size: 0.9375rem; font-weight: 600;
  line-height: 1.4; text-align: center; text-decoration: none; cursor: pointer;
  transition: background-color var(--er-fast), border-color var(--er-fast);
}
.er-button:hover, .wp-block-button__link:hover, input[type="submit"]:hover { background: var(--melanzana-hover); border-color: var(--melanzana-hover); color: var(--er-white); }
.er-button--outline { background: transparent; color: var(--primario-melanzana); }
.er-button--accent { background: var(--accento-cedro); border-color: var(--accento-cedro); color: var(--testo-grafite); }
.er-button--accent:hover { background: var(--fondo-carta); border-color: var(--fondo-carta); color: var(--testo-grafite); }
.er-section--dark .er-button { background: var(--accento-cedro); border-color: var(--accento-cedro); color: var(--testo-grafite); }
.er-section--dark .er-button:hover { background: var(--er-white); border-color: var(--er-white); }
.er-text-link { display: inline-flex; align-items: center; gap: 0.6rem; min-height: 2.75rem; font-weight: 600; }
.er-text-link .er-arrow { display: inline-block; transition: transform var(--er-fast); }
.er-text-link:hover .er-arrow { transform: translateX(3px); }
button:disabled, input:disabled, .er-button[aria-disabled="true"] { opacity: 0.6; cursor: not-allowed; }

/* 05. Header e menu. Il menu mobile usa details/summary nativi. */
.er-site-header { border-bottom: 1px solid var(--separatori); }
.er-header-inner { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; min-height: 6rem; padding-block: 1rem; }
.er-brand { max-width: 18rem; color: var(--testo-grafite); font-weight: 600; line-height: 1.25; text-decoration: none; }
.er-brand small { display: block; margin-top: 0.35rem; font-weight: 400; color: var(--er-muted); }
.custom-logo { width: auto; max-height: 4rem; }
.er-desktop-nav { display: flex; align-items: center; gap: 1.5rem; }
.er-nav-menu { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1.25rem; margin: 0; padding: 0; list-style: none; }
.er-nav-menu li { position: relative; margin: 0; }
.er-nav-menu a { display: inline-flex; align-items: center; min-height: 2.75rem; color: var(--testo-grafite); font-size: 0.875rem; text-decoration: none; }
.er-nav-menu a:hover, .er-nav-menu .current-menu-item > a, .er-nav-menu .current-menu-ancestor > a { color: var(--primario-melanzana); text-decoration: underline; }
.er-nav-menu .sub-menu { display: grid; gap: 0.25rem; padding-inline-start: 1rem; list-style: none; }
.er-mobile-nav { display: none; }
.er-mobile-nav > summary { min-height: 3rem; padding: 0.7rem 1rem; border: 1px solid var(--er-field-border); border-radius: var(--er-radius); cursor: pointer; }
.er-mobile-panel { padding-top: 1.5rem; }
.er-mobile-panel .er-nav-menu { display: grid; }
.er-mobile-panel .er-button { margin-top: 1rem; }

/* 06. Home: hero e fascia credibilita */
.er-hero { padding-block: clamp(3rem, 7vw, 7rem); }
.er-hero-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 0.85fr); gap: var(--er-gap); align-items: center; }
.er-hero-copy { min-width: 0; }
.er-hero-copy h1 { max-width: 14ch; }
.er-hero-copy .er-lead { max-width: 48ch; margin-top: 1.75rem; }
.er-hero-media { margin-top: 3rem; }
.er-portrait { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: center; }
.er-image-placeholder { display: grid; place-items: center; min-height: 18rem; padding: 2rem; background: var(--separatori); color: var(--testo-grafite); text-align: center; }
.er-trust { padding-block: 1.5rem; border-block: 1px solid var(--separatori); }
.er-trust-list { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 3rem; padding: 0; margin: 0; list-style: none; font-size: 0.875rem; }
.er-trust-list li { margin: 0; }
.er-trust-list img { width: auto; max-width: 8rem; max-height: 3rem; object-fit: contain; }

/* 07. Home: fasce per esigenza, senza griglia di card a tre colonne */
.er-need { display: grid; grid-template-columns: minmax(0, 0.18fr) minmax(0, 1fr) minmax(0, 0.85fr); gap: var(--er-gap); padding-block: clamp(2rem, 5vw, 4rem); border-top: 1px solid var(--separatori); }
.er-need:last-child { border-bottom: 1px solid var(--separatori); }
.er-need > * { min-width: 0; }
.er-need-heading { font-family: var(--er-font-body); font-size: 0.875rem; font-weight: 600; line-height: 1.5; }
.er-need-quote { margin: 1rem 0 0; padding: 0; border: 0; font-family: var(--er-font-display); font-size: clamp(1.875rem, 3vw, 2.75rem); line-height: 1.18; }
.er-need--process { margin-inline-start: 5%; grid-template-columns: minmax(0, 0.18fr) minmax(0, 0.85fr) minmax(0, 1fr); }
.er-need--team { margin-inline-end: 3%; }
.er-need-domains { color: var(--er-muted); font-size: 0.875rem; }
.er-need-paths { display: grid; gap: 1.5rem; }
.er-need-path + .er-need-path { padding-top: 1.5rem; border-top: 1px solid var(--separatori); }
.er-need-path p { margin-bottom: 0.5rem; }

/* 08. Metodo: introduzione sticky, attivata solo su desktop */
.er-method { display: grid; grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); gap: clamp(2rem, 7vw, 7rem); align-items: start; }
.er-method-intro { max-width: 42ch; }
.er-method-steps { padding: 0; margin: 0; list-style: none; border-inline-start: 1px solid var(--separatori); }
.er-method-step { position: relative; margin: 0; padding: 0 0 3rem 2rem; }
.er-method-step:last-child { padding-bottom: 0; }
.er-method-step::before { content: ""; position: absolute; top: 0.5rem; inset-inline-start: -0.3rem; width: 0.55rem; height: 0.55rem; border-radius: 50%; background: var(--primario-melanzana); }
.er-method-step h3 { margin-top: 0.5rem; }
.er-outcome { margin-top: 1.5rem; padding: 1rem 1.25rem; border-inline-start: 2px solid var(--primario-melanzana); background: var(--er-white); }
.er-outcome p { margin: 0; }

/* 09. Casi, formati, Academy e invito conclusivo */
.er-cases { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 0.8fr); gap: var(--er-gap); }
.er-case-list { display: grid; gap: 2rem; }
.er-case { min-width: 0; }
.er-case img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; margin-bottom: 1.5rem; }
.er-case-meta { color: var(--er-muted); font-size: 0.875rem; }
.er-format-list { margin: 0; }
.er-format-row { display: grid; grid-template-columns: minmax(0, 0.7fr) minmax(0, 1.3fr); gap: var(--er-gap); padding-block: 1.75rem; border-top: 1px solid var(--separatori); }
.er-format-row dt { font-weight: 600; }
.er-format-row dd { margin: 0; }
.er-resource-feature { padding: clamp(1.5rem, 4vw, 3rem); background: var(--er-white); border: 1px solid var(--separatori); }
.er-article-list { display: grid; gap: 1.75rem; }
.er-article-preview { padding-bottom: 1.5rem; border-bottom: 1px solid var(--separatori); }
.er-final-cta { max-width: 56rem; }
.er-final-cta h2 { max-width: 22ch; }

/* 10. Chi sono: racconto, ricerca e capitoli internazionali */
.er-story-intro { max-width: 54rem; }
.er-story-row { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); gap: var(--er-gap); align-items: start; }
.er-story-row--reverse { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); }
.er-story-row--reverse .er-story-media { order: 2; }
.er-story-media img { width: 100%; height: auto; }
.er-story-note { max-width: 48rem; margin-block: 2.5rem 0; font-family: var(--er-font-display); font-size: clamp(1.75rem, 3vw, 2.75rem); line-height: 1.25; }
.er-international-episode { padding-block: clamp(2rem, 5vw, 4rem); border-top: 1px solid var(--separatori); }
.er-place { display: block; margin-bottom: 1rem; font-size: 0.875rem; color: var(--primario-melanzana); }
.er-certifications { display: flex; flex-wrap: wrap; gap: 1rem 2rem; padding: 0; margin: 2rem 0; list-style: none; }
.er-certifications li { margin: 0; padding-block: 1rem; border-bottom: 1px solid var(--separatori); }

/* 11. Affiancamento: bisogni, mandato, cinque fasi e prove */
.er-service-hero h1 { max-width: 19ch; }
.er-service-facts { display: flex; flex-wrap: wrap; gap: 0.75rem 1.5rem; margin-top: 2rem; padding: 0; list-style: none; font-size: 0.875rem; }
.er-service-facts li { margin: 0; }
.er-pain-list { padding: 0; margin: 0; list-style: none; }
.er-pain-list li { margin: 0; padding-block: 1.5rem; border-bottom: 1px solid var(--separatori); font-size: clamp(1.125rem, 2vw, 1.5rem); }
.er-scope-list { margin: 0; }
.er-scope-row { display: grid; grid-template-columns: minmax(0, 0.65fr) minmax(0, 1.35fr); gap: var(--er-gap); padding-block: 1.5rem; border-top: 1px solid var(--separatori); }
.er-scope-row dt { font-weight: 600; }
.er-scope-row dd { margin: 0; }
.er-phases { margin: 0; padding: 0; list-style: none; }
.er-phase { display: grid; grid-template-columns: 3rem minmax(0, 1fr) minmax(0, 0.85fr); gap: var(--er-gap); margin: 0; padding-block: 2rem; border-top: 1px solid var(--separatori); }
.er-phase > * { min-width: 0; }
.er-phase .er-outcome { margin-top: 0; }
.er-deliverables { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 0.8fr); gap: var(--er-gap); align-items: start; }
.er-deliverable-list { display: grid; gap: 1.5rem; }
.er-document-preview { padding: 1rem; border: 1px solid var(--separatori); background: var(--er-white); }
.er-document-preview img { width: 100%; height: auto; }
.er-process-example { padding-block: 1.5rem; border-block: 1px solid var(--separatori); }
.er-partner-roles { margin-top: 2rem; }
.er-proof { padding: clamp(1.5rem, 4vw, 3rem); border: 1px solid var(--separatori); background: var(--er-white); }
.er-proof-source { color: var(--er-muted); font-size: 0.875rem; }

/* 12. FAQ native: usare details con summary descrittivi */
.er-faq { border-top: 1px solid var(--separatori); }
.er-faq details { border-bottom: 1px solid var(--separatori); padding-block: 1.25rem; }
.er-faq summary { padding-block: 0.5rem; font-weight: 600; cursor: pointer; }
.er-faq details[open] summary { margin-bottom: 1rem; }
.er-faq details > :last-child { margin-bottom: 0; }

/* 13. Form e contenitori integrazioni; nessun CSS dentro iframe terzi */
.er-form { display: grid; gap: 1.5rem; }
.er-form-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
.er-field { display: grid; gap: 0.5rem; min-width: 0; }
.er-field label, .er-form legend { font-weight: 600; }
.er-form fieldset { min-width: 0; margin: 0; padding: 1.25rem; border: 1px solid var(--er-field-border); }
.er-field input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]), .er-field select, .er-field textarea {
  width: 100%; min-height: 3rem; padding: 0.8rem 1rem;
  background: var(--er-white); color: var(--testo-grafite);
  border: 1px solid var(--er-field-border); border-radius: var(--er-radius);
}
.er-field textarea { min-height: 10rem; resize: vertical; }
input[type="checkbox"], input[type="radio"] { accent-color: var(--primario-melanzana); width: 1.25rem; height: 1.25rem; flex-shrink: 0; }
.er-choice { display: flex; align-items: flex-start; gap: 0.75rem; padding-block: 0.5rem; }
.er-field [aria-invalid="true"] { border-color: var(--er-error) !important; }
.er-field-error { color: var(--er-error); font-size: 0.875rem; }
.er-form-status { padding: 1rem; border: 1px solid currentColor; }
.er-form-status--success { color: var(--er-success); }
.er-form-status--error { color: var(--er-error); }
.er-contact-grid { display: grid; grid-template-columns: minmax(0, 0.7fr) minmax(0, 1.3fr); gap: var(--er-gap); }
.er-integration { width: 100%; min-width: 0; border: 1px solid var(--separatori); background: var(--er-white); }
.er-integration-intro, .er-integration-fallback { padding: 1.25rem; }
.er-calendly-slot { width: 100%; min-height: 46rem; }
.er-landbot-slot { width: 100%; min-height: 38rem; }
.er-calendly-slot iframe { width: 100%; min-height: 46rem; }
.er-landbot-slot iframe { width: 100%; min-height: 38rem; }

/* 14. Footer */
.er-site-footer { padding-block: 3rem 2rem; border-top: 1px solid var(--separatori); }
.er-footer-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) minmax(0, 0.8fr); gap: var(--er-gap); }
.er-footer-nav { padding: 0; margin: 0; list-style: none; }
.er-footer-nav li { margin: 0; }
.er-footer-nav a { display: inline-flex; align-items: center; min-height: 2.75rem; }
.er-footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem 2rem; margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid var(--separatori); font-size: 0.875rem; }
.er-footer-bottom p { margin: 0; }

/* 15. WordPress: contenuti standard, immagini, articoli e paginazione */
.entry-content { max-width: 68ch; margin-inline: auto; }
.entry-content > * + * { margin-top: 1.5rem; }
.entry-content .alignwide { width: min(100%, 68rem); max-width: none; }
.entry-content .alignfull { width: 100%; max-width: none; }
.aligncenter { display: block; margin-inline: auto; }
.alignleft { float: left; margin: 0.5rem 1.5rem 1rem 0; }
.alignright { float: right; margin: 0.5rem 0 1rem 1.5rem; }
.entry-content::after { content: ""; display: table; clear: both; }
.wp-caption { max-width: 100%; }
.wp-caption-text, .gallery-caption { margin-top: 0.5rem; font-size: 0.875rem; color: var(--er-muted); }
.wp-block-image img { height: auto; }
.wp-block-table { overflow-x: auto; }
.wp-block-columns { gap: 2rem; }
.wp-block-cover { color: var(--er-white); }
.wp-block-cover :focus-visible { outline-color: var(--accento-cedro); }
.er-post { padding-block: 2rem; border-bottom: 1px solid var(--separatori); }
.er-post-title { font-size: clamp(1.75rem, 3vw, 2.5rem); }
.er-post-meta { color: var(--er-muted); font-size: 0.875rem; }
.pagination, .posts-navigation { margin-top: 2rem; }
.nav-links { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 2.75rem; min-height: 2.75rem; padding: 0.5rem; border: 1px solid var(--separatori); }
.page-numbers.current { background: var(--primario-melanzana); color: var(--er-white); }
.bypostauthor { border-inline-start: 2px solid var(--primario-melanzana); padding-inline-start: 1rem; }
.sticky .er-post-title { text-decoration: underline; text-decoration-color: var(--primario-melanzana); }

/* 16. Responsive: navigazione compatta e capitoli in ordine lineare */
@media (min-width: 64rem) and (min-height: 48rem) {
  .er-method-intro { position: sticky; top: var(--er-header-offset); }
  .admin-bar { --er-header-offset: 3.5rem; }
}
@media (min-width: 64rem) {
  body { font-size: 1.125rem; }
  .er-nav-menu .sub-menu {
    position: absolute; z-index: 20; top: 100%; left: 0;
    width: max-content; max-width: 20rem; padding: 1rem;
    border: 1px solid var(--separatori); background: var(--fondo-carta);
    visibility: hidden; opacity: 0;
  }
  .er-nav-menu li:hover > .sub-menu, .er-nav-menu li:focus-within > .sub-menu { visibility: visible; opacity: 1; }
  .er-nav-menu .sub-menu .sub-menu { position: static; width: auto; max-width: 100%; visibility: visible; opacity: 1; padding: 0 0 0 1rem; border: 0; }
}
@media (max-width: 63.99rem) {
  .er-header-inner { flex-wrap: wrap; min-height: 5rem; }
  .er-desktop-nav { display: none; }
  .er-mobile-nav { display: block; width: 100%; }
  .er-mobile-nav > summary { width: fit-content; }
  .er-hero-grid { grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); }
  .er-hero-media { margin-top: 0; }
  .er-need { grid-template-columns: 2rem minmax(0, 1fr); gap: 1rem 1.5rem; }
  .er-need-body { grid-column: 2; }
  .er-need--process, .er-need--team { margin-inline: 0; }
  .er-method, .er-contact-grid { grid-template-columns: 1fr; }
  .er-method-intro { position: static; max-width: 65ch; }
  .er-phase { grid-template-columns: 2rem minmax(0, 1fr); gap: 1rem 1.5rem; }
  .er-phase > .er-outcome { grid-column: 2; }
  .er-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 47.99rem) {
  .er-hero-grid, .er-split, .er-cases, .er-story-row, .er-story-row--reverse,
  .er-deliverables, .er-footer-grid, .er-form-row, .er-format-row, .er-scope-row { grid-template-columns: 1fr; }
  .er-hero-copy h1 { max-width: 16ch; }
  .er-hero-media { max-width: 30rem; width: 100%; margin-top: 1rem; }
  .er-story-row--reverse .er-story-media { order: initial; }
  .er-need { grid-template-columns: 1fr; }
  .er-need-body { grid-column: auto; }
  .er-need-quote { margin-top: 0.75rem; }
  .er-method-step { padding-inline-start: 1.5rem; }
  .er-actions { align-items: flex-start; flex-direction: column; }
  .er-format-row, .er-scope-row { gap: 0.75rem; }
  .er-trust-list { align-items: flex-start; flex-direction: column; }
  .er-phase { column-gap: 1rem; }
  .er-footer-bottom { flex-direction: column; }
  .alignleft, .alignright { float: none; margin: 1.5rem 0; }
  th, td { padding: 0.75rem; }
}

/* 17. Movimento progressivo: il sito non dipende dalle animazioni */
@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
  @keyframes er-enter {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
  }
  /* Classe opt-in solo per elementi immediatamente visibili nell'hero. */
  .er-enter { animation: er-enter 420ms ease-out both; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
@media (forced-colors: active) {
  .er-button, .wp-block-button__link, .er-outcome, .er-proof { border: 1px solid ButtonText; }
  :focus-visible { outline: 3px solid Highlight; }
}

/* 18. Stampa */
@media print {
  body { background: #fff; color: #000; font-size: 11pt; }
  .er-site-header, .er-site-footer, .er-actions, .er-integration { display: none; }
  .er-container { width: 100%; }
  .er-section, .er-hero { padding-block: 1.5rem; }
  .er-method-intro { position: static; }
  .er-section--dark, .er-section--accent { background: #fff; color: #000; }
  .er-hero-grid, .er-method, .er-story-row, .er-split { display: block; }
  h1 { font-size: 30pt; }
  h2 { font-size: 23pt; }
  h3 { font-size: 15pt; }
  h1, h2, h3 { break-after: avoid; }
  img, figure, .er-outcome { break-inside: avoid; }
  a { color: #000; }
}


/* 19. Header e footer: identità premium e CTA in evidenza */
.er-site-header { position: relative; z-index: 30; background: var(--fondo-carta); }
.er-brand { display: inline-block; text-decoration: none; }
.er-brand-name { display: block; color: var(--testo-grafite); font-family: var(--er-font-display); font-size: 2rem; line-height: 1.05; }
.er-brand small { color: var(--er-muted); letter-spacing: .025em; }
.er-header-inner { min-height: 5.5rem; }
.er-desktop-nav { gap: clamp(.75rem, 1.6vw, 1.5rem); }
.er-nav-menu a { white-space: nowrap; }
.er-desktop-nav > .er-button { white-space: nowrap; }
.er-mobile-nav { position: relative; width: auto; }
.er-mobile-nav > summary { display: flex; align-items: center; justify-content: center; gap: .75rem; border: 1px solid var(--separatori); background: transparent; color: var(--testo-grafite); list-style: none; }
.er-mobile-nav > summary::-webkit-details-marker { display: none; }
.er-menu-icon { display: grid; gap: 4px; width: 1.1rem; }
.er-menu-icon i { display: block; height: 1px; background: currentColor; }
.er-mobile-panel { position: absolute; z-index: 40; top: calc(100% + .75rem); right: 0; width: min(22rem, calc(100vw - 2rem)); padding: 1.25rem; border: 1px solid var(--separatori); background: var(--fondo-carta); box-shadow: 0 1rem 2.5rem rgb(36 33 43 / .12); }
.er-mobile-panel .er-nav-menu { display: grid; gap: .25rem; }
.er-mobile-panel .er-nav-menu a { min-height: 3rem; }
.er-mobile-panel > .er-button { width: 100%; margin-top: 1rem; }
.er-site-footer { background: var(--primario-melanzana); color: var(--er-white); border: 0; padding-block: clamp(3rem, 6vw, 5rem) 1.5rem; }
.er-site-footer a { color: var(--er-white); text-decoration-color: rgb(255 255 255 / .45); }
.er-site-footer a:hover { color: var(--accento-cedro); }
.er-footer-grid { grid-template-columns: 1.25fr 1fr .75fr .75fr; gap: clamp(1.5rem, 3vw, 3rem); }
.er-footer-grid h2 { margin-bottom: 1rem; color: var(--er-white); font-family: var(--er-font-body); font-size: .8rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.er-footer-brand { max-width: 23rem; }
.er-footer-name { margin-bottom: .75rem; color: var(--er-white); font-family: var(--er-font-display); font-size: 2rem; line-height: 1.1; }
.er-footer-grid p, .er-footer-contact a { font-size: .94rem; }
.er-footer-contact > a { display: block; margin-bottom: .75rem; }
.er-footer-cta { margin-top: 1rem; font-weight: 700; }
.er-footer-nav, .er-footer-social ul { margin: 0; padding: 0; list-style: none; }
.er-footer-nav li, .er-footer-social li { margin: 0; }
.er-footer-nav a, .er-footer-social a { display: inline-flex; align-items: center; justify-content: space-between; gap: .5rem; min-height: 2.5rem; }
.er-footer-bottom { margin-top: clamp(2rem, 4vw, 3.5rem); padding-top: 1.25rem; border-top: 1px solid rgb(255 255 255 / .32); color: rgb(255 255 255 / .82); }
.er-footer-bottom p { margin: 0; font-size: .8rem; }
.er-footer-bottom a { color: inherit; }
@media (max-width: 63.99rem) { .er-header-inner { flex-wrap: nowrap; } .er-mobile-nav { width: auto; margin-left: auto; } .er-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 47.99rem) { .er-mobile-nav { width: auto; margin-left: auto; } .er-header-inner { flex-wrap: nowrap; } .er-brand-name { font-size: 1.65rem; } .er-brand small { max-width: 14rem; font-size: .75rem; } .er-footer-grid { grid-template-columns: 1fr; } }


/* Artwork temporanea di preview: da sostituire con il ritratto editoriale approvato. */
.er-preview-art { position:relative; display:grid; place-items:center; width:100%; aspect-ratio:4/5; overflow:hidden; background:#ECE5DF; color:var(--testo-grafite); }
.er-preview-art::before { content:""; position:absolute; width:76%; aspect-ratio:1; top:12%; left:21%; border-radius:50%; background:var(--accento-cedro); }
.er-preview-art::after { content:""; position:absolute; width:62%; height:72%; bottom:-5%; left:-5%; background:var(--primario-melanzana); clip-path:polygon(0 0,100% 18%,64% 100%,0 83%); }
.er-preview-art .er-monogram { position:relative; z-index:1; margin-top:-.5rem; color:var(--testo-grafite); font-family:var(--er-font-display); font-size:clamp(6rem,15vw,13rem); line-height:.8; letter-spacing:-.07em; }
.er-preview-art .er-art-caption { position:absolute; z-index:2; right:1rem; bottom:1.25rem; color:#fff; font-size:.75rem; letter-spacing:.12em; text-transform:uppercase; writing-mode:vertical-rl; }
.er-site-header { background:var(--fondo-carta); }
.er-preview-note { margin:0; padding:.55rem 1rem; background:var(--accento-cedro); text-align:center; font-size:.78rem; }
.er-button--outline { background:transparent; color:var(--primario-melanzana); }
.er-footer-preview { margin-top:0; }
@media(max-width:63.99rem){.er-preview-art{max-width:30rem;margin-inline:auto}}

.er-preview-note{background:#F6EEEB;color:#990C0C}.er-preview-note a{font-weight:700}.er-desktop-nav{gap:1rem}.er-nav-menu{gap:1rem}.er-footer-social li{margin-bottom:.5rem}.er-preview-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem}.er-preview-card{border-top:1px solid var(--separatori);padding:2rem 0}.er-contact-choice{padding:2rem;background:white;border:1px solid var(--separatori)}.er-contact-choice select{width:100%;padding:.8rem;margin:.5rem 0 1.25rem;border:1px solid #827a8d;background:#fff;color:#24212b}.er-contact-choice label{font-weight:600}.er-contact-choice .er-result{margin-top:1.5rem;padding:1.5rem;background:var(--accento-cedro)}@media(max-width:767px){.er-preview-cards{grid-template-columns:1fr}}

/* Red editorial direction — unified type and accessible full-screen navigation */
body,h1,h2,h3,h4,h5,h6,button,input,select,textarea,.er-brand-name,.er-footer-name,.er-need-quote,.er-monogram{font-family:var(--er-font-body)!important}
h1,h2,h3{font-weight:700;letter-spacing:-.045em}h1{font-size:clamp(2.5rem,5.3vw,4.8rem);line-height:1.08}h2{font-size:clamp(2rem,3.8vw,3.4rem);line-height:1.14}h3{letter-spacing:-.025em}h1 em{color:var(--primario-melanzana);font-style:normal}.er-hero-copy h1{max-width:16ch}.er-brand-name{font-size:1.4rem;font-weight:800;letter-spacing:-.055em}.red-dot{color:#990c0c}.er-brand small{font-size:.72rem}.er-header-inner{min-height:6rem;gap:1.5rem}.er-quick-nav{display:flex;align-items:center;gap:1.6rem;margin-left:auto}.er-quick-nav>a{font-size:.85rem;text-decoration:none;font-weight:600}.er-quick-nav>a:not(.er-button):hover{color:#990c0c}.er-menu-toggle{display:flex;align-items:center;gap:.8rem;border:0;background:transparent;min-height:48px;padding:.5rem;color:#202020}.er-menu-toggle span{font-size:.75rem}.er-menu-toggle i{display:block;width:27px;height:13px;border-block:2px solid currentColor}.er-menu-dialog{border:0;margin:0;width:100%;max-width:none;height:100dvh;max-height:none;padding:0;background:#FAF9F7;color:#202020;overflow-y:auto}.er-menu-dialog::backdrop{background:#20202080}.er-menu-top{display:flex;align-items:center;justify-content:space-between;min-height:6rem;border-bottom:1px solid #E3DEDB}.er-menu-close{border:1px solid #E3DEDB;background:transparent;font-size:1.5rem;width:48px;height:48px;border-radius:50%}.er-menu-close:hover{background:#990c0c;color:white}.er-menu-layout{display:grid;grid-template-columns:.75fr 1.25fr;gap:7%;padding:3rem 0}.er-menu-main>a{display:flex;align-items:center;justify-content:space-between;padding:1rem 0;border-bottom:1px solid #E3DEDB;text-decoration:none;font-size:clamp(1.4rem,3vw,2.5rem);font-weight:600;letter-spacing:-.045em}.er-menu-main>a span{font-size:.75rem;color:#990c0c;letter-spacing:0}.er-menu-main a:hover,.er-menu-main a[aria-current=page]{color:#990c0c}.er-menu-service-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 1.7rem;margin-bottom:2rem}.er-menu-service-grid>a{position:relative;display:block;min-height:125px;border-top:1px solid #E3DEDB;padding:1.25rem 1.2rem 1.25rem 0;text-decoration:none}.er-menu-service-grid span{display:block;font-size:1rem;font-weight:700}.er-menu-service-grid small{display:block;font-size:.8rem;line-height:1.5;margin-top:.4rem;color:#606060}.er-menu-service-grid b{position:absolute;right:0;top:1.3rem;color:#990c0c}.er-menu-service-grid>a:hover{color:#990c0c}.er-mobile-services{display:none}.er-menu-services .er-eyebrow{margin-bottom:2rem}.er-preview-note{font-size:.68rem;padding:.35rem}.er-preview-art:before{background:#D8C6BC}.er-preview-art:after{background:#990c0c}.er-preview-art .er-monogram{color:#fff;font-weight:700;font-size:clamp(6rem,13vw,12rem);letter-spacing:-.1em}.er-need-quote{font-size:clamp(1.5rem,2.5vw,2.4rem);line-height:1.28;font-weight:600}.er-section--soft{background:#F1F0EE}.er-service-intro{display:grid;grid-template-columns:1.25fr .75fr;gap:4rem;align-items:center;margin-top:2.5rem}.er-service-intro h1{max-width:19ch}.er-breadcrumb{font-size:.8rem;text-decoration:none;color:#606060}.er-check-list{padding:0;list-style:none;margin:0}.er-check-list li{position:relative;padding:.4rem 0 1.3rem 2rem;font-size:1.1rem}.er-check-list li:before{content:'✓';position:absolute;left:0;color:#990c0c;font-weight:800}.er-work-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:2.5rem;margin-top:3rem}.er-work-steps article{border-top:1px solid #C8BDB8;padding-top:1.5rem}.er-step-index{display:block;margin-bottom:1.5rem;font-size:.8rem;font-weight:700;color:#990c0c}.er-work-steps h3{font-size:1.5rem}.er-work-steps p{font-size:1rem;color:#606060}.er-faq-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:5rem}.er-faq-cards details{border:1px solid #E3DEDB;border-radius:10px;background:#F3F2F0;margin-bottom:1rem;overflow:hidden}.er-faq-cards details[open]{background:#fff;border-color:#990c0c}.er-faq-cards summary{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.5rem;cursor:pointer;list-style:none;font-size:1.1rem;font-weight:600;line-height:1.5}.er-faq-cards summary::-webkit-details-marker{display:none}.er-faq-cards summary span{flex:none;width:12px;height:12px;border-right:2px solid #990c0c;border-bottom:2px solid #990c0c;transform:rotate(45deg);margin-top:-6px}.er-faq-cards details[open] summary span{transform:rotate(225deg);margin-top:6px}.er-faq-cards details>div{padding:0 1.5rem 1.5rem;color:#606060;font-size:1rem}.er-faq-cards p{margin:0}.er-services-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-top:3rem}.er-service-card{display:block;padding:2rem;background:#F2EFEB;border:1px solid transparent;text-decoration:none;color:#202020;transition:border-color .2s,background .2s}.er-service-card:hover{border-color:#990c0c;background:white}.er-service-card h2{font-size:1.9rem}.er-service-card p{color:#606060}.er-final-red{background:#990c0c;color:white}.er-final-red .er-button{background:white;color:#990c0c;border-color:white}.er-site-footer{background:#730B0B}.er-site-footer a:hover{color:white;text-decoration-thickness:2px}.er-footer-name{font-size:1.6rem;font-weight:700}.er-section--dark .er-button{background:#fff;color:#990c0c}.er-section--dark .er-eyebrow{color:#F4E5E2}.er-section--dark .er-microcopy{color:#e3dedb}.er-outcome{background:#F4E5E2}.er-contact-choice .er-result{background:#F4E5E2}
@media(max-width:1000px){.er-quick-nav{display:none}.er-menu-toggle{margin-left:auto}.er-service-intro,.er-faq-layout{gap:2.5rem}.er-work-steps{gap:1.5rem}}
@media(max-width:700px){.er-header-inner,.er-menu-top{min-height:5rem}.er-brand-name{font-size:1.15rem}.er-menu-toggle span{display:none}.er-menu-layout{display:block;padding:1rem 0 2rem}.er-menu-main>a{font-size:1.15rem;padding:1rem 0;letter-spacing:.02em}.er-menu-services{margin-top:2rem}.er-menu-services>.er-eyebrow,.er-menu-service-grid{display:none}.er-mobile-services{display:grid;margin-left:1rem}.er-mobile-services a{padding:.85rem 1rem;border-bottom:1px solid #E3DEDB;text-decoration:none;color:#606060;font-size:.88rem;display:flex;justify-content:space-between}.er-mobile-services small{display:none}.er-mobile-services b{font-weight:400;color:#990c0c}.er-menu-services .er-button{width:100%}.er-service-intro,.er-faq-layout,.er-work-steps,.er-services-grid{grid-template-columns:1fr}.er-service-intro{margin-top:1.5rem}.er-services-grid{gap:1rem}.er-hero-copy h1{font-size:clamp(2.3rem,9vw,3.6rem);max-width:16ch}.er-faq-cards summary{font-size:1rem;padding:1.25rem}.er-hero{padding-block:3rem}.er-preview-art{min-height:0;aspect-ratio:4/4.4}.er-service-card{padding:1.5rem}}

/* 20. Identità fotografica, logo e selettore lingua */
.er-header-inner{display:flex;flex-wrap:nowrap;align-items:center;gap:clamp(.5rem,1.2vw,1.25rem)}
.er-brand{display:inline-flex;align-items:center;gap:.75rem;min-width:0;max-width:none;flex:0 0 auto}
.er-brand-mark{width:2.75rem;height:2.75rem;flex:none;border-radius:.68rem}
.er-brand-copy{display:block;min-width:0}
.er-brand-name{font-size:clamp(1.15rem,1.7vw,1.55rem);white-space:nowrap}
.er-brand small{font-size:.7rem;white-space:nowrap}
.er-quick-nav{gap:clamp(.65rem,1.35vw,1.35rem)}
.er-quick-nav>a{white-space:nowrap}
.er-lang-switch{display:inline-flex;align-items:center;justify-content:center;min-width:2.75rem;min-height:2.75rem;padding:.35rem .55rem;border:1px solid var(--separatori);border-radius:999px;background:transparent;color:var(--testo-grafite);font-size:.75rem;font-weight:800;letter-spacing:.06em;text-decoration:none;transition:background-color var(--er-fast),color var(--er-fast),border-color var(--er-fast)}
.er-lang-switch:hover{background:var(--primario-melanzana);border-color:var(--primario-melanzana);color:#fff}
.er-lang-switch--menu{margin-top:1rem;color:var(--testo-grafite);text-decoration:none}
.er-menu-top .er-brand-name{text-decoration:none}
.er-brand .red-dot{color:var(--primario-melanzana)}
.er-hero-media{margin-top:0;overflow:hidden;border-radius:var(--er-radius)}
.er-portrait,.er-story-portrait,.er-service-portrait{width:100%;height:100%;object-fit:cover;object-position:center 30%;}
.er-portrait{aspect-ratio:4/5;max-height:46rem}
.er-story-portrait{aspect-ratio:4/5}
.er-service-portrait{aspect-ratio:4/4.6;max-height:36rem}
.er-story-architecture{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:var(--er-radius)}
.er-asia-feature{overflow:hidden}
.er-footer-logo{width:min(18rem,100%);height:auto;margin-top:1rem;opacity:.92}
.er-booking-link{margin-top:1rem}
.er-faq-cards details[open]{box-shadow:0 10px 30px rgb(32 32 32 / .06)}
@media(max-width:1000px){
 .er-header-inner{min-height:5.25rem}
 .er-quick-nav{display:none}
 .er-menu-toggle{margin-left:.25rem}
 .er-brand{margin-right:auto}
}
@media(max-width:700px){
 .er-header-inner{min-height:4.75rem;gap:.45rem}
 .er-brand{gap:.55rem}
 .er-brand-mark{width:2.35rem;height:2.35rem;border-radius:.58rem}
 .er-brand-name{font-size:1.08rem;letter-spacing:-.06em}
 .er-brand small{max-width:13rem;font-size:.63rem;overflow:hidden;text-overflow:ellipsis}
 .er-lang-switch{min-width:2.5rem;min-height:2.5rem}
 .er-menu-toggle{min-width:2.75rem;min-height:2.75rem;justify-content:center;padding:.4rem}
 .er-menu-toggle span{display:none}
 .er-menu-layout{display:block;padding:1rem 0 2rem}
 .er-menu-main>a{font-size:1.18rem;padding:.9rem 0}
 .er-mobile-services{display:grid;margin:.25rem 0 1rem 1rem}
 .er-mobile-services a{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.8rem .75rem;border-bottom:1px solid var(--separatori);color:var(--er-muted);font-size:.9rem;text-decoration:none}
 .er-mobile-services small{display:none}
 .er-menu-services{margin-top:1.4rem}
 .er-menu-services>.er-eyebrow,.er-menu-service-grid{display:none}
 .er-menu-services .er-button{width:100%}
 .er-hero-grid,.er-story-row,.er-story-row--reverse,.er-split,.er-service-intro,.er-faq-layout,.er-work-steps,.er-services-grid,.er-contact-grid{grid-template-columns:minmax(0,1fr)}
 .er-hero{padding-block:2.6rem}
 .er-hero-copy h1{font-size:clamp(2.1rem,9vw,3.2rem);max-width:16ch}
 .er-hero-media{width:100%;max-width:32rem;margin:1.5rem auto 0}
 .er-portrait{aspect-ratio:4/4.5;max-height:none;object-position:center 25%}
 .er-story-row--reverse .er-story-media{order:initial}
 .er-story-media{width:100%;max-width:34rem;margin-inline:auto}
 .er-story-portrait{max-height:37rem}
 .er-service-intro{gap:1.2rem;margin-top:1.25rem}
 .er-faq-layout{gap:1.5rem}
 .er-faq-cards summary{gap:1rem;padding:1.05rem;font-size:.98rem}
 .er-faq-cards details>div{padding:0 1.05rem 1.05rem}
 .er-work-steps{gap:1rem}
 .er-services-grid{gap:.85rem}
 .er-service-card{padding:1.25rem}
 .er-service-facts{display:grid;gap:.5rem}
 .er-footer-grid{grid-template-columns:1fr;gap:1.6rem}
 .er-footer-bottom{align-items:flex-start;flex-direction:column;gap:.6rem}
 .er-actions{flex-direction:column;align-items:stretch}
 .er-actions .er-button,.er-actions .er-text-link{width:100%;justify-content:center}
 .er-contact-choice{padding:1.25rem}
 .er-booking-link{width:100%;}
}
@media(max-width:380px){
 .er-brand-name{font-size:1rem}
 .er-brand small{max-width:10rem}
 .er-lang-switch{min-width:2.25rem;padding-inline:.4rem}
}

/* Mobile refinement: keep the editorial hierarchy readable on compact screens. */
@media (max-width: 767px) {
  :root {
    --er-gutter: 1.125rem;
    --er-section: 3.25rem;
    --er-gap: 1.25rem;
  }

  html { scroll-padding-top: 1rem; }
  body { min-width: 320px; font-size: 1rem; line-height: 1.6; overflow-x: clip; }
  .er-container { width: calc(100% - var(--er-gutter) * 2); }
  .er-section { padding-block: var(--er-section); }

  .er-header-inner {
    min-height: 4.5rem;
    gap: .4rem;
    padding-block: .55rem;
  }
  .er-brand { gap: .5rem; }
  .er-brand-mark { width: 2.25rem; height: 2.25rem; }
  .er-brand-name { font-size: 1rem; letter-spacing: -.045em; }
  .er-brand small { display: none; }
  .er-lang-switch { min-width: 2.5rem; min-height: 2.5rem; }
  .er-menu-toggle { min-width: 2.75rem; min-height: 2.75rem; margin-left: 0; padding: .35rem; }

  .er-hero { padding-block: 2.25rem 2.75rem; }
  .er-hero-grid { grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
  .er-hero-copy h1 { max-width: 13ch; font-size: clamp(2.1rem, 9vw, 3rem); line-height: 1.03; }
  .er-hero-copy .er-lead { margin-top: 1.15rem; font-size: 1.05rem; line-height: 1.55; }
  .er-actions { display: grid; grid-template-columns: minmax(0, 1fr); align-items: stretch; gap: .65rem; margin-top: 1.25rem; }
  .er-actions .er-button { width: 100%; }
  .er-hero-media { width: 100%; max-width: 34rem; margin: .25rem auto 0; }
  .er-portrait { aspect-ratio: 4 / 4.45; object-position: center 25%; }
  .er-trust { padding-block: 1.1rem; }
  .er-trust-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem 1rem; }

  .er-need,
  .er-need--process { grid-template-columns: minmax(0, 1fr); gap: .7rem; margin-inline: 0; padding-block: 1.65rem; }
  .er-need-heading { display: flex; align-items: baseline; gap: .7rem; font-size: .8rem; }
  .er-need-heading br { display: none; }
  .er-need-quote { margin: 0; font-size: clamp(1.55rem, 7vw, 2rem); line-height: 1.2; }
  .er-need-body, .er-need-paths { grid-column: auto; }
  .er-need-paths { gap: .9rem; }
  .er-need-path + .er-need-path { padding-top: .9rem; }
  .er-need-path p { margin-bottom: .35rem; }
  .er-method { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
  .er-method-intro { position: static; max-width: 42rem; }
  .er-method-steps { margin-inline-start: .25rem; }
  .er-method-step { padding: 0 0 2rem 1.15rem; }
  .er-method-step h3 { margin-bottom: .5rem; font-size: 1.25rem; }
  .er-method-step p { margin-bottom: .5rem; }

  .er-split,
  .er-story-row,
  .er-story-row--reverse,
  .er-service-intro,
  .er-faq-layout,
  .er-work-steps,
  .er-services-grid,
  .er-contact-grid,
  .er-form-row,
  .er-format-row,
  .er-scope-row,
  .er-deliverables,
  .er-cases { grid-template-columns: minmax(0, 1fr); }
  .er-story-row, .er-story-row--reverse { gap: 1.5rem; }
  .er-story-row--reverse .er-story-media { order: initial; }
  .er-story-media { width: 100%; max-width: 34rem; margin-inline: auto; }
  .er-story-portrait, .er-service-portrait { max-height: 32rem; }
  .er-story-architecture { aspect-ratio: 4 / 3; }
  .er-service-intro { gap: 1rem; margin-top: 1.25rem; }
  .er-work-steps { gap: 1.25rem; margin-top: 1.75rem; }
  .er-work-steps article { padding-top: 1rem; }
  .er-services-grid { gap: .75rem; margin-top: 1.5rem; }
  .er-service-card { padding: 1.25rem; }
  .er-format-row, .er-scope-row { gap: .4rem; padding-block: 1rem; }
  .er-faq-layout { gap: 1.25rem; }
  .er-faq-cards summary { gap: .85rem; padding: 1rem; font-size: .98rem; }
  .er-faq-cards details > div { padding: 0 1rem 1rem; }

  .er-contact-choice { min-width: 0; padding: 1.1rem; }
  .er-contact-choice select,
  .er-field input,
  .er-field select,
  .er-field textarea { width: 100%; max-width: 100%; min-height: 3rem; }
  .er-form fieldset { padding: .9rem; }
  .er-form .er-button, .er-contact-choice .er-button { width: 100%; }

  .er-footer-grid { grid-template-columns: minmax(0, 1fr); gap: 1.15rem; }
  .er-footer-brand { max-width: 35rem; }
  .er-footer-name { font-size: 1.55rem; }
  .er-footer-bottom { align-items: flex-start; flex-direction: column; gap: .6rem; margin-top: 1.5rem; padding-top: 1rem; }
  .er-footer-bottom p { max-width: 100%; font-size: .75rem; overflow-wrap: anywhere; }

  .er-menu-dialog { width: 100%; max-height: 100dvh; overflow-y: auto; }
  .er-menu-top { position: sticky; top: 0; z-index: 2; min-height: 4.5rem; background: var(--fondo-carta); }
  .er-menu-layout { display: block; padding: .75rem 0 1.5rem; }
  .er-menu-main > a { padding: .75rem 0; font-size: 1.05rem; letter-spacing: -.015em; }
  .er-mobile-services { display: grid; margin: .25rem 0 .5rem .75rem; }
  .er-mobile-services a { min-height: 2.8rem; padding: .65rem .5rem; }
  .er-menu-services { margin-top: 1rem; }
  .er-menu-services > .er-eyebrow, .er-menu-service-grid { display: none; }
  .er-menu-services .er-button { width: 100%; }
}

@media (max-width: 360px) {
  :root { --er-gutter: 1rem; }
  .er-brand-name { font-size: .93rem; }
  .er-brand-mark { width: 2rem; height: 2rem; }
  .er-header-inner { gap: .3rem; }
  .er-hero-copy h1 { font-size: 2.05rem; }
  .er-lang-switch { min-width: 2.3rem; min-height: 2.3rem; }
  .er-menu-toggle { min-width: 2.5rem; }
}
