/* Site-wide action typography, matching the homepage primary button. */
:root{--action-font-size:12.48px;--action-font-weight:700}
body :is(.button,.service-card-actions button,.service-card-actions a,.contact-submit,.service-inquiry-submit,.service-nav>a:last-child,.service-panel a,main button[data-service],.case-card button){font-family:GraphikLCG,Arial,sans-serif!important;font-size:var(--action-font-size)!important;font-weight:var(--action-font-weight)!important;font-style:normal!important;line-height:1!important;letter-spacing:-.01em!important}
/* Footer typography must not inherit page-specific overrides. */
body .footer{margin-top:0}
body .footer .footer-service-list a{font-family:GraphikLCG,Arial,sans-serif;font-size:12px;color:#b2a9c0;font-weight:400;line-height:1.45;opacity:1}
body .footer .footer-service-list a:hover{color:#e6c9ff}
@media(max-width:760px){
 :root{--action-font-size:10.56px}
 .service-card-actions{grid-template-columns:1fr;gap:6px}
 .service-card{height:360px;padding-bottom:115px}
 .service-card .service-meta{bottom:112px}
 .service-card-actions button,.service-card-actions a{min-height:36px}
}
/* Separate artwork and actions into normal-flow rows, preserving artwork scale. */
article.service-card{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto minmax(60px,1fr) auto auto auto;row-gap:16px;height:auto;min-height:0;padding:24px;align-items:start}
article.service-card .card-icon{grid-row:1}
article.service-card h3{grid-row:2;margin:4px 0 0;max-width:100%}
article.service-card p{grid-row:3;margin:0;width:100%;max-width:100%}
article.service-card .service-meta{grid-row:4;position:static;inset:auto;row-gap:7px}
article.service-card .service-graphic{grid-row:5;position:relative;inset:auto;justify-self:end;width:calc((100% + 48px)*.62);height:auto;aspect-ratio:1;margin:0 -20px 0 0}
article.service-card .service-card-actions{grid-row:6;position:static;inset:auto;width:100%;padding-top:18px;border-top:1px solid #eee8f4;grid-template-columns:1fr;gap:10px;margin-top:12px}
article.service-card .service-card-actions button,article.service-card .service-card-actions a{min-height:44px;padding:0 14px}
@media(min-width:761px) and (max-width:1100px){article.service-card .service-card-actions{grid-template-columns:1.15fr .85fr}}
@media(max-width:760px){
 article.service-card{padding:20px;row-gap:14px;grid-template-rows:auto auto auto auto auto auto}
 article.service-card .service-graphic{width:90%;justify-self:center;margin:8px 0 12px}
 article.service-card .service-card-actions{grid-template-columns:1.15fr .85fr;padding-top:16px}
}
@media(max-width:360px){article.service-card .service-card-actions{grid-template-columns:1fr}}

/* Dashboard navigation uses one consistent vector icon system. */
.db-nav .db-nav-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 20px;width:20px;height:20px;line-height:1}
.db-nav-icon svg{display:block;width:20px;height:20px;flex:none}

/* Consistent vector external arrows */
:root{--external-arrow-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ba91d1' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 19 19 5M10 5h9v9'/%3E%3C/svg%3E")}
svg.external-arrow{display:inline-block;width:1em;height:1em;min-width:1em;flex-shrink:0;vertical-align:-.13em;overflow:visible;pointer-events:none}

/* One persistent mobile navigation bar across every page template. */
@media(max-width:760px){
 :root{--mobile-header-height:calc(75px + env(safe-area-inset-top,0px))}
 html{scroll-padding-top:calc(var(--mobile-header-height) + 16px)}
 body :is(main [id],.section[id]){scroll-margin-top:calc(var(--mobile-header-height) + 16px)}
 body:not(.cdx-page):not(.study-page) .hero>.nav{
  position:fixed;inset:0 0 auto;z-index:300;
  width:100%;max-width:none;margin:0;height:var(--mobile-header-height);
  padding:env(safe-area-inset-top,0px) 18px 0;
  background:rgba(252,250,255,.94);border-bottom:1px solid rgba(116,70,156,.12);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
 }
 body:not(.cdx-page):not(.study-page) .hero{padding-top:var(--mobile-header-height)}
 .cdx-page .cdx-site-header,.study-page .case-header{
  position:fixed;inset:0 0 auto;z-index:300;width:100%;
  padding-top:env(safe-area-inset-top,0px);
 }
 .cdx-page .cdx-site-header .nav,.study-page .case-header .nav{height:75px}
 body.cdx-page,body.study-page{padding-top:var(--mobile-header-height)}
 body>.service-nav{position:fixed;inset:0 0 auto;z-index:300;height:var(--mobile-header-height);padding-top:env(safe-area-inset-top,0px)}
 body:has(>.service-nav){padding-top:var(--mobile-header-height)}
 body .nav-links{top:calc(100% + 4px);max-height:calc(100dvh - var(--mobile-header-height) - 24px);overflow-y:auto;overscroll-behavior:contain}
}
@media(max-width:760px){
 /* Let the homepage's fixed bar paint outside its hero section. */
 body:not(.cdx-page):not(.study-page) .hero{isolation:auto;overflow:visible}
}

/* Expanded mobile menu: navigation, agency introduction and direct contact. */
.mobile-menu-details{display:none}
.service-nav>.nav-links,.service-nav>.menu-toggle{display:none}
@media(max-width:760px){
 body .nav>.nav-links,body .service-nav>.nav-links{padding:22px;border-radius:0 0 22px 22px;gap:0;box-shadow:0 24px 48px #21102d24;border-top:0}
 body .nav>.nav-links>a,body .service-nav>.nav-links>a{font-size:18px;line-height:1.3;font-weight:600;padding:9px 0;display:block}
 body .nav-links .mobile-menu-details{display:flex;flex-direction:column;align-items:flex-start;gap:0;margin:18px 0 0;padding:20px 0 0;border-top:1px solid #9a72b32b}
 body .nav-links .mobile-menu-intro{margin:0 0 22px;font-size:13px;line-height:1.6;font-weight:400;color:#82718d;max-width:270px}
 body .nav-links .mobile-menu-label{font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#9b77af;margin-bottom:12px}
 body .nav-links .mobile-menu-phone{font-size:20px;font-weight:600;line-height:1.4;color:#291735;padding:0;margin:0 0 5px;letter-spacing:-.03em}
 body .nav-links .mobile-menu-email{font-size:15px;font-weight:400;line-height:1.5;color:#8c20d6;padding:0;margin-bottom:23px}
 body .nav-links .mobile-menu-cta{display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%;min-height:50px;padding:16px 22px;margin:0;color:#fff;background:linear-gradient(100deg,#771ed0,#a100f4);border-radius:14px;border:0;text-decoration:none;font-size:var(--action-font-size);font-weight:var(--action-font-weight)}
 .cdx-page .nav-links .mobile-menu-intro{color:#b8a6c5}
 .cdx-page .nav-links .mobile-menu-phone{color:#fff}
 .cdx-page .nav-links .mobile-menu-email{color:#ce9af3}
 body>.service-nav>.menu-toggle{display:flex;margin-left:auto}
 body>.service-nav>a:last-child{display:none}
 body>.service-nav>.nav-links{position:absolute;inset:calc(100% + 4px) 0 auto;margin:0;background:#fff;flex-direction:column;align-items:stretch}
 body>.service-nav>.nav-links.open{display:flex}
 body>.service-nav>.nav-links>a{color:#51445e}
}
