:root {
  --ink: #0a0b10;
  --ink-blue: #101827;
  --ink-soft: #17171d;
  --paper: #f4eee9;
  --paper-soft: #eee8e2;
  --white: #fffdfb;
  --text: #242127;
  --muted: #69636a;
  --muted-on-dark: #d3c8c2;
  --copper: #c97958;
  --bronze: #e79a78;
  --bronze-light: #f6b290;
  --line: rgba(111, 76, 65, .22);
  --line-dark: rgba(246, 178, 144, .24);
  --ease-soft: cubic-bezier(.16, 1, .3, 1);
  --serif: "Iowan Old Style", "Baskerville", "Times New Roman", serif;
  --sans: "Aptos", "Segoe UI", Arial, sans-serif;
  --shadow: 0 22px 62px rgba(23, 18, 18, .13);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--ink); }
body { margin: 0; overflow-x: hidden; color: var(--text); background: var(--paper); font-family: var(--sans); font-size: 16px; line-height: 1.6; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
img { display: block; max-width: 100%; }

.container { width: min(1160px, calc(100% - 48px)); margin: 0 auto; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; z-index: 100; top: 12px; left: 12px; transform: translateY(-150%); padding: 10px 14px; color: var(--ink); border-radius: 4px; background: var(--bronze-light); }
.skip-link:focus { transform: translateY(0); }

h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: var(--serif); font-weight: 400; line-height: 1.06; letter-spacing: -.035em; }
h1 { font-size: clamp(3.1rem, 5.5vw, 5.8rem); }
h2 { font-size: clamp(2.35rem, 4.15vw, 4.25rem); }
h3 { font-size: 1.65rem; }
.eyebrow { margin: 0 0 17px; color: var(--copper); font-size: 10px; font-weight: 800; letter-spacing: .13em; line-height: 1.45; text-transform: uppercase; }
[data-typewriter] { min-height: 2.12em; }
[data-typewriter].is-typing::after { display: inline-block; width: 2px; height: .78em; margin-left: .09em; content: ""; vertical-align: -.04em; background: var(--bronze-light); animation: caret-blink .75s steps(1, end) infinite; }
.word-reveal-ready .word-reveal-word { display: inline-block; opacity: 0; filter: blur(4px); transform: translateY(.48em); transition: opacity .82s ease, transform 1.05s var(--ease-soft), filter .76s ease; transition-delay: calc(var(--word-index) * 92ms); }
.word-reveal-ready.is-word-visible .word-reveal-word { opacity: 1; filter: blur(0); transform: translateY(0); }
@keyframes caret-blink { 50% { opacity: 0; } }

