:root {
  --green:#123e37; --deep:#0c2e29; --gold:#b8a06a; --gold-ink:#79612f;
  --paper:#f6f2e9; --white:#fffdf8; --ink:#173d35; --muted:#53675b;
  --line:#d3d8ca; --error:#923f34; --font:Tahoma,Arial,sans-serif;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:116px; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--font); font-size:16px; line-height:1.9; -webkit-font-smoothing:antialiased; }
button,input,select,textarea { font:inherit; }
a { color:inherit; text-decoration:none; }
button { cursor:pointer; }
button,a,input,select,textarea,summary { -webkit-tap-highlight-color:transparent; }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible { outline:3px solid var(--gold); outline-offset:4px; }
img { display:block; max-width:100%; }
[hidden] { display:none!important; }
h1,h2,h3,p { margin:0 0 16px; }
h1,h2,h3 { font-weight:500; }
h2 { font-size:30px; line-height:1.6; }
h3 { font-size:20px; line-height:1.7; }
.container { width:min(1120px,calc(100% - 64px)); margin-inline:auto; }
.section { padding-block:58px; }
.skip-link { position:fixed; top:-100px; inset-inline-start:16px; z-index:100; padding:10px 16px; background:var(--paper); color:var(--green); }
.skip-link:focus { top:12px; }
.button { display:inline-flex; justify-content:center; align-items:center; min-height:48px; padding:10px 24px; border:1px solid var(--gold); background:var(--gold); color:var(--deep); font-size:15px; font-weight:600; line-height:1.7; text-align:center; transition:background .15s,border-color .15s; }
.button:hover { background:#ccb683; border-color:#ccb683; }
.button-outline { background:transparent; color:var(--green); }
.button-outline:hover { background:#e8dfca; border-color:var(--gold); }
.text-link { display:inline-block; padding:8px 0; border:0; border-bottom:1px solid var(--gold); background:none; color:inherit; font-size:15px; line-height:1.7; }
.text-link:hover { color:var(--gold); }
.text-link.dark { color:var(--green); }
.arrow { font-family:Arial,sans-serif; font-size:23px; font-weight:400; }

/* Full artwork sits naturally on the green background. */
.site-header { position:sticky; top:0; z-index:40; background:var(--green); color:var(--paper); border-bottom:1px solid #ffffff20; }
.header-inner { min-height:100px; display:flex; align-items:center; justify-content:space-between; gap:28px; }
.brand { display:flex; align-items:center; gap:13px; min-width:0; }
.brand-crop { display:block; flex:0 0 auto; width:68px; height:76px; }
.brand-crop img { width:100%; height:100%; object-fit:contain; mix-blend-mode:lighten; }
.brand-copy { min-width:0; }
.brand-copy strong { display:block; font-size:22px; font-weight:500; line-height:1.6; }
.brand-copy small { display:block; color:#ded8c6; font-size:11px; line-height:1.7; }
.header-inner nav { display:flex; align-items:center; gap:28px; font-size:14px; }
.header-inner nav a { display:flex; align-items:center; min-height:44px; }
.header-inner nav a:hover { color:var(--gold); }
.header-actions { display:flex; align-items:center; gap:6px; flex-shrink:0; }
.language,.menu-toggle { min-width:44px; min-height:44px; padding:8px; border:0; background:none; color:var(--paper); font-size:14px; }
.menu-toggle { display:none; }
.menu-toggle span { display:block; width:22px; height:1px; margin:7px auto; background:currentColor; }
.hero { background:var(--green); color:var(--paper); }
.hero-grid { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); align-items:center; gap:64px; padding-block:30px; }
.eyebrow { margin-bottom:14px; color:#d4c7a6; font-size:14px; }
.hero h1 { margin-bottom:18px; font-size:clamp(38px,4.3vw,52px); line-height:1.6; }
.hero h1 em { color:var(--gold); font-style:normal; }
.hero-description { max-width:500px; margin-bottom:24px; color:#d9e1d6; font-size:16px; line-height:1.9; }
.hero-buttons { display:flex; align-items:center; flex-wrap:wrap; gap:24px; }
.hero-visual { display:flex; justify-content:center; align-items:center; min-width:0; }
.hero-visual img { width:auto; height:380px; max-width:100%; object-fit:contain; mix-blend-mode:lighten; }

/* A short profile and clear choices. */
.about { padding-block:38px; }
.about-grid { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); align-items:center; gap:64px; }
.professional-card { padding-inline-start:24px; border-inline-start:2px solid var(--gold); }
.section-label { margin-bottom:9px; color:var(--gold-ink); font-size:13px; }
.professional-card h2 { margin-bottom:5px; font-size:30px; }
.profile-role { margin-bottom:4px; font-size:16px; }
.profile-scope { margin:0; color:var(--muted); font-size:14px; }
.about-copy p { max-width:500px; margin-bottom:12px; font-size:18px; line-height:1.95; }
.services { background:var(--white); border-block:1px solid #e5e6da; }
.section-heading { display:flex; align-items:baseline; justify-content:space-between; gap:24px; margin-bottom:24px; }
.section-heading h2,.section-heading p { margin-bottom:0; }
.section-heading p { color:var(--muted); font-size:15px; }
.service-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.service-item { display:grid; grid-template-columns:minmax(0,1fr) 25px; align-content:start; gap:8px 20px; min-width:0; padding:23px 25px; border:1px solid var(--line); background:var(--paper); color:var(--ink); text-align:start; transition:background .15s,border-color .15s; }
.service-item h3 { grid-column:1; margin:0; font-size:21px; }
.service-item p { grid-column:1; margin:0; color:var(--muted); font-size:15px; line-height:1.9; }
.service-item .arrow { grid-column:2; grid-row:1; color:var(--gold-ink); }
.service-item:hover { border-color:var(--gold); background:#eee9dc; }
.service-item.is-selected,.service-item[aria-pressed="true"] { border-color:var(--gold); background:#e8e1cf; box-shadow:inset 0 -2px var(--gold); }
.practice-compact { margin-top:30px; }
.practice-compact h3 { margin-bottom:13px; font-size:17px; }
.practice-grid { display:flex; flex-wrap:wrap; gap:9px; }
.practice-choice { min-height:42px; max-width:100%; padding:7px 14px; border:1px solid var(--line); background:transparent; color:var(--ink); text-align:start; font-size:14px; line-height:1.7; }
.practice-choice:hover { border-color:var(--gold); background:#eee9dc; }
.practice-choice.is-selected,.practice-choice[aria-pressed="true"] { border-color:var(--green); background:var(--green); color:var(--paper); }

/* Keep the request short; additional context is optional. */
.consultation { background:#ebe8dc; }
.consultation-layout { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); align-items:start; gap:72px; }
.contact-copy { padding-top:8px; }
.contact-copy h2 { margin-bottom:14px; font-size:34px; }
.contact-copy>p:not(.section-label) { max-width:340px; color:var(--muted); font-size:16px; }
.contact-number { display:block; width:fit-content; max-width:100%; margin:22px 0; font:30px/1.7 Georgia,serif; white-space:nowrap; }
.consultation-form { min-width:0; padding:26px 28px; border:1px solid var(--line); background:var(--white); }
.consultation-form>h3 { margin-bottom:5px; font-size:23px; }
.required-note { margin-bottom:19px; color:var(--muted); font-size:12px; }
.selected-area { padding:10px 12px; border-inline-start:3px solid var(--gold); background:#edf1e7; color:var(--green); font-size:13px; line-height:1.8; }
.field { min-width:0; margin-bottom:16px; }
.field label,.date-field legend { display:block; margin-bottom:6px; color:var(--ink); font-size:14px; }
.field input,.field select,.field textarea,.date-parts select { display:block; width:100%; min-width:0; min-height:47px; max-width:100%; padding:9px 11px; border:1px solid #c7cfbf; border-radius:0; background:#fcfbf6; color:var(--ink); font-size:16px; line-height:1.7; }
.field textarea { resize:vertical; }
.field input::placeholder,.field textarea::placeholder { color:#748173; opacity:1; }
.form-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.date-field { min-width:0; margin:0 0 18px; padding:0; border:0; }
.date-field legend { padding:0; }
.date-parts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border:1px solid #c7cfbf; background:#fcfbf6; }
.date-parts select { border:0; border-inline-end:1px solid #c7cfbf; background:transparent; text-align:center; padding-inline:6px; }
.date-parts select:last-child { border-inline-end:0; }
.date-parts select:focus-visible { outline-offset:-3px; }
.date-parts:has([aria-invalid="true"]) { border-color:var(--error); }
.date-parts select[aria-invalid="true"] { box-shadow:inset 0 -2px var(--error); }
.date-field small { display:block; margin-top:5px; color:var(--muted); font-size:12px; }
.field-error { margin:5px 0 0; color:var(--error); font-size:13px; line-height:1.7; }
.date-clear { min-height:36px; margin-top:3px; padding:2px 0; border:0; background:none; color:var(--green); font-size:13px; text-decoration:underline; text-underline-offset:4px; }
.form-extra { margin-bottom:18px; border-block:1px solid var(--line); }
.form-extra summary { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:48px; padding-block:10px; font-size:14px; cursor:pointer; list-style:none; }
.form-extra summary::-webkit-details-marker { display:none; }
.form-extra summary::after { content:"+"; color:var(--gold-ink); font:23px Arial,sans-serif; }
.form-extra[open] summary::after { content:"−"; }
.extra-fields-body { padding-top:8px; }
.extra-fields-body .field:last-child { margin-bottom:18px; }
.consent { display:flex; align-items:flex-start; gap:10px; margin:0 0 18px; }
.consent input { flex:0 0 auto; width:18px; height:18px; margin:4px 0 0; accent-color:var(--green); }
.consent label { font-size:13px; line-height:1.9; color:var(--muted); }
.form-submit { width:100%; }
.form-bottom { margin:10px 0 0; color:var(--muted); font-size:12px; line-height:1.8; text-align:center; }

/* Shared navigation and review dialog. */
footer { background:var(--deep); color:#ced8cb; padding-block:18px; }
.footer-inner { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px 28px; font-size:12px; }
.footer-nav { display:flex; align-items:center; flex-wrap:wrap; gap:22px; }
.footer-nav a,.privacy-link { display:inline-flex; align-items:center; min-height:44px; }
.privacy-link { border:0; background:none; color:inherit; padding:0; font-size:12px; }
.footer-nav a:hover,.privacy-link:hover { color:var(--gold); }
.floating-whatsapp { position:fixed; inset-inline-start:20px; bottom:20px; z-index:30; display:flex; align-items:center; justify-content:center; width:50px; height:50px; border:1px solid #b8a06a99; background:var(--deep); color:var(--paper); box-shadow:0 4px 18px #0002; }
.floating-whatsapp:hover { background:#1e5245; }
.mobile-contact-bar { display:none; }
dialog { width:min(620px,calc(100% - 32px)); max-height:88dvh; padding:26px 28px; overflow:auto; border:1px solid var(--gold); background:var(--paper); color:var(--ink); }
dialog::backdrop { background:#05241ed4; backdrop-filter:blur(3px); }
.dialog-top { display:flex; align-items:center; justify-content:space-between; gap:20px; padding-bottom:12px; margin-bottom:20px; border-bottom:1px solid var(--line); color:var(--gold-ink); font:12px Georgia,serif; letter-spacing:2px; }
.dialog-top button { min-width:44px; min-height:44px; padding:0; border:0; background:none; color:var(--ink); font:30px Arial,sans-serif; }
#dialog-content h2 { font-size:27px; line-height:1.6; }
#dialog-content p,#dialog-content ol { font-size:15px; line-height:1.95; }
#dialog-content p { color:var(--muted); }
#dialog-content ol { padding-inline-start:24px; }
#dialog-content li { padding-bottom:10px; }
.dialog-dismiss { min-height:44px; margin-top:8px; padding:8px 22px; border:1px solid var(--green); background:none; color:var(--green); font-size:14px; }
.review-list { margin:20px 0; border-top:1px solid var(--line); }
.review-row { display:grid; grid-template-columns:110px minmax(0,1fr); gap:16px; padding-block:11px; border-bottom:1px solid var(--line); font-size:14px; }
.review-row dt { color:var(--muted); }
.review-row dd { margin:0; white-space:pre-wrap; overflow-wrap:anywhere; }
.review-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px; }
.review-actions .dialog-dismiss { margin:0; }
.review-external-note { margin:13px 0 0; font-size:12px!important; }
html[dir="ltr"] .brand-copy strong,html[dir="ltr"] h1,html[dir="ltr"] h2 { font-family:Georgia,serif; }
html[dir="ltr"] .brand-copy strong { font-size:21px; }
html[dir="ltr"] .hero h1 { line-height:1.25; }
html[dir="ltr"] .arrow { transform:scaleX(-1); }

@media(max-width:900px) {
  .container { width:calc(100% - 48px); }
  .header-inner { gap:20px; }
  .header-inner nav { gap:20px; }
  .brand-copy small { font-size:10px; }
  .hero-grid { gap:32px; }
  .hero h1 { font-size:40px; }
  .hero-visual img { height:320px; }
  .about-grid { gap:36px; }
  .consultation-layout { gap:36px; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); }
  .consultation-form { padding:24px; }
  .contact-copy h2 { font-size:30px; }
  .contact-number { font-size:26px; }
  .form-row { grid-template-columns:1fr; gap:0; }
}
@media(max-width:760px) {
  html { scroll-padding-top:100px; }
  .header-inner { min-height:84px; }
  .brand-crop { width:55px; height:62px; }
  .brand-copy strong { font-size:20px; }
  .brand-copy small { display:none; }
  .menu-toggle { display:block; }
  .header-inner nav { position:absolute; top:100%; inset-inline:0; display:none; flex-direction:column; align-items:stretch; gap:3px; padding:12px 24px; border-bottom:1px solid #b8a06a60; background:var(--green); font-size:15px; }
  .header-inner nav.open { display:flex; }
  .hero-grid { grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:24px; padding-block:30px; }
  .hero h1 { font-size:35px; }
  .hero-visual img { height:270px; }
  .hero-buttons { gap:16px; }
  .hero-buttons .button { padding-inline:18px; }
  .hero-buttons .text-link { font-size:14px; }
  .about-grid { gap:30px; }
  .about-copy p { font-size:16px; }
  .professional-card h2 { font-size:27px; }
  .service-item { padding:21px; }
  .consultation-layout { grid-template-columns:1fr; gap:28px; }
  .contact-copy { padding-top:0; }
  .contact-copy>p:not(.section-label) { max-width:none; margin-bottom:10px; }
  .contact-number { margin:12px 0 16px; font-size:29px; }
  .form-row { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
}
@media(max-width:620px) {
  body { padding-bottom:calc(76px + env(safe-area-inset-bottom)); }
  .container { width:calc(100% - 32px); }
  .section { padding-block:38px; }
  .header-inner { gap:12px; }
  .brand { gap:8px; }
  .brand-copy strong { font-size:20px; }
  .header-actions { gap:2px; }
  .header-inner nav { padding-inline:16px; }
  .hero-grid { grid-template-columns:1fr; gap:23px; padding-block:28px; }
  .hero h1 { margin-bottom:14px; font-size:35px; line-height:1.65; }
  .eyebrow { font-size:13px; margin-bottom:10px; }
  .hero-description { margin-bottom:20px; font-size:15px; }
  .hero-buttons { gap:20px; }
  .hero-buttons .button { font-size:14px; }
  .hero-visual img { height:200px; }
  .about { padding-block:30px; }
  .about-grid { grid-template-columns:1fr; gap:20px; }
  .professional-card { padding-inline-start:18px; }
  .professional-card h2 { font-size:27px; }
  .profile-role { font-size:15px; }
  .profile-scope { font-size:13px; }
  .about-copy p { font-size:16px; }
  .section-heading { display:block; margin-bottom:20px; }
  .section-heading h2 { margin-bottom:7px; font-size:28px; }
  .section-heading p { font-size:14px; }
  .service-list { grid-template-columns:1fr; gap:12px; }
  .service-item { padding:19px 20px; gap:6px 16px; }
  .service-item h3 { font-size:20px; }
  .service-item p { font-size:14px; }
  .practice-compact { margin-top:25px; }
  .practice-grid { gap:8px; }
  .practice-choice { min-height:42px; padding:7px 11px; font-size:13px; }
  .consultation-layout { gap:24px; }
  .contact-copy h2 { font-size:30px; }
  .contact-copy>p:not(.section-label) { font-size:15px; }
  .contact-number { font-size:28px; }
  .consultation-form { padding:22px 18px; }
  .consultation-form>h3 { font-size:22px; }
  .form-row { grid-template-columns:1fr; gap:0; }
  .date-parts select { padding-inline:4px; }
  .footer-inner { gap:5px; }
  .footer-nav { gap:22px; }
  .floating-whatsapp { display:none; }
  .mobile-contact-bar { position:fixed; inset-inline:0; bottom:0; z-index:50; display:grid; grid-template-columns:minmax(0,1fr) 76px; gap:12px; padding:10px 16px calc(10px + env(safe-area-inset-bottom)); border-top:1px solid #c7cfbf; background:var(--paper); box-shadow:0 -3px 18px #0b2b2110; }
  .mobile-contact-bar .button { min-height:48px; font-size:14px; }
  .mobile-call { display:flex; align-items:center; justify-content:center; min-height:48px; color:var(--green); font-size:14px; }
  dialog { padding:20px; max-height:calc(100dvh - 28px); }
  #dialog-content h2 { font-size:24px; }
  .review-row { grid-template-columns:1fr; gap:2px; }
  .review-row dt { font-size:12px; }
  .review-actions { flex-direction:column; align-items:stretch; }
  .review-actions>* { text-align:center; }
  html[dir="ltr"] .hero h1 { font-size:38px; line-height:1.25; }
  html[dir="ltr"] .brand-copy strong { font-size:19px; }
}
@media(max-width:380px) {
  .brand-copy strong { font-size:18px; }
  .header-inner { gap:6px; }
  .hero h1 { font-size:32px; }
  .hero-buttons { gap:16px; }
  html[dir="ltr"] .brand-copy strong { font-size:17px; }
  html[dir="ltr"] .hero h1 { font-size:34px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { transition:none!important; animation:none!important; }
}
