@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Libre+Caslon+Display&display=swap");

:root,:root[data-theme="0"] { font-family:"DM Sans",sans-serif; color:var(--ink); background:var(--paper); --navy:#123f35; --navy-soft:#286456; --blue:#8db8a8; --blue-pale:#dcebe4; --gold:#cfb56b; --accent-text:#66520f; --accent-ink:#102a23; --cream:#f2f0e7; --paper:#faf9f4; --surface:#fff; --ink:#17312b; --heading:#123f35; --muted:#596b65; --line:#c5d3cc; --on-dark:#fff; --dark-muted:#c9d8d2; --dark-line:#65897f; --hero-accent:#367465; --hero-end:#174c40; --case-text:#3c6256; --footer:#092a23; --contact:#e7eee9; --field-border:#71847d; --danger:#8d2f2f; --focus:#006fc4; color-scheme:light; }
:root[data-theme="2"] { --navy:#0b2d26; --navy-soft:#174c40; --blue:#76a997; --blue-pale:#183f36; --gold:#d2b76d; --accent-text:#e0c77f; --accent-ink:#071d18; --cream:#152c27; --paper:#0c1815; --surface:#12231f; --ink:#edf3f0; --heading:#edf3f0; --muted:#adbbb6; --line:#496159; --on-dark:#f7faf8; --dark-muted:#c3d2cd; --dark-line:#5d7c72; --hero-accent:#1d5749; --hero-end:#0f3a31; --case-text:#c5d8d1; --footer:#06110e; --contact:#112620; --field-border:#70877f; --danger:#ffaaaa; --focus:#ffd86a; color-scheme:dark; }
:root { --content-width:1180px; --content-gutter:max(5vw,calc((100% - var(--content-width))/2)); --section-space:clamp(3rem,7vw,6rem); --layout-gap:clamp(2rem,5vw,5rem); }
* { box-sizing:border-box; }
ul { list-style-type:square; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); }
a { color:inherit; }
h1,h2,h3 { font-family:"Libre Caslon Display",Georgia,serif; font-weight:400; }
p { line-height:1.7; }
.skip-link { position:fixed; z-index:1000; top:.75rem; left:.75rem; padding:.8rem 1rem; color:#101c27; background:#fff; border:3px solid var(--focus); font-weight:700; transform:translateY(-160%); }
.skip-link:focus { transform:translateY(0); }
:focus-visible { outline:3px solid var(--focus); outline-offset:3px; }
main:focus { outline:none; }
.site-header { position:relative; z-index:20; display:flex; align-items:center; justify-content:space-between; padding:1.25rem max(5vw,1.5rem); background:var(--navy); color:var(--on-dark); }
.brand { display:flex; align-items:center; gap:.8rem; text-decoration:none; }
.brand-mark { display:grid; place-items:center; width:2.7rem; height:2.7rem; border:1px solid var(--gold); font-family:Georgia,serif; color:var(--gold); }
.brand strong,.brand small { display:block; }
.brand strong { font-family:Georgia,serif; font-size:1.05rem; letter-spacing:.02em; }
.brand small { margin-top:.18rem; color:var(--dark-muted); font-size:.66rem; text-transform:uppercase; letter-spacing:.12em; }
.site-header nav { display:flex; align-items:center; gap:2rem; }
.site-header nav a { text-decoration:none; font-size:.88rem; }
.nav-cta { border:1px solid var(--dark-line); padding:.7rem 1rem; }
.hero { position:relative; z-index:2; min-height:700px; display:grid; grid-template-columns:minmax(0,1.05fr) minmax(380px,.95fr); align-items:center; overflow:visible; background:var(--navy); color:var(--on-dark); padding:4.5rem max(5vw,1.5rem) 0; }
.hero-copy { position:relative; z-index:3; max-width:720px; padding-bottom:5rem; }
.eyebrow,.category-label { color:var(--accent-text); font-weight:700; text-transform:uppercase; letter-spacing:.15em; font-size:.72rem; }
.hero .eyebrow,.approach-section .eyebrow,.scenario-section .eyebrow,.news-card:not(.category-case) .category-label { color:var(--gold); }
.hero h1 { max-width:760px; margin:.3em 0; font-size:clamp(3.7rem,7vw,7.4rem); letter-spacing:-.055em; line-height:.92; }
.hero-lead { max-width:590px; color:var(--dark-muted); font-size:1.15rem; }
.hero-actions { display:flex; align-items:center; gap:1.8rem; margin-top:2rem; }
.button { display:inline-block; padding:.95rem 1.35rem; text-decoration:none; font-weight:700; }
.button-gold { background:var(--gold); color:#101c27; }
.button-whatsapp { border:1px solid var(--heading); color:var(--heading); background:transparent; }
.text-link { text-decoration:none; font-weight:700; }
.text-link span { margin-left:.4rem; color:var(--gold); }
.reassurance { color:var(--dark-muted); font-size:.78rem; letter-spacing:.03em; }
.hero-portrait { position:relative; align-self:stretch; min-height:640px; display:flex; align-items:end; justify-content:center; }
.hero-portrait::before { content:""; position:absolute; inset:13% 0 0 10%; background:linear-gradient(145deg,var(--hero-accent),var(--hero-end)); clip-path:polygon(16% 0,100% 0,100% 100%,0 100%,0 20%); }
.portrait-halo { position:absolute; z-index:1; width:min(76%,470px); height:62%; top:8%; right:2%; border-top:1px solid color-mix(in srgb,var(--gold) 65%,transparent); border-right:1px solid color-mix(in srgb,var(--gold) 42%,transparent); transform:skewY(-7deg); transform-origin:top right; }
.portrait-halo::after { content:""; position:absolute; width:42%; height:34%; right:10%; bottom:8%; background:color-mix(in srgb,var(--gold) 10%,transparent); clip-path:polygon(30% 0,100% 0,70% 100%,0 100%); }
.hero-portrait img { position:relative; z-index:3; width:min(108%,690px); max-height:730px; object-fit:contain; object-position:bottom; transform:translateY(30px); filter:saturate(.85) contrast(1.04) drop-shadow(0 24px 24px rgba(0,0,0,.28)); }
.portrait-card { position:absolute; z-index:4; left:0; bottom:4rem; display:flex; flex-direction:column; padding:1rem 1.4rem; color:var(--heading); background:var(--paper); box-shadow:0 15px 40px rgba(0,0,0,.2); }
.portrait-card strong { font-family:Georgia,serif; font-size:1.1rem; }
.portrait-card span { margin-top:.2rem; color:var(--muted); font-size:.72rem; text-transform:uppercase; letter-spacing:.12em; }
.trust-strip { position:relative; z-index:1; display:grid; grid-template-columns:repeat(4,1fr); min-height:116px; border-bottom:1px solid var(--line); background:var(--surface); padding:0 max(5vw,1.5rem); }
.trust-strip div { display:flex; flex-direction:column; justify-content:center; padding:1.6rem 1.8rem; border-left:1px solid var(--line); }
.trust-strip div:last-child { border-right:1px solid var(--line); }
.trust-strip strong,.trust-strip span { display:block; }
.trust-strip strong { font-family:Georgia,serif; color:var(--heading); }
.trust-strip span { margin-top:.3rem; color:var(--muted); font-size:.75rem; }
.section,.page-shell { width:min(var(--content-width),90vw); margin:0 auto; padding:var(--section-space) 0; }
.section-heading { max-width:670px; }
.section-heading h2,.about-copy h2,.contact-section h2 { margin:.35em 0; color:var(--heading); font-size:clamp(2.5rem,5vw,4.7rem); line-height:1.02; letter-spacing:-.035em; }
.intro-section { display:grid; grid-template-columns:1.2fr .8fr; column-gap:var(--layout-gap); }
.section-copy { padding-top:2rem; color:var(--muted); font-size:1.08rem; }
.expertise-grid { grid-column:1/-1; display:grid; grid-template-columns:repeat(2,1fr); margin-top:3rem; border-top:1px solid var(--line); border-left:1px solid var(--line); }
.expertise-card { min-height:290px; padding:2.2rem; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.expertise-card>span { color:var(--accent-text); font-size:.72rem; }
.expertise-card h3 { margin:2.2rem 0 .4rem; color:var(--heading); font-size:2rem; }
.expertise-card p { max-width:52ch; color:var(--muted); }
.expertise-card a { color:var(--heading); font-weight:700; text-decoration:none; }
.expertise-card.featured { background:var(--navy); color:var(--on-dark); }
.expertise-card.featured h3,.expertise-card.featured a { color:var(--on-dark); }
.expertise-card.featured>span { color:var(--gold); }
.expertise-card.featured p { color:var(--dark-muted); }
.approach-section { width:100%; max-width:none; padding:var(--section-space) var(--content-gutter); background:var(--navy); color:var(--on-dark); }
.section-heading.light h2 { color:var(--on-dark); }
.steps { list-style:none; padding:0; margin:4rem 0 0; border-top:1px solid var(--dark-line); }
.steps li { display:grid; grid-template-columns:100px 1fr; gap:2rem; padding:2rem 0; border-bottom:1px solid var(--dark-line); }
.steps li>span { color:var(--gold); }
.steps h3 { margin:0; font-size:1.7rem; }
.steps p { margin-bottom:0; color:var(--dark-muted); }
.about-section { display:grid; grid-template-columns:.75fr 1.25fr; gap:var(--layout-gap); align-items:start; }
.about-number { color:var(--blue-pale); font-family:Georgia,serif; font-size:clamp(7rem,18vw,15rem); line-height:.8; writing-mode:vertical-rl; }
.about-copy p { color:var(--muted); font-size:1.03rem; }
.credentials { display:grid; grid-template-columns:1fr 1fr; padding:0; margin-top:2.5rem; list-style:square inside; border-top:1px solid var(--line); }
.credentials li { padding:1rem 0; border-bottom:1px solid var(--line); font-size:.86rem; }
.scenario-section { padding:var(--section-space) var(--content-gutter); background:var(--navy); color:var(--on-dark); }
.scenario-section .section-heading>p:last-child { max-width:720px; color:var(--dark-muted); }
.scenario-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1px; margin-top:4rem; background:var(--dark-line); border:1px solid var(--dark-line); }
.scenario-card { min-height:390px; padding:2.5rem; background:var(--navy); }
.scenario-card h3 { margin:1.5rem 0 .8rem; font-size:2rem; }
.scenario-card>p:not(.category-label),.scenario-approach p { color:var(--dark-muted); }
.scenario-approach { margin:2rem 0; padding-top:1.2rem; border-top:1px solid var(--dark-line); }
.scenario-approach strong { color:var(--gold); font-size:.75rem; text-transform:uppercase; letter-spacing:.1em; }
.scenario-card>a { color:var(--on-dark); font-weight:700; text-decoration:none; }
.news-preview>.text-link { float:right; margin-top:-3rem; }
.news-grid { clear:both; display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; margin-top:3rem; }
.news-card { position:relative; min-height:320px; padding:2rem; background:var(--navy); color:var(--on-dark); border-top:6px solid var(--navy-soft); }
.news-card-image { display:block; width:calc(100% + 4rem); height:180px; margin:-2rem -2rem 0; object-fit:cover; }
.news-card.category-case { background:var(--blue-pale); color:var(--heading); border-top-color:var(--blue); }
.news-card h2,.news-card h3 { margin:2rem 0 .8rem; font-size:1.75rem; line-height:1.15; }
.news-card h2 a,.news-card h3 a { text-decoration:none; }
.news-card p:not(.category-label) { color:var(--dark-muted); }
.news-card.category-case p:not(.category-label) { color:var(--case-text); }
.news-card time { display:block; margin-top:1.5rem; color:inherit; opacity:.65; font-size:.76rem; }
.read-more { position:absolute; bottom:2rem; text-decoration:none; font-weight:700; font-size:.85rem; }
.contact-section { display:grid; grid-template-columns:1.4fr .6fr; gap:var(--layout-gap); align-items:center; padding:var(--section-space) var(--content-gutter); background:var(--contact); }
.contact-section h2 { max-width:780px; }
.contact-section p { color:var(--muted); }
.contact-actions { display:flex; flex-direction:column; align-items:start; gap:1rem; }
.contact-actions>a:not(.button) { color:var(--heading); font-family:Georgia,serif; font-size:1.5rem; text-decoration:none; }
.contact-actions span { color:var(--muted); font-size:.85rem; }
.page-shell { min-height:70vh; }
.news-index>h1,.article>h1 { max-width:900px; margin:.35em 0; color:var(--heading); font-size:clamp(3.4rem,7vw,6.5rem); line-height:.95; letter-spacing:-.05em; }
.lead { max-width:760px; color:var(--muted); font-family:Georgia,serif; font-size:1.35rem; line-height:1.55; }
.category-filter { display:flex; gap:.7rem; margin-top:2.5rem; }
.category-filter a { padding:.65rem 1rem; border:1px solid var(--line); text-decoration:none; font-size:.8rem; }
.category-filter a.active { color:var(--on-dark); background:var(--navy); }
.category-filter a.active.case { color:var(--accent-ink); background:var(--blue); }
.topic-filter { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:1rem; }
.topic-filter a { padding:.45rem .75rem; color:var(--muted); border-bottom:1px solid var(--line); text-decoration:none; font-size:.75rem; }
.topic-filter a.active { color:var(--heading); border-bottom-color:var(--gold); font-weight:700; }
.news-search { max-width:760px; margin-top:2.5rem; }
.news-search>label { display:block; margin-bottom:.5rem; color:var(--heading); font-weight:700; font-size:.82rem; }
.news-search>div { display:flex; }
.news-search input { min-width:0; flex:1; padding:.85rem 1rem; border:1px solid var(--line); background:var(--surface); color:var(--ink); font:inherit; }
.news-search button { padding:.85rem 1.3rem; border:0; background:var(--navy); color:var(--on-dark); font:inherit; font-weight:700; cursor:pointer; }
.pagination { display:flex; align-items:center; justify-content:center; gap:1.5rem; margin-top:3rem; }
.pagination a { color:var(--heading); font-weight:700; text-decoration:none; }
.pagination span { color:var(--muted); font-size:.82rem; }
.news-grid-wide { grid-template-columns:repeat(2,1fr); }
.news-grid-wide .news-card { min-height:390px; }
.category-label time { display:inline; margin-left:.7rem; }
.breadcrumbs { display:flex; flex-wrap:wrap; gap:.6rem; color:var(--muted); font-size:.78rem; }
.breadcrumbs a { text-decoration:none; }
.article { max-width:920px; }
.article-meta { display:flex; flex-wrap:wrap; gap:1rem 2rem; padding:1.2rem 0; margin:2rem 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); color:var(--muted); font-size:.78rem; }
.article-image { width:100%; height:auto; margin:1rem 0 3rem; }
.article-body { max-width:760px; font-family:Georgia,serif; font-size:1.15rem; line-height:1.8; }
.article-body h2,.article-body h3 { margin-top:2em; color:var(--heading); }
.article-body a,.legal-note a,.contact-intro p a { text-decoration:underline; text-decoration-thickness:.1em; text-underline-offset:.18em; }
.inline-contact { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(250px,.75fr); gap:3rem; align-items:center; margin:4rem 0; padding:2.5rem; border-left:5px solid var(--gold); background:var(--contact); }
.inline-contact h2 { margin:.3rem 0 .6rem; color:var(--heading); font-size:clamp(1.8rem,3vw,2.6rem); line-height:1.1; }
.inline-contact p:last-child { margin-bottom:0; color:var(--muted); }
.inline-contact-actions { display:flex; flex-wrap:wrap; gap:.8rem; align-items:center; }
.button-outline { border:1px solid var(--heading); color:var(--heading); background:transparent; }
.inline-contact-whatsapp { padding:.6rem .2rem; color:var(--heading); font-weight:700; text-underline-offset:.2em; }
.article-body img { max-width:100%; height:auto; }
.article-source a { font-weight:700; }
.legal-note { max-width:760px; margin:3rem 0; padding:1.5rem; border-left:4px solid var(--gold); background:var(--cream); }
.legal-note p { margin-bottom:0; color:var(--muted); }
.article-cta { margin-top:4rem; padding:3rem; background:var(--navy); color:var(--on-dark); }
.article-cta h2 { margin:0; font-size:2.5rem; }
.article-cta p { color:var(--dark-muted); }
.practice-index>h1,.practice-detail h1 { max-width:920px; margin:.35em 0; color:var(--heading); font-size:clamp(3.4rem,7vw,6.5rem); line-height:.95; letter-spacing:-.05em; }
.practice-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1px; margin-top:4rem; background:var(--line); border:1px solid var(--line); }
.practice-card { min-height:320px; padding:2.5rem; background:var(--paper); }
.practice-card h2 { margin:1.5rem 0 .8rem; color:var(--heading); font-size:2.2rem; }
.practice-card h2 a { text-decoration:none; }
.practice-card p:not(.category-label) { color:var(--muted); }
.practice-hero { max-width:900px; padding:4rem 0 6rem; }
.practice-hero .button { margin-top:1.5rem; }
.practice-content { display:grid; grid-template-columns:repeat(3,1fr); gap:3rem; padding:var(--section-space) 0; border-top:1px solid var(--line); }
.practice-content h2,.practice-faq h2,.related-news>h2 { color:var(--heading); font-size:clamp(2rem,3vw,3rem); }
.practice-content .rich-text { color:var(--muted); }
.practice-content li { margin:.7rem 0; line-height:1.6; }
.practice-faq,.related-news { padding:var(--section-space) 0; border-top:1px solid var(--line); }
.practice-faq details { max-width:850px; padding:1.2rem 0; border-bottom:1px solid var(--line); }
.practice-faq summary { cursor:pointer; color:var(--heading); font-family:Georgia,serif; font-size:1.25rem; }
.practice-faq details p { color:var(--muted); }
.site-faq { display:grid; grid-template-columns:.8fr 1.2fr; gap:var(--layout-gap); border-top:1px solid var(--line); }
.faq-list details { padding:1.3rem 0; border-bottom:1px solid var(--line); }
.faq-list summary { cursor:pointer; color:var(--heading); font-family:Georgia,serif; font-size:1.3rem; line-height:1.35; }
.faq-list details p { color:var(--muted); }
.article-practice-link { margin:2rem 0; padding:1.2rem; background:var(--blue-pale); }
.article-practice-link a { color:var(--heading); font-weight:700; }
.related-articles { margin-top:5rem; padding-top:4rem; border-top:1px solid var(--line); }
.related-articles>h2 { color:var(--heading); font-size:clamp(2.2rem,4vw,3.5rem); }
.contact-page { display:grid; grid-template-columns:.85fr 1.15fr; gap:var(--layout-gap); align-items:start; }
.contact-intro h1,.confirmation-page h1 { margin:.35em 0; color:var(--heading); font-size:clamp(3.4rem,7vw,6rem); line-height:.95; letter-spacing:-.05em; }
.contact-form { padding:2.5rem; background:var(--surface); border:1px solid var(--line); }
.form-field { margin-bottom:1.4rem; }
.form-field>label:not(.checkbox-label) { display:block; margin-bottom:.45rem; color:var(--heading); font-weight:700; font-size:.85rem; }
.form-field input:not([type=checkbox]),.form-field select,.form-field textarea { width:100%; padding:.85rem; border:1px solid var(--field-border); background:var(--paper); color:var(--ink); font:inherit; }
.form-field textarea { resize:vertical; }
.form-field input:focus-visible,.form-field select:focus-visible,.form-field textarea:focus-visible { border-color:var(--focus); }
.form-field small { display:block; margin-top:.4rem; color:var(--muted); }
.checkbox-label { display:flex; gap:.7rem; align-items:start; line-height:1.5; }
.checkbox-label input { margin-top:.3rem; }
.field-errors,.form-errors { margin:.5rem 0; color:var(--danger); font-size:.85rem; }
.field-errors ul,.form-errors ul { margin:.4rem 0; padding-left:1.2rem; }
.has-error input,.has-error select,.has-error textarea { border-color:var(--danger); }
.site-footer { display:grid; grid-template-columns:repeat(3,1fr); gap:3rem; padding:4rem var(--content-gutter); background:var(--footer); color:var(--on-dark); }
.site-footer>div { display:flex; flex-direction:column; align-items:start; gap:.6rem; }
.site-footer a { text-decoration:none; }
.site-footer p { margin:0; color:var(--dark-muted); font-size:.75rem; }
@media (max-width:900px) { .site-header nav a:not(.nav-cta):not(.nav-home){display:none}.hero{grid-template-columns:1fr;padding-top:5rem}.hero-copy{padding-bottom:1rem}.hero-portrait{min-height:500px}.hero-portrait img{transform:translateY(38px)}.trust-strip{grid-template-columns:1fr 1fr}.intro-section,.about-section,.contact-section,.contact-page,.site-faq,.inline-contact{grid-template-columns:1fr}.section-copy{padding-top:0}.about-number{display:none}.news-grid,.practice-grid,.practice-content,.scenario-grid{grid-template-columns:1fr}.site-footer{grid-template-columns:1fr} }
@media (max-width:560px) { .brand small{display:none}.hero h1{font-size:3.6rem}.hero-actions{align-items:start;flex-direction:column}.hero-portrait{min-height:400px}.portrait-card{bottom:1rem}.trust-strip,.expertise-grid,.credentials{grid-template-columns:1fr}.trust-strip div{border-right:1px solid var(--line)}.section:not(.approach-section){padding:var(--section-space) 0}.news-preview>.text-link{float:none;display:inline-block;margin-top:0}.steps li{grid-template-columns:45px 1fr;gap:1rem} }
.about-page { padding-top:3rem; }
.about-profile { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); gap:3rem; align-items:center; padding:3rem 0 5rem; }
.about-profile h1 { color:var(--heading); font-size:clamp(2.8rem,6vw,5.8rem); line-height:1.05; letter-spacing:-.04em; margin:.4em 0; overflow-wrap:anywhere; }
.about-profile .button { margin-top:1rem; }
.about-profile-portrait { position:relative; align-self:end; background:linear-gradient(145deg,var(--hero-accent),var(--hero-end)); border-bottom:5px solid var(--gold); }
.about-profile-portrait::before { content:""; position:absolute; inset:1rem; border:1px solid var(--gold); }
.about-profile-portrait img { position:relative; display:block; width:100%; height:auto; }
.about-editorial { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.2fr); gap:clamp(2rem,6vw,6rem); padding:var(--section-space) 0; border-top:1px solid var(--line); }
.about-page h2 { color:var(--heading); font-size:clamp(2rem,4vw,3.5rem); line-height:1.15; margin:.3em 0 .7em; }
.about-prose { color:var(--muted); font-size:1.1rem; }
.about-prose .rich-text>p:first-child { margin-top:0; }
.about-education { padding:3rem clamp(1rem,4vw,3rem); background:var(--cream); }
.qualification-cards ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; padding:0; list-style:none; }
.qualification-cards li { padding:1.8rem; border-top:3px solid var(--gold); background:var(--surface); color:var(--heading); font-family:Georgia,serif; font-size:1.2rem; line-height:1.6; overflow-wrap:anywhere; }
.qualification-cards li::before { content:""; display:block; width:.5rem; height:.5rem; margin-bottom:1.5rem; background:var(--heading); }
.about-method { border-top:0; }
.about-languages { border-left:3px solid var(--gold); padding-left:1.5rem; margin-top:2rem; }
.about-languages h3 { color:var(--heading); margin:0; font-size:1.5rem; }
.about-languages p { margin-bottom:0; }
@media (max-width:700px) { .about-profile,.about-editorial{grid-template-columns:1fr;gap:2rem}.about-profile-portrait{width:min(100%,380px);justify-self:center}.qualification-cards ul{grid-template-columns:1fr}.about-editorial{padding:3rem 0} }
@media (prefers-reduced-motion:reduce) { html{scroll-behavior:auto}.skip-link{transition:none} }
@media (forced-colors:active) { .button,.nav-cta,.category-filter a,.news-search input,.contact-form{border:1px solid CanvasText}.skip-link{border:3px solid CanvasText} }

.theme-toggle { padding:.7rem 1rem; border:1px solid var(--dark-line); background:transparent; color:var(--on-dark); font:inherit; font-size:.8rem; cursor:pointer; }
.theme-toggle[aria-pressed="true"] { border-color:var(--gold); background:var(--gold); color:var(--accent-ink); }
.site-footer>div { min-width:0; }
.site-footer a { overflow-wrap:anywhere; }
.contact-email { overflow-wrap:anywhere; }
@media (max-width:560px) { .site-header{flex-wrap:wrap;gap:1rem}.site-header nav{gap:.75rem;flex-wrap:wrap}.category-filter{flex-wrap:wrap}.contact-form,.inline-contact{padding:1.5rem}.hero-portrait img{max-width:100%} }
.theme-toggle { width:44px; height:44px; padding:0; display:inline-grid; place-items:center; }
.theme-toggle[hidden] { display:none; }
.theme-icon-sun { display:none; }
.theme-toggle[aria-pressed="true"] .theme-icon-moon { display:none; }
.theme-toggle[aria-pressed="true"] .theme-icon-sun { display:block; }
