/* Approved visual direction: SPECIFICHE_DESIGN_PER_CODEX.md.
   Text remains HTML. All components grow with their approved content. */
.lva-page {
  --plum: #4e2445;
  --plum-secondary: #672d5b;
  --gold: #c99a55;
  --gold-text: #8b6127;
  --cream: #fdf9f3;
  --cream-warm: #faf3ec;
  --paper: #fffdf9;
  --lilac: #f2e8f0;
  --line: #e7d9cf;
  --ink: #513f4e;
  --muted: #786772;
  margin: 0;
  background: var(--cream);
  color: var(--ink);
  font: 400 1.0625rem/1.55 'Cabin', system-ui, -apple-system, 'Segoe UI', sans-serif;
  -webkit-text-size-adjust: 100%;
}
.lva-page *, .lva-page *::before, .lva-page *::after { box-sizing: border-box; }
.lva-page [hidden] { display: none !important; }
.lva-page :where(section, article, div, figure) { min-width: 0; }
.lva-page :where(h1,h2,h3,p,figure) { margin: 0; overflow-wrap: break-word; }
.lva-page :where(h1,h2,h3) {
  color: var(--plum);
  font-family: 'EB Garamond', Georgia, 'Times New Roman', serif;
  font-weight: 400;
  line-height: 1.13;
  text-wrap: balance;
}
.lva-page strong { font-weight: 600; }
.lva-page h1 { font-size: clamp(2.5rem, 10.75vw, 2.75rem); margin-bottom: 22px; letter-spacing: -.025em; }
.lva-page h2 { font-size: 2rem; margin-bottom: 24px; letter-spacing: -.015em; }
.lva-page h3 { font-size: 1.6rem; margin: 32px 0 18px; }
.lva-page p + p { margin-top: 18px; }
.lva-page a { color: var(--plum); text-underline-offset: 5px; }
.lva-page :focus-visible { outline: 3px solid var(--gold-text); outline-offset: 5px; }
.lva-shell { width: 100%; }
.lva-header {
  width: min(1140px, calc(100% - 48px));
  margin: auto;
  padding: 24px 0 26px;
  border-bottom: 1px solid var(--gold);
}
.lva-brand { display: inline-flex; align-items: center; gap: 12px; max-width: 100%; text-decoration: none; }
.lva-lockup-symbol { display: block; flex: 0 0 42px; }
.lva-lockup-type { display: block; width: 235px; max-width: calc(100% - 54px); }
.lva-lockup-type img { width: 100%; height: auto; }
.lva-brand-tagline { display: block; margin-top: 4px; color: var(--muted); font: 400 .8125rem/1.4 'Cabin', sans-serif; }
.lva-section { padding: 64px 0; scroll-margin-top: 24px; }
.lva-section:nth-child(even) { background: var(--cream-warm); }
.lva-prose { width: min(760px, calc(100% - 48px)); margin: auto; }
.lva-eyebrow { color: var(--gold-text); font: 600 .75rem/1.5 'Cabin', sans-serif; text-transform: uppercase; letter-spacing: .035em; margin-bottom: 20px; }
.lva-copy > .lva-eyebrow + h1, .lva-copy > .lva-eyebrow + h2 { margin-top: 0; }
.lva-hero { padding-top: 44px; padding-bottom: 68px; position: relative; }
.lva-hero::after { content: ''; position: absolute; inset: auto 0 0; height: 32px; background: url('assets/section-wave.svg') center bottom / 100% 100% no-repeat; pointer-events: none; }
.lva-hero .lva-prose { width: min(1140px, calc(100% - 48px)); }
.lva-hero-art { display: none; }
.lva-subtitle { color: var(--plum); font: italic 400 1.4375rem/1.25 'EB Garamond', Georgia, serif; margin-bottom: 28px; }
.lva-cta { margin: 28px 0 12px; }
.lva-button {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: 14px;
  width: 100%;
  max-width: 100%;
  min-height: 52px;
  padding: 14px 22px;
  border: 1px solid var(--plum);
  border-radius: 999px;
  background: var(--plum);
  color: var(--cream) !important;
  font: 600 1rem/1.45 'Cabin', sans-serif;
  text-align: center;
  text-decoration: none;
}
.lva-button:hover { background: var(--plum-secondary); border-color: var(--plum-secondary); }
.lva-button > span[aria-hidden] { display: none; }
.lva-cta + p:has(> em:only-child) { color: var(--muted); font: 400 .875rem/1.5 'Cabin', sans-serif; }
.lva-cta + p:has(> em:only-child) em { font-style: normal; }
.lva-reflection {
  padding: 24px;
  margin-top: 28px !important;
  background: var(--lilac);
  border: 1px solid var(--line);
  border-radius: 18px;
  color: var(--plum);
  font: italic 400 1.5rem/1.3 'EB Garamond', Georgia, serif;
}
.lva-reflection strong { font-weight: 400; }
.lva-notice { padding: 22px 24px; border-left: 2px solid var(--gold); background: var(--paper); border-radius: 0 16px 16px 0; }
#prospettive .lva-prose, #modalita .lva-prose { width: min(1140px, calc(100% - 48px)); }
.lva-perspectives { display: grid; grid-template-columns: 1fr; gap: 20px; margin: 30px 0 34px; }
.lva-perspectives article { padding: 26px 24px; border: 1px solid var(--line); border-radius: 18px; background: var(--paper); }
.lva-perspectives h3 { margin: 0 0 18px; font-size: 1.55rem; }
.lva-perspectives h3 strong { font-weight: 400; }
#prospettive .lva-copy > p { max-width: 72ch; }
#pdf .lva-copy > p { max-width: 72ch; }
.lva-pdf-gallery { margin-top: 32px; padding: 24px; border: 1px solid var(--gold); border-radius: 20px; background: var(--lilac); }
.lva-pdf-gallery h3 { margin-top: 0; }
.lva-pdf-gallery img { max-width: 600px; margin: 22px auto 0; border-radius: 8px; }
.lva-call-heading { margin-bottom: 28px; padding: 26px; border: 1px solid var(--gold); border-radius: 20px; background: var(--lilac); }
.lva-call-heading h2 { margin-bottom: 0; }
.lva-offers { display: grid; grid-template-columns: 1fr; gap: 20px; margin: 30px 0; }
.lva-offer { padding: 28px 24px; border: 1px solid var(--line); border-radius: 20px; background: var(--paper); }
.lva-offer:last-child { border-color: var(--gold); background: var(--cream-warm); }
.lva-offer h3 { margin: 0 0 22px; font-size: 1.5rem; }
.lva-offer h3 strong { font-weight: 400; }
.lva-price { margin-bottom: 24px; color: var(--plum); }
.lva-price-caption { display: block; margin-bottom: 4px; font-size: .875rem; color: var(--muted); }
.lva-price-value { display: block; font: 400 3.5rem/1.05 'EB Garamond', Georgia, serif; }
.lva-modalities .lva-copy > p { max-width: 72ch; }
.lva-offers + p { color: var(--plum); font: italic 400 1.4rem/1.4 'EB Garamond', Georgia, serif; }
.lva-official-image { display: block; width: 100%; height: auto; }
.lva-portrait { max-width: 420px; margin: 32px auto 0; }
.lva-portrait img { border-radius: 20px; }
.lva-faq { border-bottom: 1px solid var(--line); }
.lva-faq details { border-top: 1px solid var(--line); }
.lva-faq summary { position: relative; min-height: 60px; padding: 22px 36px 22px 0; list-style: none; color: var(--plum); font-weight: 600; cursor: pointer; }
.lva-faq summary::-webkit-details-marker { display: none; }
.lva-faq summary::after { content: '+'; position: absolute; right: 4px; top: 20px; color: var(--gold-text); font-size: 1.4rem; font-weight: 400; }
.lva-faq details[open] summary::after { content: '−'; }
.lva-answer { padding: 0 10px 26px 0; }
.lva-closing { background: var(--lilac) !important; text-align: center; }
.lva-closing-signature { width: min(330px, 100%); margin: 34px auto 0; }
.lva-closing-signature > span { display: block; width: 85%; margin: 0 auto 12px; }
.lva-closing-signature p { color: var(--muted); font-size: .9375rem; }
.lva-closing .lva-cta + p, .lva-closing-signature p { color: var(--ink); }
.lva-signature-name { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
.lva-closing-signature br { display: none; }
.lva-footer { width: min(1140px, calc(100% - 48px)); margin: auto; padding: 28px 0 36px; display: flex; flex-direction: column; gap: 12px; font-size: .875rem; }
.lva-footer nav { display: flex; gap: 12px 24px; flex-wrap: wrap; }
.lva-footer a { display: inline-flex; align-items: center; min-height: 44px; }
.lva-sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.lva-skip { position: fixed; z-index: 10; top: 8px; left: 8px; padding: 12px; background: var(--paper); transform: translateY(-180%); }
.lva-skip:focus { transform: none; }
@media (min-width: 768px) {
  .lva-header, .lva-prose, .lva-hero .lva-prose, #prospettive .lva-prose, #modalita .lva-prose, .lva-footer { width: min(1140px, calc(100% - 80px)); }
  .lva-prose { max-width: 760px; }
  .lva-offers { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; gap: 24px; }
  .lva-button { width: auto; min-height: 56px; padding-inline: 30px; }
  .lva-lockup-symbol { flex-basis: 56px; }
  .lva-lockup-type { width: 250px; }
  .lva-brand-tagline { font-size: .875rem; }
  .lva-header { padding-block: 24px 30px; }
}
@media (min-width: 1024px) {
  .lva-page { font-size: 1.1875rem; line-height: 1.55; }
  .lva-section { padding-block: 96px; }
  .lva-page h1 { font-size: clamp(3.75rem, 4.5vw, 4.25rem); line-height: 1.04; margin-bottom: 24px; }
  .lva-page h2 { font-size: 2.75rem; margin-bottom: 28px; }
  .lva-page h3 { font-size: 1.875rem; }
  .lva-eyebrow { font-size: .8125rem; margin-bottom: 24px; }
  .lva-hero { padding-block: 64px 96px; }
  .lva-hero .lva-prose { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 64px; align-items: start; max-width: 1140px; }
  .lva-hero-art { display: flex; align-items: center; justify-content: center; padding-top: 50px; }
  .lva-orbit { position: relative; width: 88%; padding: 30px; border: 1px solid #c99a5570; border-radius: 50%; }
  .lva-orbit::before, .lva-orbit::after { content: ''; position: absolute; inset: -18px; border: 1px solid #c99a5540; border-radius: 50%; pointer-events: none; }
  .lva-orbit::after { inset: -36px; border-color: #c99a5528; }
  .lva-subtitle { font-size: 1.625rem; margin-bottom: 30px; }
  .lva-perspectives { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
  .lva-perspectives article { padding: 30px 26px; }
  .lva-perspectives h3 { font-size: 1.6rem; }
  #prospettive .lva-prose, #modalita .lva-prose { max-width: 1140px; }
  .lva-offer { padding: 36px; }
  .lva-offer h3 { font-size: 1.75rem; }
  .lva-price-value { font-size: 4rem; }
  #videocall .lva-prose { max-width: 1140px; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); align-items: start; gap: 64px; }
  .lva-call-heading { grid-column: 2; grid-row: 1; padding: 40px; margin: 0; }
  #videocall .lva-copy { grid-column: 1; grid-row: 1; }
  .lva-with-portrait .lva-prose { max-width: 1140px; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); align-items: start; gap: 64px; }
  .lva-with-pdf .lva-prose { max-width: 1140px; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); align-items: start; gap: 64px; }
  .lva-with-pdf .lva-pdf-gallery { margin: 0; }
  .lva-with-portrait .lva-portrait { margin: 0; }
  .lva-closing h2 { max-width: 28ch; margin-inline: auto; }
  .lva-footer { flex-direction: row; align-items: center; justify-content: space-between; }
}
@media (max-width: 359px) {
  .lva-header, .lva-prose, .lva-hero .lva-prose, #prospettive .lva-prose, #modalita .lva-prose, .lva-footer { width: calc(100% - 40px); }
  .lva-brand { gap: 10px; }
  .lva-lockup-symbol { flex-basis: 36px; }
  .lva-lockup-type { max-width: calc(100% - 46px); }
  .lva-brand-tagline { font-size: .8125rem; }
  .lva-page h1 { font-size: 2.5rem; }
  .lva-page h2 { font-size: 1.8125rem; }
  .lva-button { font-size: 1rem; padding-inline: 18px; }
  .lva-offer { padding: 26px 22px; }
}
@media print {
  .lva-cta, .lva-hero-art { display: none; }
  .lva-prose { width: 100% !important; }
  .lva-section { padding: 24px; }
  .lva-page details { break-inside: avoid; }
  .lva-page details::details-content { content-visibility: visible; }
}

/* V5: these layout changes preserve all editorial text and the approved tokens. */
.lva-v5-hero .lva-prose { display: block; max-width: 1140px; }
.lva-hero-layout .lva-copy { max-width: 760px; }
.lva-v5-hero h1 { font-size: 2.5rem; font-weight: 700; line-height: 1.06; }
.lva-v5-hero .lva-subtitle { font-style: normal; font-size: 1.4375rem; line-height: 1.22; }
.lva-hero-portrait { margin-top: 28px; }
.lva-hero-portrait img { border-radius: 16px; }
.lva-video-block { max-width: 760px; margin: 48px auto 0; padding-top: 36px; border-top: 1px solid var(--line); }
.lva-video-block h2 { font-size: 2rem; }
.lva-video-frame { margin-top: 24px; border: 1px solid var(--gold); border-radius: 18px; overflow: hidden; aspect-ratio: 16 / 9; background: var(--paper); }
.lva-video-frame video { display: block; width: 100%; height: 100%; object-fit: contain; }
.lva-v5-spiritual .lva-prose { display: grid; gap: 16px; }
.lva-spiritual-main { padding: 28px 22px; border-radius: 20px; color: var(--cream); background: var(--plum); }
.lva-spiritual-main h2 { color: var(--cream); margin-bottom: 28px; }
.lva-spiritual-note { padding: 26px 22px; border: 1px solid var(--line); border-radius: 20px; background: var(--paper); }
.lva-spiritual-note h3 { font-size: 1.875rem; margin: 0 0 22px; }
.lva-spiritual-main p, .lva-spiritual-note p { font-size: 1rem; line-height: 1.6; }
.lva-v5-perspectives .lva-prose, .lva-v5-pdf .lva-prose { width: min(1140px, calc(100% - 48px)); max-width: 1140px; }
.lva-v5-pdf .lva-prose > p { max-width: 75ch; }
.lva-theme-grid { display: grid; grid-template-columns: 1fr; align-items: start; gap: 13px; margin: 28px 0 38px; }
.lva-theme-card { padding: 18px 17px; border: 1px solid var(--line); border-radius: 16px; background: var(--paper); height: auto; }
.lva-theme-card h3 { margin: 0 0 12px; font-size: 1.5625rem; line-height: 1.1; }
.lva-theme-card p { font-size: 1rem; line-height: 1.55; }
.lva-number { display: flex; width: 32px; height: 32px; border: 1px solid var(--gold); border-radius: 50%; align-items: center; justify-content: center; margin-bottom: 14px; background: var(--lilac); color: var(--plum); font: 400 .8125rem/1 'Cabin', sans-serif; }
.lva-document-usage { padding-top: 30px; border-top: 1px solid var(--line); }
.lva-document-usage h3, .lva-pdf-preview-copy h3 { margin: 0 0 24px; font-size: 1.875rem; line-height: 1.16; }
.lva-document-usage p { max-width: 75ch; }
.lva-pdf-preview-block { margin-top: 36px; padding-top: 32px; border-top: 1px solid var(--line); }
.lva-pdf-preview-copy h3 { max-width: 24ch; }
.lva-pdf-preview-copy p + p { margin-top: 18px; }
.lva-v5-pdf .lva-pdf-gallery { margin-top: 26px; padding: 0; background: none; border: 0; border-radius: 0; }
.lva-image-trigger { display: block; border-radius: 12px; }
.lva-image-trigger img { border: 1px solid var(--line); border-radius: 12px; }
.lva-v5-call .lva-prose { display: block; }
.lva-v5-modalities .lva-prose { max-width: 1140px; }
.lva-v5-modalities > .lva-prose > p { max-width: 75ch; }
.lva-process { padding-top: 34px; margin-top: 38px; border-top: 1px solid var(--line); }
.lva-process > h3 { font-size: 1.875rem; margin: 0 0 24px; }
.lva-process-grid { display: grid; grid-template-columns: 1fr; gap: 14px; }
.lva-process-card { height: auto; padding: 20px 18px; border: 1px solid var(--line); border-radius: 16px; background: var(--paper); }
.lva-process-card h3 { margin: 0 0 12px; font-size: 1.55rem; }
.lva-process-card p { font-size: 1rem; }
.lva-v5-closing { background: var(--plum) !important; color: var(--cream); }
.lva-v5-closing h2 { color: var(--cream); }
.lva-v5-closing .lva-button { background: var(--cream); border-color: var(--cream); color: var(--plum) !important; }
.lva-v5-closing .lva-button:hover { background: var(--paper); }
.lva-v5-closing :focus-visible { outline-color: var(--cream); }
.lva-v5-closing .lva-cta + p, .lva-v5-closing .lva-cta + p em { color: var(--cream); }
.lva-v5-closing .lva-closing-signature { border-radius: 16px; background: var(--cream); padding: 18px; }
.lva-faq { border: none; }
.lva-faq details { border: 1px solid var(--line); border-radius: 14px; padding-inline: 14px; background: var(--paper); }
.lva-faq details + details { margin-top: 10px; }
.lva-faq summary { padding-block: 18px; }
.lva-faq summary::after { top: 16px; }
.lva-dialog-open { overflow: hidden; }
.lva-image-dialog { padding: 20px; width: min(1200px, 94vw); max-width: 94vw; max-height: 94dvh; border: 1px solid var(--gold); border-radius: 18px; color: var(--ink); background: var(--cream); }
.lva-image-dialog::backdrop { background: #4e2445b0; }
.lva-dialog-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 18px; flex-wrap: wrap; margin-bottom: 16px; }
.lva-dialog-toolbar h2 { margin: 0; font-size: 1.6rem; }
.lva-dialog-controls { display: flex; gap: 8px; align-items: center; }
.lva-dialog-controls button { min-width: 44px; min-height: 44px; border: 1px solid var(--plum); background: var(--paper); color: var(--plum); border-radius: 50%; font: 600 1.2rem 'Cabin', sans-serif; cursor: pointer; }
.lva-dialog-controls button:disabled { opacity: .55; cursor: default; }
.lva-dialog-controls output { min-width: 4ch; font: 400 .9375rem 'Cabin', sans-serif; text-align: center; }
.lva-dialog-stage { max-height: 65dvh; overflow: auto; background: var(--paper); }
#lva-dialog-image { display: block; max-width: none; width: 100%; height: auto; }
#lva-image-original { display: inline-flex; align-items: center; min-height: 44px; padding-top: 8px; font-size: .9375rem; }
@media (min-width: 768px) {
  .lva-v5-perspectives .lva-prose, .lva-v5-pdf .lva-prose { width: min(1140px, calc(100% - 80px)); }
  .lva-theme-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; gap: 18px; }
  .lva-process-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lva-spiritual-main, .lva-spiritual-note { padding: 36px; }
}
@media (min-width: 1024px) {
  .lva-v5-hero .lva-prose { width: min(1140px, calc(100% - 80px)); display: block; }
  .lva-hero-layout.lva-has-photo { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); gap: 56px; align-items: center; }
  .lva-v5-hero h1 { font-size: clamp(3.25rem, 4.4vw, 4rem); }
  .lva-v5-hero .lva-subtitle { font-size: 2.0625rem; }
  .lva-hero-portrait { margin: 0; }
  .lva-video-block { margin-top: 64px; padding-top: 44px; }
  .lva-video-block h2 { font-size: 2.5rem; }
  .lva-spiritual-main h2 { font-size: 2.75rem; }
  .lva-spiritual-note h3 { font-size: 2.5rem; }
  .lva-spiritual-main p, .lva-spiritual-note p { font-size: 1.1875rem; }
  .lva-theme-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .lva-theme-card { padding: 22px; }
  .lva-theme-card h3 { font-size: 1.65rem; }
  .lva-theme-card p { font-size: 1.125rem; }
  .lva-document-usage h3, .lva-pdf-preview-copy h3, .lva-process > h3 { font-size: 2.5rem; }
  .lva-pdf-preview-block.lva-has-pdf { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; gap: 48px; }
  .lva-v5-pdf .lva-pdf-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 16px; margin-top: 0; }
  .lva-v5-pdf .lva-pdf-gallery img { margin: 0; }
  .lva-v5-call .lva-prose { max-width: 1140px; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); align-items: start; gap: 64px; }
  .lva-v5-call .lva-call-heading { grid-column: 2; grid-row: 1; }
  .lva-v5-call .lva-copy { grid-column: 1; grid-row: 1; }
  .lva-process-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .lva-process-card p { font-size: 1.0625rem; }
}
@media (max-width: 359px) {
  .lva-page { font-size: 1rem; }
  .lva-v5-hero .lva-prose, .lva-v5-perspectives .lva-prose, .lva-v5-pdf .lva-prose, .lva-v5-modalities .lva-prose, .lva-v5-spiritual .lva-prose { width: calc(100% - 36px); }
  .lva-v5-hero h1 { font-size: 2.125rem; }
  .lva-v5-hero .lva-subtitle { font-size: 1.3125rem; }
  .lva-spiritual-main, .lva-spiritual-note { padding: 24px 18px; }
  .lva-theme-card { padding: 18px 16px; }
}
