/* DHT local partner editorial module. Autonomous, with DHT visual tokens and UI patterns. */
:root{--color-primary:#0f5f5c;--color-primary-strong:#0a4644;--color-primary-soft:#dff3ef;--color-accent:#f2a65a;--color-background:#f7f4ed;--color-surface:#fff;--color-surface-muted:#f1eee6;--color-text:#18312f;--color-text-muted:#667370;--color-border:#ddd7cb;--color-focus:#1a7f78;--font-base:"Poppins",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-heading:"Jost","Poppins",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:2.5rem;--space-8:3rem;--space-9:4rem;--space-10:5rem;--radius-md:.875rem;--radius-lg:1.25rem;--radius-xl:1.75rem;--radius-pill:999px;--shadow-sm:0 4px 14px rgba(24,49,47,.08);--shadow-md:0 14px 36px rgba(24,49,47,.14);--container:72rem;--header-height:60px}
*,*::before,*::after{box-sizing:border-box}html{min-width:320px;overflow-x:hidden;text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;min-width:320px;overflow-x:hidden;background:var(--color-background);color:var(--color-text);font-family:var(--font-base);font-size:1rem;line-height:1.6;-webkit-font-smoothing:antialiased}img,svg{max-width:100%;height:auto}a{color:inherit}:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}
.so-skip-link{position:fixed;top:var(--space-2);left:var(--space-2);z-index:999;transform:translateY(-150%);padding:var(--space-3) var(--space-4);border-radius:var(--radius-pill);background:var(--color-primary);color:#fff;font-weight:700;text-decoration:none}.so-skip-link:focus{transform:translateY(0)}.so-page .container{width:min(100%,var(--container));margin-inline:auto;padding-inline:var(--space-5)}.so-page .container.narrow{width:min(100%,48rem)}.so-page .section,.so-page .page-hero{padding-block:var(--space-8)}.so-page .section-soft{background:var(--color-surface-muted)}.so-page .eyebrow{margin:0 0 var(--space-2);color:var(--color-primary);font-size:.75rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.so-page h1,.so-page h2,.so-page h3{margin-top:0;font-family:var(--font-heading);font-weight:600}.so-page h1{max-width:none;margin-bottom:var(--space-4);font-size:clamp(2.25rem,8vw,4.5rem);line-height:1.05;letter-spacing:-.055em}.so-page h2{max-width:14ch;margin-bottom:var(--space-4);font-size:clamp(2rem,6vw,3rem);line-height:1.12;letter-spacing:-.04em}.so-page h3{margin-bottom:var(--space-2);font-size:1.125rem;line-height:1.25}.so-page p{margin-top:0}.so-page .lead{max-width:34rem;color:var(--color-text-muted);font-size:clamp(1.05rem,3vw,1.35rem);line-height:1.5}
.site-header{position:sticky;top:0;z-index:50;border-bottom:1px solid rgba(221,215,203,.72);background:rgba(247,244,237,.9);backdrop-filter:blur(16px)}.site-header__inner{display:flex;min-height:var(--header-height);align-items:center;justify-content:space-between;gap:var(--space-4);width:min(100%,var(--container));margin-inline:auto;padding-inline:var(--space-4)}.site-brand{display:inline-flex;align-items:center;gap:var(--space-2);flex-shrink:0;color:var(--color-text);font-weight:800;text-decoration:none;white-space:nowrap}.site-brand img{width:48px;height:auto}.site-header__right{display:flex;align-items:center;gap:var(--space-3)}.so-nav-details{position:relative}.so-nav-details>summary{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;padding:0;border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-text);cursor:pointer;list-style:none}.so-nav-details>summary::-webkit-details-marker{display:none}.so-nav-details>summary svg{width:20px;height:20px}.site-nav__list{position:absolute;top:calc(100% + var(--space-2));right:0;display:grid;gap:var(--space-1);min-width:210px;margin:0;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-surface);box-shadow:var(--shadow-md);list-style:none}.site-nav__list a{display:block;padding:var(--space-3) var(--space-4);border-radius:var(--radius-pill);font-weight:700;text-decoration:none}.site-nav__list a:hover,.site-nav__list a[aria-current=page]{background:var(--color-primary-soft);color:var(--color-primary-strong)}.site-header__map-cta{display:inline-flex;align-items:center;gap:var(--space-2);flex-shrink:0;min-height:44px;padding:0 var(--space-4);border:1.5px solid var(--color-primary);border-radius:var(--radius-pill);background:var(--color-primary-soft);color:var(--color-primary-strong);font-weight:700;font-size:.9rem;text-decoration:none;white-space:nowrap}.site-header__map-cta:hover{background:var(--color-primary);color:#fff}.site-header__map-cta svg{width:18px;height:18px}.so-language{display:inline-flex;align-items:center;gap:.15rem;padding:.2rem;border:1.5px solid var(--color-border);border-radius:var(--radius-pill)}.so-language a{min-width:34px;padding:.35rem .45rem;border-radius:var(--radius-pill);color:var(--color-text-muted);font-size:.78rem;font-weight:700;text-align:center;text-decoration:none}.so-language a:hover,.so-language a[aria-current=page]{background:var(--color-primary-soft);color:var(--color-primary-strong)}
.so-hero{padding-block:var(--space-6) var(--space-8)}.so-hero__grid{display:grid;gap:var(--space-6)}.so-hero__content{max-width:640px}.so-media{position:relative;min-height:260px;overflow:hidden;border-radius:var(--radius-xl);background:var(--color-surface-muted);box-shadow:var(--shadow-md)}.so-media img{display:block;width:100%;height:100%;min-height:inherit;object-fit:cover}.so-media>span{pointer-events:none}.so-story__grid,.so-recommendation__grid{display:grid;gap:var(--space-6)}.so-story__aside,.so-recommendation__aside{padding:var(--space-5);border:1px solid var(--color-primary-soft);border-radius:var(--radius-xl);background:linear-gradient(180deg,#fff,var(--color-primary-soft));box-shadow:var(--shadow-sm)}.so-quote{margin:0;color:var(--color-primary-strong);font-size:clamp(1.25rem,3vw,1.85rem);font-weight:700;line-height:1.3}.so-story__signature{margin-top:var(--space-4);color:var(--color-text-muted);font-size:.95rem}.so-territory__intro,.so-projects__intro{max-width:700px}.so-territory__features{display:grid;gap:var(--space-3);margin-top:var(--space-6)}.so-feature{padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-surface);box-shadow:var(--shadow-sm)}.so-feature strong{display:block;margin-bottom:.3rem;color:var(--color-primary-strong)}.so-feature span{color:var(--color-text-muted);font-size:.94rem}.so-projects__intro{margin-bottom:var(--space-6)}.so-project-grid{display:grid;gap:var(--space-5)}.so-project{padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-surface);box-shadow:var(--shadow-sm)}.so-project__body{padding-top:var(--space-4)}.so-project__meta{margin-bottom:var(--space-2);color:var(--color-primary);font-size:.8rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.so-project__credit{margin:var(--space-3) 0 0;color:var(--color-text-muted);font-size:.78rem}.so-partner{border:1px solid var(--color-primary-soft);border-radius:var(--radius-xl);background:linear-gradient(180deg,#fff,var(--color-primary-soft));box-shadow:var(--shadow-sm)}.so-partner__inner{padding:var(--space-6)}.so-partner h2{color:var(--color-text)}.so-partner__details{display:grid;gap:.35rem;margin:var(--space-4) 0;color:var(--color-text-muted)}.so-partner__links{display:flex;flex-wrap:wrap;gap:var(--space-3)}.so-partner__links a{display:inline-flex;min-height:48px;align-items:center;justify-content:center;padding:.85rem 1.1rem;border-radius:var(--radius-pill);font-weight:700;line-height:1.2;text-decoration:none;box-shadow:var(--shadow-sm)}.so-partner__links a:first-child{background:var(--color-primary);color:#fff}.so-partner__links a:not(:first-child){background:var(--color-primary-soft);color:var(--color-primary-strong)}.so-partner__links a:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}
.site-footer{padding-block:var(--space-6);background:var(--color-text);color:#fff}.site-footer__inner{display:grid;gap:var(--space-4);width:min(100%,var(--container));margin-inline:auto;padding-inline:var(--space-4)}.site-footer p{margin:0}.site-footer a{color:inherit}.site-footer nav{display:flex;flex-wrap:wrap;gap:var(--space-3)}.site-footer nav a{text-decoration:none}.site-footer nav a:hover{text-decoration:underline}
@media (min-width:480px){.so-page .container,.site-header__inner,.site-footer__inner{padding-inline:var(--space-5)}}@media (min-width:768px){.so-page .section,.so-page .page-hero{padding-block:var(--space-10)}.so-hero__grid{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);align-items:center}.so-hero .so-media{min-height:520px}.so-story__grid,.so-recommendation__grid{grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr);align-items:start}.so-territory__features{grid-template-columns:repeat(2,minmax(0,1fr))}.so-project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.site-footer__inner{grid-template-columns:auto 1fr;align-items:center;justify-content:space-between}.site-footer nav{justify-content:flex-end}}@media (min-width:1024px){.so-nav-details>summary{display:none}.so-nav-details:not([open]) .site-nav__list{display:flex}.site-nav__list{position:static;display:flex;gap:var(--space-2);min-width:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}.so-partner__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-6)}.so-partner__copy{max-width:620px}.so-partner__links{justify-content:flex-end}}@media (min-width:1440px){:root{--container:80rem}}@media (max-width:1023.98px){:root{--header-height:56px}.site-header__inner{padding-inline:var(--space-3);gap:var(--space-2)}.site-brand img{width:36px}.site-brand{font-size:.95rem;gap:var(--space-1)}.site-header__right{gap:var(--space-2)}.site-header__map-cta{min-height:42px;padding:0 var(--space-3);font-size:.85rem}.site-header__map-cta svg{width:16px;height:16px}.so-language a{min-width:30px;padding-inline:.35rem;font-size:.75rem}}@media (max-width:400px){.site-header__inner{padding-inline:var(--space-2);gap:var(--space-1)}.site-brand img{width:30px}.site-brand{font-size:.8rem;gap:6px}.site-header__right{gap:6px}.site-header__map-cta{min-height:40px;padding:0 var(--space-2);font-size:.78rem;gap:4px}.site-header__map-cta span{display:none}.so-language a{min-width:27px;padding-inline:.25rem;font-size:.7rem}}@media (prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto;transition-duration:.01ms;animation-duration:.01ms}}