.site-header { position: fixed; z-index: 30; top: 0; left: 0; display: grid; grid-template-columns: 126px 1fr auto; align-items: center; width: 100%; min-height: 79px; padding: 7px clamp(24px, 5vw, 76px); border-bottom: 1px solid rgba(40, 33, 35, .11); color: var(--text); background: rgba(244, 238, 233, .94); backdrop-filter: blur(14px); transition: min-height .45s var(--ease-soft), background .45s ease, box-shadow .45s ease; }
.site-header.is-scrolled { min-height: 64px; background: rgba(255, 253, 251, .96); box-shadow: 0 8px 26px rgba(20, 15, 16, .08); }
.brand { display: block; width: 88px; line-height: 0; }
.brand img { width: 100%; height: auto; }
.site-nav { display: flex; justify-content: center; gap: clamp(20px, 2.4vw, 37px); font-size: 14px; font-weight: 700; letter-spacing: .025em; }
.site-nav a { transition: color .35s ease; }
.site-nav a:hover, .site-nav a:focus-visible { color: var(--copper); }
.header-contact { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 42px; padding: 11px 16px; border-radius: 4px; color: var(--paper); background: var(--ink-blue); font-size: 11px; font-weight: 800; letter-spacing: .02em; transition: background .38s ease, transform .5s var(--ease-soft); }
.header-contact:hover, .header-contact:focus-visible { transform: translateY(-2px); background: #273348; }
.menu-toggle { display: none; }

.hero { position: relative; min-height: min(768px, 100svh); padding: 148px 0 96px; overflow: hidden; color: var(--paper); background: var(--ink); }
.hero-photo, .hero-shade { position: absolute; inset: 0; }
.hero-photo { background: url("assets/images/daniele-hott-hero.jpg") center 40% / cover no-repeat; filter: grayscale(1) contrast(1.04); transform: scale(1.01); transition: filter 1.25s ease, transform 1.45s var(--ease-soft); }
.hero-shade { background: linear-gradient(90deg, rgba(6, 8, 13, .91) 0%, rgba(6, 8, 13, .76) 36%, rgba(6, 8, 13, .4) 65%, rgba(6, 8, 13, .58) 100%), linear-gradient(0deg, rgba(6, 8, 13, .68), transparent 44%); }
.hero::after { position: absolute; right: 7%; bottom: -130px; width: 430px; height: 430px; border-radius: 50%; content: ""; background: rgba(201, 121, 88, .16); filter: blur(90px); pointer-events: none; }
@media (min-width: 901px) {
  .hero-photo { background-position: center 29%; background-size: min(100%, 1450px) auto; }
}
.hero-inner { position: relative; z-index: 1; display: flex; align-items: center; min-height: 526px; }
.hero-copy { width: min(100%, 610px); }
.hero h1 { max-width: 590px; margin-bottom: 24px; }
.hero-lead { max-width: 545px; margin-bottom: 31px; color: #e2d9d5; font-size: 1.05rem; }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 19px; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 48px; padding: 12px 19px; border: 1px solid transparent; border-radius: 4px; font-size: 11px; font-weight: 800; letter-spacing: .04em; text-align: center; transition: transform .48s var(--ease-soft), background .36s ease, color .36s ease, border-color .36s ease; }
.button:hover, .button:focus-visible { transform: translateY(-3px); }
.button-light { color: #1c181b; background: var(--white); box-shadow: 0 12px 28px rgba(0, 0, 0, .14); }
.button-light:hover, .button-light:focus-visible { background: var(--bronze-light); }
.button-link { min-height: auto; padding: 10px 0; border-bottom: 1px solid var(--bronze-light); border-radius: 0; color: var(--white); }
.button-link:hover, .button-link:focus-visible { color: var(--bronze-light); }
.button-dark { width: 100%; color: var(--white); background: var(--ink-blue); }
.button-dark:hover, .button-dark:focus-visible { background: #273348; }
.button-panel { color: var(--bronze-light); border-color: var(--line-dark); background: transparent; }
.button-panel:hover, .button-panel:focus-visible { border-color: var(--bronze-light); background: rgba(246, 178, 144, .1); }
.registration { margin: 33px 0 0; color: #d4c5bd; font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
@media (hover: hover) { .hero:hover .hero-photo { filter: grayscale(0) contrast(1.02) saturate(1.03); transform: scale(1.035); } }

.statement { padding: clamp(62px, 7vw, 96px) 0; color: var(--paper); background: var(--ink-blue); }
.statement-grid { display: grid; grid-template-columns: .5fr .9fr .68fr; align-items: start; gap: clamp(28px, 5vw, 72px); }
.statement .eyebrow { margin-top: 13px; color: var(--bronze-light); }
.statement h2 { margin: 0; font-size: clamp(2rem, 3.3vw, 3.3rem); }
.statement p:last-child { margin: 9px 0 0; color: var(--muted-on-dark); font-size: .94rem; }

.section { padding: clamp(80px, 10vw, 132px) 0; }
.section-practice { background: var(--paper); }
.section-heading { max-width: 745px; margin-bottom: 46px; }
.section-heading h2 { margin-bottom: 0; }
.practice-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.practice-card { position: relative; display: flex; min-height: 325px; flex-direction: column; padding: 29px; overflow: hidden; border: 1px solid rgba(80, 63, 63, .12); border-radius: 8px; background: var(--white); box-shadow: 0 16px 38px rgba(60, 43, 38, .045); transition: transform .58s var(--ease-soft), box-shadow .58s ease, border-color .48s ease; }
.practice-card::before { position: absolute; top: 0; right: 0; left: 0; height: 2px; content: ""; background: linear-gradient(90deg, var(--copper), var(--bronze-light)); transform: scaleX(0); transform-origin: left; transition: transform .78s var(--ease-soft); }
.practice-card:hover { transform: translateY(-7px); border-color: rgba(201, 121, 88, .48); box-shadow: var(--shadow); }
.practice-card:hover::before { transform: scaleX(1); }
.card-icon { width: 42px; height: 42px; margin-bottom: 28px; border-bottom: 1px solid rgba(201,121,88,.58); color: var(--copper); font-family: var(--serif); font-size: 1.65rem; line-height: 38px; text-align: center; transition: color .45s ease, transform .62s var(--ease-soft); }
.practice-card:hover .card-icon { color: #98553f; transform: translateY(-4px) rotate(-4deg); }
.practice-card h3 { margin-bottom: 13px; font-size: 1.72rem; }
.practice-card p { margin-bottom: 24px; color: var(--muted); font-size: .93rem; }
.practice-card a { display: inline-flex; gap: 9px; margin-top: auto; color: var(--copper); font-size: 10px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.practice-card a span { transition: transform .48s var(--ease-soft); }
.practice-card a:hover span { transform: translateX(5px); }
.practice-card a:hover { color: #96503b; }

.section-process { background: linear-gradient(110deg, #e7ebe5 0%, #f5efe9 61%, #efe7df 100%); }
.process-grid { display: grid; grid-template-columns: .73fr 1fr; align-items: start; gap: clamp(50px, 10vw, 150px); }
.process-intro p:not(.eyebrow) { max-width: 420px; color: var(--muted); }
.process-list { margin: 0; padding: 0; list-style: none; border-top: 1px solid rgba(72, 63, 62, .2); }
.process-list li { position: relative; display: grid; grid-template-columns: 62px 1fr; gap: 18px; padding: 23px 0; border-bottom: 1px solid rgba(72, 63, 62, .2); opacity: .24; transform: translateX(18px); transition: opacity .82s ease, transform .98s var(--ease-soft); transition-delay: calc(var(--step, 0) * 220ms); }
.process-list li::after { position: absolute; right: 0; bottom: -1px; left: 0; height: 1px; content: ""; background: var(--copper); transform: scaleX(0); transform-origin: left; transition: transform 1.05s var(--ease-soft); transition-delay: calc(var(--step, 0) * 220ms + 140ms); }
.process-list.is-drawn li { opacity: 1; transform: translateX(0); }
.process-list.is-drawn li::after { transform: scaleX(1); }
.process-list li:nth-child(1) { --step: 0; }
.process-list li:nth-child(2) { --step: 1; }
.process-list li:nth-child(3) { --step: 2; }
.process-list > li > span { color: #aa7941; font-family: var(--serif); font-size: 1.35rem; }
.process-list h3 { margin: 0 0 4px; font-size: 1.4rem; }
.process-list p { margin: 0; color: var(--muted); font-size: .9rem; }

.section-about { color: var(--paper); background: var(--ink-blue); }
.about-grid { display: grid; grid-template-columns: minmax(280px, .58fr) minmax(0, 1fr); align-items: center; gap: clamp(50px, 8vw, 118px); }
.about-photo { position: relative; width: min(100%, 348px); margin: 0; justify-self: center; overflow: hidden; border: 1px solid rgba(246,178,144,.26); border-radius: 8px; background: var(--ink); box-shadow: 16px 16px 0 -1px rgba(16, 24, 39, 1), 16px 16px 0 0 rgba(246,178,144,.22); }
.portrait-frame::after { position: absolute; inset: 0; content: ""; pointer-events: none; background: linear-gradient(145deg, rgba(204,121,88,.25), transparent 39%, rgba(0,0,0,.14)); mix-blend-mode: color; opacity: .7; transition: opacity .75s ease; }
.portrait-frame img { width: 100%; height: auto; filter: grayscale(1) contrast(1.04); transition: transform 1.12s var(--ease-soft), filter 1.05s ease; }
@media (hover: hover) { .portrait-frame:hover img, .portrait-frame:focus-within img { filter: grayscale(0) contrast(1.02) saturate(1.03); transform: scale(1.035); } .portrait-frame:hover::after { opacity: .42; } }
.about-copy h2 { max-width: 610px; margin-bottom: 23px; font-size: clamp(2.15rem, 3.8vw, 3.75rem); }
.about-copy p:not(.eyebrow) { max-width: 650px; color: var(--muted-on-dark); }
.section-about .eyebrow { color: var(--bronze-light); }
.feature-list { display: grid; gap: 11px; margin: 29px 0 0; padding: 0; list-style: none; color: var(--white); font-size: .88rem; font-weight: 600; }
.feature-list li { display: flex; align-items: center; gap: 11px; }
.feature-list li::before { width: 16px; height: 16px; content: "✓"; color: var(--bronze-light); border: 1px solid rgba(246,178,144,.48); border-radius: 50%; font-size: 10px; line-height: 14px; text-align: center; }

.section-faq { background: var(--paper-soft); }
.faq-grid { display: grid; grid-template-columns: .75fr 1.1fr; gap: clamp(50px, 10vw, 145px); }
.faq-intro p:not(.eyebrow) { max-width: 360px; color: var(--muted); }
.accordion { border-top: 1px solid rgba(74, 60, 59, .24); }
.accordion details { border-bottom: 1px solid rgba(74, 60, 59, .24); }
.accordion summary { position: relative; padding: 20px 42px 20px 0; font-family: var(--serif); font-size: 1.35rem; line-height: 1.28; cursor: pointer; list-style: none; }
.accordion summary::-webkit-details-marker { display: none; }
.accordion summary::after { position: absolute; top: 16px; right: 3px; content: "+"; color: var(--copper); font-family: var(--sans); font-size: 1.55rem; font-weight: 300; transition: transform .42s var(--ease-soft); }
.accordion details[open] summary::after { transform: rotate(45deg); }
.accordion details p { max-width: 660px; margin: 0; padding: 0 20px 22px 0; color: var(--muted); font-size: .92rem; }
@supports (interpolate-size: allow-keywords) {
  :root { interpolate-size: allow-keywords; }
  .accordion details::details-content { block-size: 0; overflow: clip; opacity: 0; transition: block-size .62s var(--ease-soft), opacity .48s ease; }
  .accordion details[open]::details-content { block-size: auto; opacity: 1; }
}

.section-contact { background: var(--paper); }
.contact-heading { max-width: 700px; margin-bottom: 42px; }
.contact-heading h2 { margin-bottom: 12px; }
.contact-heading p:last-child { max-width: 570px; margin-bottom: 0; color: var(--muted); }
.contact-grid { display: grid; grid-template-columns: minmax(0, 1.22fr) minmax(280px, .62fr); align-items: stretch; gap: 17px; }
.contact-form { padding: clamp(26px, 4vw, 44px); border: 1px solid rgba(73, 60, 60, .13); border-radius: 8px; background: var(--white); box-shadow: var(--shadow); }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.form-field { margin-bottom: 21px; }
.form-field label { display: block; margin-bottom: 8px; color: var(--text); font-size: 11px; font-weight: 800; letter-spacing: .03em; }
.form-field input, .form-field textarea, .form-field select { width: 100%; padding: 10px 0; border: 0; border-bottom: 1px solid rgba(58, 48, 49, .2); border-radius: 0; outline: none; color: var(--text); background: transparent; transition: border-color .38s ease; }
.form-field textarea { min-height: 120px; resize: vertical; }
.form-field select { cursor: pointer; }
.form-field input:focus, .form-field textarea:focus, .form-field select:focus { border-color: var(--copper); }
.form-disclosure { margin: -5px 0 18px; color: var(--muted); font-size: .72rem; line-height: 1.48; }
.consent { display: flex; align-items: flex-start; gap: 9px; margin: 7px 0 24px; color: var(--muted); font-size: .78rem; line-height: 1.45; }
.consent input { width: 16px; height: 16px; accent-color: var(--copper); }
.consent a { color: var(--copper); text-decoration: underline; text-underline-offset: 3px; }
.form-status { min-height: 22px; margin: 13px 0 0; color: #85523d; font-size: .82rem; }
.contact-panel { display: flex; flex-direction: column; padding: 30px; border-radius: 8px; color: var(--paper); background: var(--ink-blue); box-shadow: 0 16px 38px rgba(16,24,39,.17); }
.contact-panel h3 { margin-bottom: 20px; font-size: 1.7rem; }
.contact-panel address { font-style: normal; }
.contact-panel address p { margin-bottom: 16px; color: var(--muted-on-dark); font-size: .9rem; line-height: 1.48; }
.contact-panel address strong { display: block; margin-bottom: 4px; color: var(--bronze-light); font-size: 10px; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.contact-panel address a { transition: color .35s ease; }
.contact-panel address a:hover { color: var(--bronze-light); }
.map-placeholder { display: grid; min-height: 150px; place-items: center; margin-top: auto; overflow: hidden; border: 1px solid var(--line-dark); border-radius: 8px; background: linear-gradient(135deg, rgba(246,178,144,.12), transparent 58%), #172134; text-align: center; }
.map-placeholder > div { padding: 19px; }
.map-placeholder p { margin: 0 0 13px; color: var(--muted-on-dark); font-size: .78rem; }
.map-embed { width: 100%; min-height: 224px; border: 0; }
.panel-whatsapp { width: 100%; margin-top: 17px; }

.site-footer { padding: 31px 0; color: var(--paper); background: var(--ink); }
.footer-grid { display: grid; grid-template-columns: 130px 1fr auto; align-items: center; gap: 25px; }
.footer-logo { display: block; width: 94px; line-height: 0; }
.footer-logo img { width: 100%; height: auto; }
.footer-copy { margin: 0; color: #b5aaa5; font-size: .75rem; text-align: center; text-transform: uppercase; }
.footer-links { display: flex; flex-wrap: wrap; justify-content: end; gap: 13px; color: #d8ceca; font-size: .75rem; }
.footer-links a { transition: color .35s ease; }
.footer-links a:hover, .footer-links a:focus-visible { color: var(--bronze-light); }

.whatsapp-float { position: fixed; z-index: 28; right: 24px; bottom: 24px; display: grid; width: 54px; height: 54px; place-items: center; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; color: #150e0c; background: linear-gradient(145deg, var(--bronze-light), var(--copper)); box-shadow: 0 10px 28px rgba(0,0,0,.32); transition: transform .48s var(--ease-soft), box-shadow .48s ease; }
.whatsapp-float:hover, .whatsapp-float:focus-visible { transform: translateY(-5px) scale(1.04); box-shadow: 0 16px 34px rgba(0,0,0,.42); }
.whatsapp-float svg { width: 27px; fill: currentColor; }
.cookie-banner { position: fixed; z-index: 35; right: 18px; bottom: 18px; width: min(430px, calc(100% - 36px)); padding: 20px; border: 1px solid rgba(246,178,144,.25); border-radius: 8px; color: var(--paper); background: var(--ink-blue); box-shadow: 0 18px 45px rgba(0,0,0,.35); }
.cookie-banner p { margin: 0 0 13px; color: var(--muted-on-dark); font-size: .8rem; line-height: 1.5; }
.cookie-banner p a { color: var(--bronze-light); text-decoration: underline; text-underline-offset: 3px; }
.cookie-banner div { display: flex; justify-content: flex-end; gap: 8px; }
.cookie-banner .button { min-height: 38px; padding: 8px 13px; font-size: 10px; }

.legal-page { min-height: 100vh; padding: 112px 0 72px; background: linear-gradient(125deg, #e6ddd5, #f4eee9 52%, #e8e4e2); }
.legal-nav { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 43px; }
.legal-nav .brand { width: 78px; }
.legal-nav > a:last-child { color: var(--copper); font-size: .74rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.legal-content { max-width: 825px; padding: clamp(29px, 6vw, 61px); border: 1px solid rgba(80, 63, 63, .14); border-radius: 8px; background: rgba(255,253,251,.75); box-shadow: var(--shadow); }
.legal-content h1 { margin-bottom: 26px; font-size: clamp(2.8rem, 6vw, 4.8rem); }
.legal-content h2 { margin-top: 43px; font-size: 2.05rem; }
.legal-content p, .legal-content li { color: var(--muted); }
.legal-content ul { padding-left: 20px; }
.legal-content a { color: var(--copper); text-decoration: underline; text-underline-offset: 3px; }
.legal-updated { color: var(--copper) !important; font-size: .77rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }

.reveal { opacity: 0; transform: translateY(25px); transition: opacity .9s ease, transform 1.05s var(--ease-soft); transition-delay: var(--delay, 0ms); }
.reveal.is-visible { opacity: 1; transform: translateY(0); }

@media (max-width: 900px) {
  .site-header { grid-template-columns: 104px auto 1fr; min-height: 68px; padding: 5px 24px; }
  .brand { width: 72px; }
  .header-contact { justify-self: end; min-height: 38px; padding: 9px 12px; font-size: 10px; }
  .menu-toggle { position: relative; display: grid; width: 32px; height: 32px; place-content: center; gap: 6px; padding: 0; border: 0; color: var(--ink); background: transparent; }
  .menu-toggle span:not(.sr-only) { width: 23px; height: 1px; background: currentColor; transition: transform .35s var(--ease-soft); }
  .menu-toggle[aria-expanded="true"] span:nth-child(2) { transform: translateY(3.5px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-3.5px) rotate(-45deg); }
  .site-nav { position: absolute; top: 100%; right: 0; left: 0; display: grid; gap: 0; max-height: 0; overflow: hidden; background: rgba(255,253,251,.98); transition: max-height .48s var(--ease-soft); }
  .site-nav.is-open { max-height: 290px; border-top: 1px solid rgba(40,33,35,.1); border-bottom: 1px solid rgba(40,33,35,.1); }
  .site-nav a { padding: 14px 24px; }
  .hero { min-height: 690px; padding-top: 130px; }
  .statement-grid, .process-grid, .about-grid, .faq-grid { grid-template-columns: 1fr; }
  .statement-grid { gap: 16px; }
  .statement .eyebrow { margin-top: 0; }
  .statement p:last-child { max-width: 600px; margin: 0; }
  .process-grid, .faq-grid { gap: 42px; }
  .about-grid { gap: 51px; }
  .about-photo { order: 2; justify-self: start; }
  .about-copy { order: 1; }
  .practice-grid { grid-template-columns: 1fr; max-width: 610px; }
  .practice-card { min-height: 255px; }
  .contact-grid { grid-template-columns: 1fr; max-width: 700px; }
  .contact-panel { min-height: 430px; }
  .footer-grid { grid-template-columns: 1fr; justify-items: start; }
  .footer-copy { text-align: left; }
  .footer-links { justify-content: start; }
}

@media (max-width: 560px) {
  .container { width: min(100% - 36px, 1160px); }
  .site-header { grid-template-columns: 84px auto 1fr; padding: 5px 18px; }
  .brand { width: 61px; }
  .header-contact { padding: 8px 10px; font-size: 0; }
  .header-contact span { font-size: 15px; }
  .hero { min-height: 660px; padding: 117px 0 65px; }
  .hero-photo { background-position: 56% center; }
  .hero-shade { background: linear-gradient(90deg, rgba(6, 8, 13, .9), rgba(6, 8, 13, .61)), linear-gradient(0deg, rgba(6, 8, 13, .75), transparent 58%); }
  h1 { font-size: clamp(2.85rem, 13vw, 4.1rem); }
  h2 { font-size: 2.45rem; }
  [data-typewriter] { min-height: 3.18em; }
  .hero-actions { align-items: flex-start; flex-direction: column; gap: 11px; }
  .statement, .section { padding: 68px 0; }
  .process-list li { grid-template-columns: 45px 1fr; gap: 11px; }
  .form-row { grid-template-columns: 1fr; gap: 0; }
  .contact-form, .contact-panel { padding: 25px; }
  .contact-panel { min-height: 455px; }
  .whatsapp-float { right: 16px; bottom: 16px; width: 48px; height: 48px; }
  .cookie-banner { right: 12px; bottom: 12px; width: calc(100% - 24px); }
  .legal-page { padding-top: 92px; }
}

@media (hover: none) { .hero-photo { filter: grayscale(.35) contrast(1.03); } .portrait-frame img { filter: grayscale(.35) contrast(1.03); } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; } .reveal { opacity: 1; transform: none; } .process-list li { opacity: 1; transform: none; } .process-list li::after { transform: scaleX(1); } }

/* V3 — composição editorial escura */
:root {
  --ink: #090a0f;
  --ink-blue: #101827;
  --ink-soft: #15161e;
  --paper: #0d0e14;
  --paper-soft: #12131a;
  --white: #181920;
  --text: #f4eee9;
  --muted: #c9bfba;
  --muted-on-dark: #d8cfca;
  --line: rgba(246, 178, 144, .2);
  --line-dark: rgba(246, 178, 144, .3);
}

html, body { color: var(--text); background: var(--ink); color-scheme: dark; }
.site-header { border-color: rgba(246, 178, 144, .12); color: var(--text); background: rgba(9, 10, 15, .88); }
.site-header.is-scrolled { background: rgba(9, 10, 15, .96); box-shadow: 0 8px 30px rgba(0, 0, 0, .32); }
.site-nav a:hover, .site-nav a:focus-visible { color: var(--bronze-light); }
.header-contact { color: #180e0c; background: linear-gradient(104deg, var(--copper), var(--bronze-light)); }
.header-contact:hover, .header-contact:focus-visible { color: #180e0c; background: linear-gradient(104deg, #e79470, #ffd0ae); }

.hero { background: radial-gradient(ellipse 57% 88% at 78% 1%, rgba(167, 75, 52, .4), transparent 66%), var(--ink); }
.hero, .statement, .section-about, .contact-panel, .site-footer, .cookie-banner { color: var(--text); }
.hero-shade { background: linear-gradient(90deg, rgba(6, 8, 13, .95) 0%, rgba(6, 8, 13, .8) 39%, rgba(6, 8, 13, .46) 70%, rgba(6, 8, 13, .7) 100%), linear-gradient(0deg, rgba(6, 8, 13, .78), transparent 47%); }
.button-light { color: #1c1514; background: #f4eee9; border-color: rgba(246, 178, 144, .42); }
.button-light:hover, .button-light:focus-visible { color: #170d0b; background: var(--bronze-light); }
.button-dark { color: #170d0b; background: linear-gradient(104deg, var(--copper), var(--bronze-light)); }
.button-dark:hover, .button-dark:focus-visible { background: linear-gradient(104deg, #e79470, #ffd0ae); }
.button-panel { color: var(--bronze-light); border-color: var(--line-dark); }
.button-link { color: var(--text); }

.statement { background: linear-gradient(125deg, #101827, #0c0d13 80%); }
.section-practice { background: radial-gradient(circle at 90% 9%, rgba(170,79,52,.2), transparent 30%), #0d0e14; }
.practice-card { border-color: rgba(246,178,144,.19); background: linear-gradient(145deg, rgba(255,255,255,.065), rgba(255,255,255,.015)); box-shadow: 0 16px 38px rgba(0,0,0,.22); }
.practice-card:hover { border-color: rgba(246,178,144,.62); background: linear-gradient(145deg, rgba(193,105,75,.24), rgba(255,255,255,.025)); }
.practice-card h3, .practice-card p, .section-heading h2 { color: var(--text); }

.section-process { background: radial-gradient(circle at 15% 5%, rgba(201,121,88,.17), transparent 35%), linear-gradient(120deg, #111827, #101116 72%); }
.process-intro p:not(.eyebrow), .process-list p { color: var(--muted); }
.process-list { border-color: rgba(246,178,144,.22); }
.process-list li { border-color: rgba(246,178,144,.19); }
.process-list > li > span { color: var(--bronze-light); }

.section-about { background: #0a0b10; }
.about-photo { background: #0a0b10; box-shadow: 16px 16px 0 -1px #0a0b10, 16px 16px 0 0 rgba(246,178,144,.25); }
.feature-list { color: var(--text); }
.section-faq { background: #14131a; }
.accordion { border-color: rgba(246,178,144,.22); }
.accordion details { border-color: rgba(246,178,144,.22); }
.accordion details p, .faq-intro p:not(.eyebrow) { color: var(--muted); }

.section-contact { background: radial-gradient(ellipse 45% 80% at 0 38%, rgba(157,76,51,.22), transparent 72%), #0d0e14; }
.contact-heading p:last-child { color: var(--muted); }
.contact-form { border-color: rgba(246,178,144,.21); background: #16171f; box-shadow: 0 22px 60px rgba(0,0,0,.28); }
.form-field label { color: var(--bronze-light); }
.form-field input, .form-field textarea, .form-field select { border-color: rgba(246,178,144,.26); color: var(--paper); background: rgba(0,0,0,.12); }
.form-field input:focus, .form-field textarea:focus, .form-field select:focus { border-color: var(--bronze); background: rgba(0,0,0,.3); }
.form-field select option { color: var(--paper); background: #16171f; }
.consent { color: var(--muted); }
.form-status { color: var(--bronze-light); }
.contact-panel { background: linear-gradient(145deg, #101827, #0b0c11); box-shadow: 0 16px 42px rgba(0,0,0,.35); }
.map-placeholder { background: linear-gradient(135deg, rgba(246,178,144,.13), transparent 58%), #162034; }

.site-footer { border-color: rgba(246,178,144,.13); background: #06070a; }
.cookie-banner { border-color: rgba(246,178,144,.28); background: #14151d; }

.legal-page { background: radial-gradient(circle at 5% 4%, rgba(178,87,58,.3), transparent 33%), #0b0c11; }
.legal-content { border-color: rgba(246,178,144,.22); background: rgba(255,255,255,.035); box-shadow: 0 20px 60px rgba(0,0,0,.28); }
.legal-content p, .legal-content li { color: var(--muted); }
.legal-content a { color: var(--bronze-light); }

@media (max-width: 900px) {
  .site-nav { background: rgba(9, 10, 15, .98); }
  .site-nav.is-open { border-color: rgba(246,178,144,.16); }
  .menu-toggle { color: var(--paper); }
}

.theme-toggle { position: fixed; z-index: 28; left: 24px; bottom: 24px; display: grid; width: 38px; height: 38px; place-items: center; padding: 0; border: 1px solid rgba(246,178,144,.28); border-radius: 50%; color: var(--bronze-light); background: rgba(17,16,20,.86); box-shadow: 0 8px 22px rgba(0,0,0,.24); transition: transform .42s var(--ease-soft), background .32s ease, color .32s ease, border-color .32s ease; }
.theme-toggle:hover, .theme-toggle:focus-visible { transform: translateY(-3px) rotate(10deg); border-color: var(--bronze-light); }
.theme-icon { position: absolute; font-size: 18px; line-height: 1; transition: opacity .28s ease, transform .42s var(--ease-soft); }
.theme-icon-sun { opacity: 1; transform: scale(1) rotate(0); }
.theme-icon-moon { opacity: 0; transform: scale(.55) rotate(-30deg); }
body.theme-light .theme-toggle { border-color: rgba(90,66,61,.2); color: #614c46; background: rgba(255,253,251,.88); box-shadow: 0 8px 22px rgba(48,32,29,.13); }
body.theme-light .theme-icon-sun { opacity: 0; transform: scale(.55) rotate(-30deg); }
body.theme-light .theme-icon-moon { opacity: 1; transform: scale(1) rotate(0); }

body.theme-light {
  --ink: #0a0b10;
  --ink-blue: #101827;
  --ink-soft: #17171d;
  --paper: #f4eee9;
  --paper-soft: #eee8e2;
  --white: #fffdfb;
  --text: #242127;
  --muted: #69636a;
  --muted-on-dark: #d3c8c2;
  --line: rgba(111,76,65,.22);
  --line-dark: rgba(246,178,144,.24);
  color: var(--text);
  background: var(--paper);
  color-scheme: light;
}
body.theme-light .site-header { border-color: rgba(40,33,35,.11); color: var(--text); background: rgba(244,238,233,.94); }
body.theme-light .site-header.is-scrolled { background: rgba(255,253,251,.96); box-shadow: 0 8px 26px rgba(20,15,16,.08); }
body.theme-light .site-nav a:hover, body.theme-light .site-nav a:focus-visible { color: var(--copper); }
body.theme-light .header-contact { color: var(--paper); background: var(--ink-blue); }
body.theme-light .header-contact:hover, body.theme-light .header-contact:focus-visible { color: var(--paper); background: #273348; }
body.theme-light .hero, body.theme-light .statement, body.theme-light .section-about, body.theme-light .contact-panel, body.theme-light .site-footer, body.theme-light .cookie-banner { color: var(--paper); }
body.theme-light .hero { background: var(--ink); }
body.theme-light .hero-shade { background: linear-gradient(90deg, rgba(6,8,13,.91) 0%, rgba(6,8,13,.76) 36%, rgba(6,8,13,.4) 65%, rgba(6,8,13,.58) 100%), linear-gradient(0deg, rgba(6,8,13,.68), transparent 44%); }
body.theme-light .button-light { color: #1c181b; background: var(--white); border-color: transparent; }
body.theme-light .button-light:hover, body.theme-light .button-light:focus-visible { color: #1c181b; background: var(--bronze-light); }
body.theme-light .button-dark { color: var(--white); background: var(--ink-blue); }
body.theme-light .button-dark:hover, body.theme-light .button-dark:focus-visible { background: #273348; }
body.theme-light .button-panel { color: var(--bronze-light); border-color: var(--line-dark); }
body.theme-light .button-link { color: var(--white); }
body.theme-light .statement { background: var(--ink-blue); }
body.theme-light .section-practice { background: var(--paper); }
body.theme-light .practice-card { border-color: rgba(80,63,63,.12); background: var(--white); box-shadow: 0 16px 38px rgba(60,43,38,.045); }
body.theme-light .practice-card:hover { border-color: rgba(201,121,88,.48); background: var(--white); box-shadow: var(--shadow); }
body.theme-light .practice-card h3, body.theme-light .practice-card p, body.theme-light .section-heading h2 { color: inherit; }
body.theme-light .practice-card p { color: var(--muted); }
body.theme-light .section-process { background: linear-gradient(110deg, #e7ebe5 0%, #f5efe9 61%, #efe7df 100%); }
body.theme-light .process-intro p:not(.eyebrow), body.theme-light .process-list p { color: var(--muted); }
body.theme-light .process-list { border-color: rgba(72,63,62,.2); }
body.theme-light .process-list li { border-color: rgba(72,63,62,.2); }
body.theme-light .process-list > li > span { color: #aa7941; }
body.theme-light .section-about { background: var(--ink-blue); }
body.theme-light .about-photo { background: var(--ink); box-shadow: 16px 16px 0 -1px var(--ink-blue), 16px 16px 0 0 rgba(246,178,144,.22); }
body.theme-light .feature-list { color: var(--paper); }
body.theme-light .section-faq { background: var(--paper-soft); }
body.theme-light .accordion { border-color: rgba(74,60,59,.24); }
body.theme-light .accordion details { border-color: rgba(74,60,59,.24); }
body.theme-light .accordion details p, body.theme-light .faq-intro p:not(.eyebrow) { color: var(--muted); }
body.theme-light .section-contact { background: var(--paper); }
body.theme-light .contact-heading p:last-child { color: var(--muted); }
body.theme-light .contact-form { border-color: rgba(73,60,60,.13); background: var(--white); box-shadow: var(--shadow); }
body.theme-light .form-field label { color: var(--text); }
body.theme-light .form-field input, body.theme-light .form-field textarea, body.theme-light .form-field select { border-color: rgba(58,48,49,.2); color: var(--text); background: transparent; }
body.theme-light .form-field select option { color: var(--text); background: var(--white); }
body.theme-light .consent { color: var(--muted); }
body.theme-light .form-status { color: #85523d; }
body.theme-light .contact-panel { background: var(--ink-blue); box-shadow: 0 16px 38px rgba(16,24,39,.17); }
body.theme-light .map-placeholder { background: linear-gradient(135deg, rgba(246,178,144,.12), transparent 58%), #172134; }
body.theme-light .site-footer { border-color: rgba(80,63,63,.14); color: var(--text); background: #e9e1db; }
body.theme-light .footer-links { color: #52494a; }
body.theme-light .footer-links a:hover, body.theme-light .footer-links a:focus-visible { color: var(--copper); }
body.theme-light .footer-copy { color: #6d6667; }
body.theme-light .cookie-banner { border-color: rgba(80,63,63,.18); color: var(--text); background: #fffdfb; box-shadow: 0 18px 45px rgba(58,39,35,.16); }
body.theme-light .cookie-banner p { color: var(--muted); }
body.theme-light .cookie-banner p a { color: var(--copper); }

@media (max-width: 560px) { .theme-toggle { left: 16px; bottom: 16px; width: 34px; height: 34px; } }
@media (max-width: 900px) { body.theme-light .site-nav { background: rgba(255,253,251,.98); } body.theme-light .site-nav.is-open { border-color: rgba(40,33,35,.1); } body.theme-light .menu-toggle { color: var(--text); } }
