/* WordPress integration for the preserved 29 September 2026 designer stylesheet. */
:root { --focus:#6732d1; }
/* Keep the hero artwork below the navigation and the project link readable. */
.designer-home .hero::before { top:calc(var(--header) + 12px);transform:none;animation-name:grimor-hero-fade;mask-image:linear-gradient(transparent,#000 64px); }
@keyframes grimor-hero-fade { from { opacity:.2; } to { opacity:1; } }
.designer-home .hero-kicker__link { display:inline-flex;align-items:center;gap:9px;max-width:100%;min-height:44px;padding:10px 14px;color:#fff;background:#181024;border-radius:8px;font-size:14px;font-weight:600;line-height:1.5;letter-spacing:.02em;text-transform:none; }
.designer-home .hero-kicker__link::before { flex:0 0 7px;width:7px;height:7px;content:"";background:var(--coral);border-radius:50%;box-shadow:0 0 0 6px rgba(154,115,255,.14); }
.designer-home .hero-kicker__link:hover { text-decoration:underline;text-underline-offset:4px; }
.designer-home .hero-kicker__link:focus-visible { outline:2px solid #fff;outline-offset:4px; }
@media(max-width:359px) {
 .designer-theme .cta-panel { padding:36px 30px; }
 .designer-theme .cta-panel h2 { font-size:40px; overflow-wrap:anywhere; }
 .designer-theme .cta-panel .button { padding-inline:20px; }
}
html { scroll-padding-top:calc(var(--header) + 24px); }
[hidden] { display:none!important; }
.screen-reader-text { position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }
.screen-reader-text:focus { position:fixed;z-index:9999;top:12px;left:12px;width:auto;height:auto;clip:auto;padding:12px;color:white;background:var(--brand); }
.wrap { width:min(calc(100% - (2 * var(--gutter))),var(--container));margin-inline:auto; }
body:not(.has-js) .reveal { opacity:1!important;transform:none!important; }
.entry-content,.rich-text,.article-content { overflow-wrap:anywhere; }
.entry-content a:not(.button):not(.reference-card a):not(.entry-row):not(.project-card),.rich-text a:not(.button) { text-decoration:underline;text-underline-offset:3px; }
.entry-content p,.entry-content li { max-width:100%; }
.entry-content h2,.entry-content h3 { font-family:Manrope,sans-serif;line-height:1.2;letter-spacing:-.035em;margin:1.8em 0 .7em; }
.entry-content h2 { font-size:clamp(28px,3.2vw,44px); }
.entry-content h3 { font-size:clamp(23px,2.4vw,32px); }
.entry-content table { display:block;max-width:100%;overflow:auto;border-collapse:collapse; }
.entry-content td,.entry-content th { padding:12px;border:1px solid var(--line); }
.entry-content img { height:auto; }
.entry-content blockquote { margin:32px 0;padding:16px 24px;border-left:3px solid var(--brand);background:var(--paper-2); }
.entry-content pre,.entry-content code { font-family:ui-monospace,Consolas,monospace;overflow-wrap:anywhere; }
.entry-content pre { overflow:auto;padding:20px;background:var(--paper-2); }
.entry-content ul,.entry-content ol { padding-left:1.3em; }
.entry-content li { margin-bottom:10px; }
.entry-list { display:grid;gap:0;border-top:1px solid var(--line); }
.entry-row { display:flex;justify-content:space-between;align-items:center;gap:20px;padding:26px 0;border-bottom:1px solid var(--line); }
.entry-row h3 { margin:0;font:500 clamp(23px,3vw,36px)/1.2 Manrope,sans-serif;letter-spacing:-.03em; }
.entry-row:hover { color:var(--brand); }
.faq-list { display:grid;gap:0; }
.faq-item { border-bottom:1px solid var(--line);padding:22px 0; }
.faq-item summary { cursor:pointer;font:500 clamp(20px,2.2vw,28px)/1.3 Manrope,sans-serif; }
.faq-item p { max-width:850px;margin:18px 0 0;color:var(--muted); }
.section-heading h2 { font:500 clamp(32px,4vw,58px)/1.05 Manrope,sans-serif;letter-spacing:-.04em; }
.wp-block-image img { height:auto; }
.post-password-form input { max-width:100%;padding:12px;border:1px solid var(--line);border-radius:8px; }
.post-password-form input[type=submit] { color:white;background:var(--brand);cursor:pointer; }
.site-footer .footer-links a { overflow-wrap:anywhere; }
.site-footer .footer-bottom-links { flex-wrap:wrap; }
.site-footer .footer-links h3,.site-footer .footer-bottom { color:rgba(255,255,255,.62); }
.site-header { top:var(--designer-adminbar-height,0px); }
/* Without the scroll script, keep desktop navigation legible over light sections. */
@media(min-width:1021px) {
 body:not(.has-js) .site-header { color:var(--white);background:var(--ink); }
}
/* The primary links use native disclosures. JavaScript only adds focus handling. */
.site-nav { gap:clamp(12px,1.5vw,26px); }
.nav-disclosure { min-width:0; }
.nav-trigger { display:flex;align-items:center;gap:8px;min-height:44px;padding-block:10px;font-size:14px;font-weight:500;line-height:1.3;cursor:pointer;list-style:none; }
.nav-trigger::-webkit-details-marker { display:none; }
.nav-trigger::marker { content:""; }
.nav-chevron { width:7px;height:7px;flex:0 0 7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg); }
.nav-disclosure[open] .nav-chevron { transform:translateY(2px) rotate(225deg); }
.nav-disclosure[data-current-group] .nav-trigger,.nav-trigger:hover { text-decoration:underline;text-underline-offset:7px;text-decoration-thickness:1px; }
.nav-trigger:focus-visible { outline:2px solid currentColor;outline-offset:4px;border-radius:4px; }
.nav-panel { position:absolute;top:100%;left:max(var(--gutter),calc((100% - 1440px) / 2));right:max(var(--gutter),calc((100% - 1440px) / 2));display:grid;grid-template-columns:minmax(220px,.8fr) minmax(0,2fr);gap:34px;max-height:calc(100dvh - var(--designer-adminbar-height,0px) - var(--header) - 24px);padding:30px;overflow-y:auto;overscroll-behavior:contain;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:0 0 22px 22px;box-shadow:0 18px 40px rgb(30 17 51 / 16%); }
.nav-panel-intro { padding:26px;background:#f1eafa;border-radius:14px; }
.nav-panel .nav-panel-title { margin:0 0 14px;font:500 28px/1.2 Manrope,sans-serif;letter-spacing:-.03em;color:var(--brand-dark); }
.nav-panel-intro > p:not(.nav-panel-title) { margin:0 0 22px;font-size:15px;line-height:1.6;color:#51455f; }
.nav-panel .nav-overview { display:inline-flex;align-items:center;min-height:44px;gap:8px;font-size:15px;font-weight:600;text-decoration:underline;text-underline-offset:4px; }
.nav-overview::after { content:""; }
.nav-panel-groups { display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));align-content:start;gap:24px; }
.nav-group-title { margin:4px 0 10px;color:#62546f;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase; }
.nav-panel ul { list-style:none;margin:0;padding:0; }
.nav-panel li { margin:0; }
.nav-panel li a { display:block;min-height:44px;padding:11px 12px;margin-inline:-12px;border-radius:6px;font-size:16px;line-height:1.4;overflow-wrap:anywhere; }
.nav-panel a:hover,.nav-panel a[aria-current="page"] { color:var(--brand-dark);background:#f4eefc; }
.nav-panel a:focus-visible { outline:2px solid var(--focus);outline-offset:2px; }
.designer-home .work-meta { justify-content:flex-end; }
.designer-home .work-meta:has(.work-index) { justify-content:space-between; }
.designer-home .process-item { min-height:220px; }
.motion-paused .marquee,.motion-user-paused .marquee { animation-play-state:paused; }
.motion-paused .reveal { opacity:1;transform:none; }
.client-strip--logos { padding-block:18px;background:#fff;border-color:var(--line); }
.client-strip__viewport { overflow:hidden; }
.client-strip__viewport:focus-visible { outline:3px solid var(--brand);outline-offset:-3px; }
.client-strip__viewport:focus-within .marquee { animation-play-state:paused; }
/* User text spacing must not force the home grid wider than the viewport. */
.designer-home .section-intro > * { min-width:0; }
.designer-home .display,.designer-home .section-title { overflow-wrap:anywhere; }
.field input:not(:focus),.field select:not(:focus),.field textarea:not(:focus) { border-color:#80758f; }
.client-strip--logos .marquee { animation-duration:55s; }
.client-strip__group { display:flex;flex:0 0 auto;min-width:100vw;align-items:center;justify-content:space-around; }
/* Give WebKit's max-content track the same width as each flex item. */
.client-logo { display:flex;flex:0 0 164px;width:164px;align-items:center;justify-content:center;height:64px;padding-inline:12px;color:#000; }
/* Fit the visible artwork, not the differently padded source canvases. */
.client-logo__mark { display:block;flex:0 0 128px;width:128px;height:64px;overflow:hidden; }
body:not(.has-js) .client-strip--logos .marquee { animation:none;transform:none; }
body:not(.has-js) .client-strip__viewport { overflow-x:auto; }
body:not(.has-js) .client-strip__group[data-logo-repeat] { display:none; }
@media(hover:hover) {
 .client-strip--logos:hover .marquee { animation-play-state:paused; }
 .client-logo:hover { color:var(--brand); }
}
@media(prefers-reduced-motion:reduce) {
 .client-strip--logos .marquee { animation:none;transform:none; }
 .client-strip__viewport { overflow-x:auto; }
 .client-strip__group[data-logo-repeat] { display:none; }
}
.designer-home .stats-grid { grid-template-columns:repeat(var(--stat-count,4),minmax(0,1fr)); }
.designer-home .service-card:first-child p { color:#eee4ff;opacity:1; }
.designer-home .insight-meta { color:#5c5467; }
.wp-block-table { overflow:auto; }
@media(max-width:1020px) {
 /* Keep the drawer in the viewport when the scrolled header has a blur. */
 .menu-open .site-header { background:var(--ink);color:var(--white);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none; }
 .menu-open .site-header .brand-logo img { filter:brightness(0) saturate(100%) invert(76%) sepia(27%) saturate(2866%) hue-rotate(201deg) brightness(104%) contrast(101%); }
 .site-nav { top:calc(var(--designer-adminbar-height,0px) + var(--header));min-height:0;max-height:calc(100dvh - var(--designer-adminbar-height,0px) - var(--header));overflow-y:auto;overscroll-behavior:contain;justify-content:flex-start;justify-content:safe center;padding:16px max(var(--gutter),env(safe-area-inset-right)) max(50px,env(safe-area-inset-bottom)) max(var(--gutter),env(safe-area-inset-left));scroll-padding-block:16px 24px; }
 .site-nav > a { flex-shrink:0; }
 .site-nav { justify-content:flex-start;gap:0; }
 .site-nav .nav-disclosure { width:100%;flex-shrink:0;border-bottom:1px solid rgb(255 255 255 / 18%); }
 .site-nav .nav-trigger { justify-content:space-between;gap:20px;padding:17px 2px;font:500 clamp(24px,5vw,36px)/1.2 Manrope,sans-serif;letter-spacing:-.035em; }
 .site-nav .nav-chevron { width:10px;height:10px;flex-basis:10px;margin-right:8px; }
 .site-nav .nav-panel { position:static;display:grid;grid-template-columns:1fr;gap:22px;width:100%;max-height:none;padding:20px;margin-bottom:20px;border-radius:16px;overflow:visible;box-shadow:none; }
 .site-nav .nav-panel-intro { padding:20px; }
 .site-nav .nav-panel-title { font-size:24px; }
 .site-nav .nav-cta { margin-top:24px;font-size:20px;letter-spacing:-.02em; }
 .site-nav > a:not(.nav-cta) { padding-block:17px;font-size:28px; }
 .designer-home .stats-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 body:not(.has-js) .site-header { height:auto;position:relative;background:var(--ink); }
 body:not(.has-js) .header-inner { flex-wrap:wrap;gap:20px;padding-block:20px; }
 body:not(.has-js) .site-nav { position:static;display:flex;flex-wrap:wrap;flex-direction:row;width:100%;height:auto;max-height:none;opacity:1;visibility:visible;transform:none;pointer-events:auto;padding:0;gap:18px;background:transparent; }
 body:not(.has-js) .site-nav a { font-size:16px; }
 body:not(.has-js) .menu-toggle { display:none; }
}
@media(max-width:700px) { .site-nav .nav-panel-groups { grid-template-columns:1fr; } }
@media(max-width:700px) { .designer-home .stats-grid { grid-template-columns:1fr; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }

/* Continuous viewport scales keep adjacent breakpoint widths consistent. */
:root { --gutter:clamp(20px,4vw,64px); }
.designer-theme .page-hero { min-height:clamp(560px,calc(480px + 20vw),760px); }
.designer-theme .page-title { font-size:clamp(52px,calc(31.02px + 7.0476vw),138px); }
@media(max-width:700px) {
 .designer-home .stats-grid,.designer-about .stats-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .designer-home .stat,.designer-about .stat { min-height:0;padding:22px 18px; }
 .designer-home .stat strong,.designer-about .stat strong { margin-bottom:16px;font-size:clamp(40px,8vw,56px); }
 .designer-home .stat span,.designer-about .stat span { display:block;font-size:14px;line-height:1.4;overflow-wrap:anywhere; }
 .designer-home .insight-card { min-height:0;gap:32px;padding:24px; }
 .designer-home .insight-card h3 { margin-bottom:20px; }
 .designer-home [aria-labelledby="insights-title"] .section-intro { gap:24px;margin-bottom:32px; }
 .designer-home [aria-labelledby="insights-title"] { padding-block:56px; }
}

/* Culture switch: same navigation control on desktop and mobile. */
.site-nav > a.nav-language{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 12px;border:1px solid currentColor;border-radius:999px;color:inherit;background:transparent;font:inherit;text-decoration:none;white-space:nowrap;transition:color 160ms ease,background-color 160ms ease,border-color 160ms ease;}
/* The pill has its own hover treatment; exclude the plain-link underline. */
.site-nav > a.nav-language::after{display:none;content:none;}
.site-nav .nav-language:hover,.site-nav .nav-language:focus-visible{color:var(--white,#fff);background:var(--brand,#6732d1);border-color:var(--brand,#6732d1);}
.site-nav .nav-language:focus-visible{outline:2px solid var(--brand,#6732d1);outline-offset:3px;box-shadow:0 0 0 2px var(--white,#fff);}
@media(max-width:1020px){.site-nav > a.nav-language{margin-top:12px;}}
