:root{--ui-bg:#f7f4f2;--ui-surface:#fffdfb;--ui-elevated:#ffffff;--ui-text:#25283b;--ui-muted:#626070;--ui-border:#ded7d8;--ui-control-border:#8b8290;--ui-accent:#813b52;--ui-button:#75354b;--ui-button-text:#ffffff;--ui-hover:#f2e6e9;--ui-shadow:0 12px 36px #2922370a;--ui-overlay:#19172480;--motion-fast:160ms;--motion-normal:320ms;--motion-slow:1000ms;--ease-premium:cubic-bezier(.22,1,.36,1);--header-height:88px;color-scheme:light}
:root.dark{--ui-bg:#151620;--ui-surface:#1e1f2c;--ui-elevated:#272837;--ui-text:#f6f0eb;--ui-muted:#bcb8c5;--ui-border:#3d3b4c;--ui-control-border:#817b8d;--ui-accent:#e6b1c0;--ui-button:#e6b1c0;--ui-button-text:#241923;--ui-hover:#332836;--ui-shadow:0 16px 40px #00000026;--ui-overlay:#080a11b8;color-scheme:dark}
body[data-agency-shell]{--background:var(--ui-bg);--foreground:var(--ui-text);--card:var(--ui-surface);--muted-foreground:var(--ui-muted);--border:var(--ui-border);background:var(--ui-bg);color:var(--ui-text)}
body[data-agency-shell]>.min-h-dvh{padding:0;background:var(--ui-bg)}body[data-agency-shell]>.min-h-dvh>div{overflow:clip;border:0;border-radius:0;background:var(--ui-bg);box-shadow:none}body[data-agency-shell] .bg-glow{display:none}body[data-agency-shell] .safe-area-y{padding-top:0}body[data-agency-shell=wide]>.min-h-dvh>div{max-width:1440px;width:100%}body[data-agency-shell=compact]>.min-h-dvh>div{max-width:520px}body[data-agency-shell] .glass-strong{background:var(--ui-surface);border-color:var(--ui-border);backdrop-filter:none}body[data-agency-shell] .text-blush{color:var(--ui-accent)}
.agency-icon{display:inline-block;vertical-align:middle;flex-shrink:0;width:24px;height:24px}.agency-header{position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px clamp(20px,4vw,64px);height:var(--header-height);background:var(--ui-bg);border-bottom:1px solid transparent;transition:background var(--motion-normal),box-shadow var(--motion-normal),border-color var(--motion-normal)}.agency-header.is-scrolled{background:var(--ui-surface);border-color:var(--ui-border);box-shadow:var(--ui-shadow)}.agency-brand{display:flex;gap:12px;align-items:center;flex-shrink:0}.agency-brand img{border-radius:14px}.agency-brand strong{display:block;font-size:23px;font-weight:800;line-height:1.25}.agency-brand small{display:block;font-size:12px;line-height:1.7;color:var(--ui-muted)}.agency-desktop-nav{display:none;align-items:center;gap:26px}.agency-desktop-nav a{font-size:15px;font-weight:500;position:relative;padding:12px 0;white-space:nowrap}.agency-desktop-nav a:after{content:'';height:2px;position:absolute;bottom:3px;right:0;left:100%;background:var(--ui-accent);transition:left var(--motion-normal)}.agency-desktop-nav a[aria-current]:after,.agency-desktop-nav a:hover:after{left:0}.agency-desktop-nav a[aria-current]{color:var(--ui-accent)}.agency-tools{display:flex;align-items:center;gap:10px}.agency-icon-button{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--ui-border);border-radius:50%;background:transparent;color:var(--ui-text);cursor:pointer;transition:background var(--motion-fast),transform var(--motion-normal)}.agency-icon-button:hover{background:var(--ui-hover)}.agency-header-cta{display:none;align-items:center;gap:12px;background:var(--ui-button);color:var(--ui-button-text);padding:12px 20px;border-radius:100px;font-size:14px;white-space:nowrap;min-height:44px}.agency-header-cta svg{width:18px;height:18px}.theme-sun,.dark .theme-moon{display:none}.dark .theme-sun{display:block}.agency-button{display:inline-flex;justify-content:center;align-items:center;gap:14px;min-height:50px;padding:14px 24px;border-radius:100px;background:var(--ui-button);color:var(--ui-button-text);font-size:16px;font-weight:700;transition:transform var(--motion-normal),background var(--motion-normal)}.agency-button:hover{transform:translateY(-2px)}
.agency-menu{position:fixed;inset:0 0 0 auto;margin:0;width:min(100%,420px);height:100dvh;max-height:100dvh;max-width:100%;padding:24px 24px max(24px,env(safe-area-inset-bottom));background:var(--ui-surface);color:var(--ui-text);border:0;overflow:auto;box-shadow:var(--ui-shadow)}.agency-menu::backdrop{background:var(--ui-overlay);backdrop-filter:blur(3px)}.agency-menu[open]{animation:menu-enter var(--motion-normal) var(--ease-premium)}@keyframes menu-enter{from{opacity:0;transform:translateX(30px)}to{opacity:1;transform:translateX(0)}}.agency-menu-top{display:flex;align-items:center;justify-content:space-between;padding-bottom:24px;border-bottom:1px solid var(--ui-border);font-size:24px;font-weight:700}.agency-menu nav{display:grid;margin:20px 0}.agency-menu nav a{display:flex;align-items:center;gap:18px;padding:17px 12px;border-radius:12px;font-size:20px}.agency-menu nav a[aria-current]{background:var(--ui-hover);color:var(--ui-accent)}.agency-menu-secondary{display:grid;gap:4px;border-top:1px solid var(--ui-border);padding:18px 0}.agency-menu-secondary a{padding:10px 12px;min-height:44px;color:var(--ui-muted)}.agency-menu .agency-button{width:100%}body.agency-menu-open{overflow:hidden}.agency-skip{position:fixed;top:8px;right:8px;transform:translateY(-200%);padding:12px 20px;z-index:100;background:var(--ui-button);color:var(--ui-button-text);border-radius:8px}.agency-skip:focus{transform:none}body[data-agency-shell] :focus-visible{outline:3px solid var(--ui-accent);outline-offset:4px}.theme-changing body,.theme-changing .agency-header,.theme-changing .glass-strong,.theme-changing .agency-menu{transition:background-color var(--motion-normal),color var(--motion-normal),border-color var(--motion-normal)}
body[data-admin] .admin-tabs{top:var(--header-height)}body[data-admin] #admin-status{top:calc(var(--header-height) + 4.3rem)}
@media(min-width:1000px){body[data-agency-shell=wide] .agency-desktop-nav{display:flex}body[data-agency-shell=wide] .agency-menu-open{display:none}body[data-agency-shell=wide] .agency-header-cta{display:inline-flex}body[data-agency-shell=wide] nav.fixed{display:none}body[data-agency-shell=wide] main{padding-bottom:48px!important}}
@media(max-width:599px){:root{--header-height:78px}.agency-header{padding:14px 20px;gap:12px}.agency-brand{gap:9px}.agency-brand img{width:42px;height:42px}.agency-brand strong{font-size:21px}.agency-brand small{font-size:11px}.agency-tools{gap:7px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}.agency-menu[open]{animation:none}.agency-button:hover{transform:none}*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
/* One navigation/icon system for all public and management routes. */
body[data-agency-shell] .agency-bottom-nav{display:flex;gap:3px;align-items:center;justify-content:space-between;position:fixed;bottom:max(12px,env(safe-area-inset-bottom));inset-inline:0;z-index:35;width:min(calc(100% - 32px),460px);margin:auto;padding:7px;background:var(--ui-elevated);border:1px solid var(--ui-border);border-radius:24px;box-shadow:0 8px 32px #15162015}body[data-agency-shell] .agency-bottom-nav a{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:54px;color:var(--ui-muted);border-radius:17px;padding:6px 2px;transition:color var(--motion-fast),background var(--motion-fast)}body[data-agency-shell] .agency-bottom-nav a[aria-current]{color:var(--ui-accent);background:var(--ui-hover)}.agency-bottom-nav .agency-icon{width:21px;height:21px}body[data-agency-shell] .agency-bottom-nav span{font-size:13px!important;font-weight:500}.home-service-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;border:1px solid var(--ui-border);border-radius:14px;background:var(--ui-bg);transition:transform var(--motion-normal),background var(--motion-normal)}.home-service-icon svg{width:24px;height:24px}.home-service:hover .home-service-icon{transform:translateY(-2px);background:var(--ui-surface)}.service-detail-icon{display:inline-flex;padding:12px;border-radius:14px;background:var(--ui-hover);color:var(--ui-accent);margin-bottom:16px}.campaign-back,.campaign-text-link,.campaign-pager button,.focus-controls button,.focus-header [data-close],.portfolio-view{display:inline-flex;align-items:center;gap:10px}.campaign-back .agency-icon,.campaign-text-link .agency-icon,.campaign-pager .agency-icon,.focus-controls .agency-icon,.focus-header .agency-icon,.portfolio-view .agency-icon{width:19px;height:19px}.campaign-open{display:flex;align-items:center;justify-content:center}.campaign-zoom-hint .agency-icon{width:16px;height:16px}.campaign-next-project>.agency-icon{grid-column:2;grid-row:1 / 3}.campaign-mode-hint{color:var(--ui-muted)}body[data-agency-shell] .bg-cta{background:var(--ui-button);color:var(--ui-button-text);box-shadow:none}body[data-agency-shell] .shadow-glow{box-shadow:none}
@media(min-width:1000px){body[data-agency-shell=wide] .agency-bottom-nav{display:none}}
.agency-final-cta{margin:40px clamp(20px,4vw,64px) 0;padding:70px 32px;background:#592c40;color:#fff8f4;border-radius:20px;text-align:center}.agency-final-cta h2{font-size:clamp(32px,4vw,52px);font-weight:700;line-height:1.4;margin:12px 0 16px}.agency-final-cta p{font-size:17px;line-height:1.8;color:#f0dfe5}.agency-final-cta>p:first-child{font-size:13px}.agency-final-cta .agency-button{background:#f4e6e9;color:#522c3c;margin-top:28px}.dark .agency-final-cta{background:#332333;border:1px solid #5a3f51}.agency-final-cta .agency-icon{width:22px;height:22px}.agency-footer{padding:76px clamp(20px,4vw,64px) 28px;background:var(--ui-bg)}.agency-footer-grid{display:grid;grid-template-columns:1.3fr .8fr 1fr;gap:64px}.agency-footer h2{font-size:16px;font-weight:700;line-height:1.8;margin-bottom:16px}.agency-footer p{font-size:15px;color:var(--ui-muted);line-height:1.9}.agency-footer-brand>p{margin-top:20px;max-width:310px}.agency-footer nav{display:grid;gap:0}.agency-footer nav a{color:var(--ui-muted);font-size:15px;min-height:38px;display:flex;align-items:center;width:fit-content;transition:color var(--motion-fast)}.agency-footer a:hover{color:var(--ui-accent)}.agency-footer .agency-contact-link{display:flex;align-items:center;gap:12px;margin-top:20px;padding:14px 0;border-top:1px solid var(--ui-border)}.agency-contact-link>.agency-icon{width:18px;height:18px;margin-right:auto}.agency-contact-link .agency-icon-button{flex-shrink:0;background:var(--ui-surface);color:var(--ui-accent)}.agency-contact-link>span>span{font-size:13px;color:var(--ui-muted);display:block}.agency-contact-link bdi{font-family:'Plus Jakarta Sans',sans-serif;font-size:14px;display:block;line-height:1.8;white-space:nowrap}.agency-footer-bottom{border-top:1px solid var(--ui-border);margin-top:48px;padding-top:24px;display:flex;align-items:center;justify-content:space-between;gap:24px}.agency-footer-bottom p{font-size:13px}.agency-footer-bottom>div{display:flex;gap:20px}.agency-footer-bottom a{font-size:13px;color:var(--ui-muted);min-height:44px;display:flex;align-items:center}.agency-footer .agency-brand{width:fit-content}body[data-agency-shell=compact] .agency-footer-grid{grid-template-columns:1fr;gap:30px}body[data-agency-shell=compact] .agency-footer{padding:44px 24px 120px}body[data-agency-shell=compact] .agency-footer-bottom{display:block}body[data-agency-shell=compact] .agency-footer-bottom>div{margin-top:10px}body[data-agency-shell=compact] .agency-footer nav{grid-template-columns:1fr 1fr}body[data-agency-shell=compact] main{padding-bottom:32px!important}body[data-admin] main{padding-bottom:calc(7.5rem + env(safe-area-inset-bottom))!important}
@media(max-width:999px){.agency-footer-grid{gap:28px}.agency-footer{padding-bottom:calc(110px + env(safe-area-inset-bottom))}.agency-footer-contact{min-width:0}}
@media(max-width:699px){.agency-final-cta{padding:46px 24px;margin-top:24px}.agency-final-cta h2{font-size:32px}.agency-final-cta p{font-size:15px}.agency-footer{padding-top:48px}.agency-footer-grid{grid-template-columns:1fr;gap:32px}.agency-footer h2{margin-bottom:8px}.agency-footer nav{grid-template-columns:1fr 1fr;gap:0 20px}.agency-footer nav a{min-height:44px}.agency-footer-brand>p{max-width:100%;font-size:14px}.agency-footer-bottom{display:block;margin-top:26px;padding-top:20px}.agency-footer-bottom>div{margin-top:8px;gap:20px}.agency-footer-bottom a{font-size:12px}.agency-final-cta .agency-button{font-size:15px}.agency-footer-contact .agency-contact-link{max-width:340px}}
[hidden]{display:none!important}

html{scroll-padding-top:calc(var(--header-height) + 20px)}

/* THM-005: form boundaries stay distinct; decorative borders remain subtle. */
body[data-agency-shell] #portfolio-search{border-color:var(--ui-control-border)}