/* Shared DHT button contract, kept local so the partner module remains autonomous. */
.so-page .button{display:inline-flex;min-height:48px;align-items:center;justify-content:center;padding:.85rem 1.1rem;border:1px solid transparent;border-radius:var(--radius-pill);font-weight:700;line-height:1.2;text-align:center;text-decoration:none;box-shadow:var(--shadow-sm);transition:transform .18s ease,box-shadow .18s ease,background .18s ease}.so-page .button-primary{background:var(--color-primary);color:#fff}.so-page .button-secondary{background:var(--color-primary-soft);color:var(--color-primary-strong)}.so-page .button:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}
/* DHT language selector pattern, implemented with native details instead of app JavaScript. */
.dht-lang-switch{position:relative;display:inline-flex;flex-shrink:0}.dht-lang-switch__trigger{display:inline-flex;align-items:center;gap:var(--space-1);min-height:44px;padding:0 var(--space-3);border:1.5px solid var(--color-border);border-radius:var(--radius-pill);background:transparent;color:var(--color-text-muted);font:700 .85rem var(--font-base);letter-spacing:.02em;cursor:pointer;white-space:nowrap;list-style:none}.dht-lang-switch__trigger::-webkit-details-marker{display:none}.dht-lang-switch__trigger:hover{border-color:var(--color-primary);color:var(--color-primary-strong)}.dht-lang-switch__globe{font-size:1rem;line-height:1}.dht-lang-switch__chevron{width:10px;height:10px;flex-shrink:0;transition:transform 160ms ease}.dht-lang-switch[open] .dht-lang-switch__chevron{transform:rotate(180deg)}.dht-lang-switch__menu{position:absolute;z-index:60;top:calc(100% + var(--space-2));right:0;min-width:168px;margin:0;padding:var(--space-1);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-md)}.dht-lang-switch__item{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);color:var(--color-text);font-size:.85rem;font-weight:600;text-align:left;text-decoration:none}.dht-lang-switch__item:hover,.dht-lang-switch__item.is-active{background:var(--color-primary-soft);color:var(--color-primary-strong)}
@media (max-width:1023.98px){.dht-lang-switch__trigger{min-height:42px;padding:0 var(--space-2);gap:4px;font-size:.8rem}}@media (max-width:400px){.dht-lang-switch__trigger{min-height:40px;padding:0 6px;gap:2px;font-size:.75rem}.dht-lang-switch__chevron{display:none}}
