/* Shared public-site system. Extends the approved B3 palette and artwork. */
[hidden]{display:none!important}
.site-header{position:relative;z-index:30;background:var(--ink)}
.site-header .header-inner{position:relative;min-height:118px;gap:26px}
.site-header .brand{gap:18px}
.site-header .main-nav{gap:26px;font-size:12px;padding-top:12px}
.site-header .brokerage-link{position:absolute;right:0;top:8px;border:0;padding:0;font-size:9px;min-height:24px;color:var(--dim)}
.nav-menu{position:relative}
.nav-menu summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:9px;min-height:44px;white-space:nowrap}
.nav-menu summary::-webkit-details-marker{display:none}
.nav-menu summary>span{font:400 17px/1 var(--body);transition:transform .2s}
.nav-menu[open] summary>span{transform:rotate(45deg)}
.nav-menu summary:hover,.nav-menu[open] summary,.main-nav a[aria-current=page]{color:var(--pink)}
.nav-menu summary:focus-visible{outline:3px solid var(--blue);outline-offset:5px}
.nav-panel{position:absolute;top:calc(100% + 16px);left:-26px;min-width:265px;padding:21px 26px;background:var(--cream);color:var(--ink);border-top:4px solid var(--pink);box-shadow:0 18px 30px #0004;z-index:40}
.nav-panel a{display:flex;align-items:baseline;gap:13px;line-height:1.5;padding:15px 0;font-size:14px;white-space:normal;min-height:48px}
.nav-panel a+a{border-top:1px solid var(--paper-rule)}
.nav-panel a:hover>span:last-child{text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--pink)}
.nav-panel small{display:block;font-size:11px;font-weight:400;line-height:1.6;margin-top:5px;color:#555354}
.nav-number{font:italic 16px/1 var(--serif);color:var(--pink);flex:none}
.nav-group-label{font:400 9px/1.6 var(--mono);letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px;color:#555354}
.nav-solutions{width:565px;display:grid;grid-template-columns:1fr 1fr;gap:28px;padding:27px}
.nav-about{left:auto;right:0;width:315px}
.site-footer .footer-main{gap:35px}
.footer-brand small{display:block;font-size:10px;font-weight:400;line-height:1.6;color:var(--dim);margin-top:8px}
.site-footer .footer-main>nav{display:grid;grid-template-columns:1fr 1fr;gap:12px 24px}
.site-footer .footer-bottom nav{display:flex;gap:24px;flex-wrap:wrap}
.site-footer .footer-bottom a{min-height:36px;display:inline-flex;align-items:center}
.site-footer .footer-bottom{align-items:center}

/* The three crossed-out categories settle into the brand, then the subtitle types. */
.hero .brand-story{font-size:clamp(60px,6.4vw,94px);max-width:590px;line-height:1}
.story-prefix{display:block;font-size:.67em;letter-spacing:-.025em;margin-bottom:12px}
.story-word-wrap{display:flex;align-items:flex-start;min-height:132px}
.story-word{position:relative;display:inline-block;max-width:100%;color:var(--pink);font-size:1.24em;line-height:1.05;text-transform:uppercase}
.story-word[data-word=crm]{font-size:.85em;line-height:1.18}
.story-word[data-word=ai]{font-size:.64em;max-width:450px;line-height:1.13}
.story-word::after{content:"";position:absolute;top:49%;left:-2%;height:5px;width:104%;background:var(--cream);transform:rotate(-6deg) scaleX(0);transform-origin:left;transition:transform .4s ease}
.story-word.crossed::after{transform:rotate(-6deg) scaleX(1)}
.story-subtitle{font:italic clamp(28px,3.6vw,48px)/1.12 var(--serif);color:var(--pink);min-height:1.3em;max-width:590px;letter-spacing:-.035em}
.typed-subtitle.typing::after{content:"";display:inline-block;height:.85em;border-right:2px solid var(--pink);margin-left:3px}
.story-control{position:absolute;left:0;bottom:13px;background:none;border:0;border-bottom:1px solid var(--rule);padding:3px 0;color:var(--dim);font-size:10px;min-height:28px}
.hero .hero-grid{min-height:max(595px,calc(100vw * 425 / 971));padding-block:42px 49px}
.hero .hero-copy{position:relative;max-width:610px;padding-bottom:46px}
.hero .hero-intro{margin-top:17px}
.hero .hero-support{margin-top:8px}
.hero .hero-actions{margin-top:23px}

.page-intro{padding-block:82px 76px}
.page-intro>.eyebrow{color:var(--pink);margin-bottom:25px}
.page-intro h1{font-size:clamp(48px,6vw,90px);max-width:1050px;line-height:1.08}
.page-intro h1 em{color:var(--pink)}
.page-deck{font:400 clamp(18px,1.7vw,24px)/1.6 var(--body);max-width:750px;margin-top:27px;color:var(--cream)}
.page-intro>.text-link{margin-top:25px}
.page-actions{margin-top:30px;display:flex;gap:18px 28px;flex-wrap:wrap;align-items:center}
.section-pad{padding-block:80px 90px}
.offering-row{display:grid;grid-template-columns:35px minmax(0,1fr) 24px;align-items:start;gap:20px;padding-block:29px;border-top:1px solid var(--paper-rule)}
.offering-row:last-child{border-bottom:1px solid var(--paper-rule)}
.offering-row h2{font:400 clamp(25px,2.8vw,40px)/1.2 var(--display);text-transform:none;letter-spacing:0}
.offering-row p{font-size:16px;line-height:1.6;margin-top:9px;max-width:700px}
.offering-row>.icon{color:var(--pink);margin-top:4px}
.offering-row:hover h2{text-decoration:underline;text-decoration-color:var(--pink);text-underline-offset:6px}
.split-editorial{display:grid;grid-template-columns:1fr 1.1fr;gap:90px}
.split-editorial h2 em{color:var(--pink)}
.prose{font:400 19px/1.8 var(--body)}
.prose p+p,.prose h3{margin-top:25px}
.prose h3{font-size:23px;line-height:1.3}
.prose h3:first-child{margin-top:0}
.prose .text-link{display:flex;margin-top:25px}
.contextual-faq{padding-block:20px 48px;display:flex;gap:32px;flex-wrap:wrap}
.work-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:65px 40px}
.work-item figure{background:#e4dfd6;display:flex;align-items:center;justify-content:center;aspect-ratio:1;padding:25px;margin-bottom:26px}
.work-item figure img{width:auto;height:100%;max-width:100%;object-fit:contain;box-shadow:0 8px 20px #04060c26;transition:transform .2s}
.work-item:hover figure img{transform:translateY(-5px)}
.work-item .eyebrow{font-size:9px;color:#555354;letter-spacing:.08em;margin-bottom:13px}
.work-item h2{font-size:31px;line-height:1.2;text-transform:none}
.work-item>p:not(.eyebrow){font:italic 21px/1.5 var(--serif);margin-top:13px}
.work-item .text-link{margin-top:14px}
.report-spread{display:grid;grid-template-columns:1fr 1fr;gap:50px;max-width:1080px;margin:0 auto}
.report-image{display:block;box-shadow:0 12px 35px #04060c20;background:white}
.report-image:hover{outline:2px solid var(--pink);outline-offset:6px}
.report-image img{width:100%;height:auto}
.report-spread figcaption{font:400 11px/1.7 var(--body);color:#555354;margin-top:18px}
.study-narrative{font:400 clamp(19px,1.85vw,25px)/1.9 var(--body);max-width:980px;margin:65px auto 0}
.study-narrative::first-letter{font:400 3.2em/.85 var(--display);float:left;margin:9px 10px 0 0;color:var(--pink)}
.image-dialog{border:0;background:var(--cream);padding:45px 20px 20px;max-width:min(95vw,1150px);max-height:94dvh;color:var(--ink)}
.image-dialog::backdrop{background:#04060cee}
.image-dialog img{width:auto;max-width:100%;max-height:none;margin:auto}
.image-dialog button{position:sticky;top:0;display:block;margin:-30px 0 16px auto;padding:7px 15px;border:1px solid var(--ink);background:var(--cream);font-size:13px;z-index:1}
.faq-layout{display:grid;grid-template-columns:235px minmax(0,1fr);gap:80px}
.faq-topics{display:flex;flex-direction:column;gap:6px}
.faq-topics a{font-size:14px;padding:10px 15px;border-left:3px solid transparent;min-height:44px}
.faq-topics a[aria-current=page]{border-left-color:var(--pink);font-weight:700;background:#04060c08}
.faq-topics a:hover{text-decoration:underline;text-underline-offset:4px}
.faq-reviewed{font:400 10px/1.8 var(--mono);color:#555354;margin-top:35px}
.faq-question{border-top:1px solid var(--paper-rule);scroll-margin-top:30px}
.faq-question:last-child{border-bottom:1px solid var(--paper-rule)}
.faq-question summary{list-style:none;display:flex;justify-content:space-between;align-items:start;gap:25px;cursor:pointer;font:600 20px/1.5 var(--body);padding:26px 0}
.faq-question summary::-webkit-details-marker{display:none}
.faq-question summary>span{font-size:24px;color:var(--pink);flex:none;line-height:1.3}
.faq-question[open] summary>span{transform:rotate(45deg)}
.faq-question summary:focus-visible{outline:3px solid var(--blue);outline-offset:5px}
.faq-answer{padding-bottom:28px;font:400 17px/1.85 var(--body)}
.faq-answer .answer-sources{font-size:11px;line-height:1.8;margin-top:19px;color:#555354}
.answer-sources a{text-decoration:underline;text-underline-offset:3px}
.question-link{display:inline-flex;min-height:35px;align-items:center;margin-top:13px;font-size:11px;text-decoration:underline;text-underline-offset:3px}
.writing-sections>section{display:grid;grid-template-columns:1fr 1.6fr;gap:65px;margin-bottom:70px;scroll-margin-top:35px}
.writing-sections>section:last-child{margin-bottom:0}
.writing-sections h2{font-size:42px;max-width:320px}
.writing-link{display:flex;align-items:center;justify-content:space-between;gap:25px;font:400 23px/1.4 var(--serif);padding-block:24px;border-top:1px solid var(--paper-rule)}
.writing-link:last-child{border-bottom:1px solid var(--paper-rule)}
.writing-link .icon{color:var(--pink)}
.contact-details>a:first-child{display:block;font:400 clamp(22px,3.5vw,48px)/1.4 var(--display);overflow-wrap:anywhere;margin-bottom:25px}
.contact-details>a:nth-child(2){display:block;font-size:25px}
.contact-details p{margin-top:20px}
.contact-details .text-link{margin-top:30px}
.policy-copy{max-width:850px}
.policy-copy h2{font-size:40px;margin-bottom:24px}
.policy-copy h2:not(:first-child){margin-top:55px}
.policy-copy p a{text-decoration:underline;text-underline-offset:5px}
.policy-text{padding-block:75px;max-width:950px}
.policy-text h1{font-size:65px;margin:20px 0}
.policy-text h2{font-size:31px;margin:40px 0 20px}
.policy-text p,.policy-text li{line-height:1.8;margin-bottom:18px}
.policy-text a{text-decoration:underline;text-underline-offset:4px}
.policy-text nav{padding:25px 0;display:flex;gap:25px;flex-wrap:wrap}

@media(max-width:1200px){.site-header .main-nav{gap:19px;font-size:11px}.site-header .brand{gap:13px}.site-header .nav-cta{padding-inline:17px}.hero .brand-story{font-size:78px;max-width:490px}.hero .story-word-wrap{min-height:125px}.hero .story-word[data-word=ai]{max-width:390px}.hero .story-subtitle{font-size:39px}.hero .hero-copy{max-width:530px}.hero .hero-intro{max-width:400px}.faq-layout{gap:45px}.work-grid{gap:50px 30px}}
@media(max-width:1080px){.site-header .header-inner{min-height:95px;padding-block:18px;gap:0}.site-header .menu-toggle{margin-left:auto}.site-header .main-nav{display:flex;flex-direction:column;align-items:stretch;width:100%;gap:0;padding-top:12px}.site-header .main-nav>a,.nav-menu summary{min-height:54px;font-size:16px}.site-header .main-nav>.nav-cta{margin:18px 0 6px;align-self:start;padding:14px 24px}.site-header .brokerage-link{position:static;border-top:1px solid var(--rule);margin:20px 0 0!important;padding-top:12px;min-height:50px;font-size:12px}.nav-panel,.nav-about,.nav-solutions{position:static;min-width:0;width:100%;box-shadow:none;padding:20px;margin:4px 0 20px;border-top-width:3px}.nav-panel a{font-size:15px}.nav-panel small{font-size:12px}.nav-menu summary{justify-content:space-between}.nav-solutions{gap:30px}.site-header .js .main-nav:not(.is-open){display:none}.hero .hero-grid{min-height:585px}.hero .brand-story{font-size:72px}.hero .story-subtitle{font-size:36px}.work-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.split-editorial{gap:45px}.site-footer .footer-main>nav{margin-left:auto}.writing-sections>section{gap:35px;grid-template-columns:1fr 1.5fr}}
@media(max-width:900px){.hero .hero-grid{min-height:0;padding-block:45px 0}.hero .hero-copy{max-width:none}.hero .brand-story{font-size:88px;max-width:650px}.hero .story-word-wrap{min-height:135px}.hero .story-word[data-word=ai]{max-width:550px}.hero .story-subtitle{font-size:43px}.hero .hero-intro{max-width:570px}.hero .hero-actions{margin-bottom:25px}.hero .story-control{bottom:4px}.page-intro{padding-block:62px}.section-pad{padding-block:65px}.faq-layout{grid-template-columns:1fr;gap:38px}.faq-topics{flex-direction:row;flex-wrap:wrap;gap:4px}.faq-topics a{font-size:12px;padding:9px 12px}.faq-reviewed{margin-top:18px}.report-spread{gap:25px}.study-narrative{margin-top:45px}.site-footer .footer-main>nav{margin-left:0}.split-editorial{grid-template-columns:1fr;gap:35px}}
@media(max-width:600px){.nav-solutions{grid-template-columns:1fr;gap:27px}.nav-panel{padding:16px 20px}.nav-panel a{padding-block:14px}.hero .brand-story{font-size:72px}.hero .story-word-wrap{min-height:118px}.hero .story-word[data-word=ai]{font-size:.58em;max-width:100%}.hero .story-word[data-word=crm]{font-size:.76em}.hero .story-subtitle{font-size:clamp(26px,6.6vw,38px);min-height:1.3em;max-width:100%}.hero .hero-intro{margin-top:20px}.hero .hero-grid{padding-top:38px}.hero .hero-copy .eyebrow{margin-bottom:21px}.page-intro h1{font-size:49px}.page-intro{padding-block:48px}.page-deck{font-size:18px}.page-actions{gap:15px;margin-top:25px}.section-pad{padding-block:48px 58px}.offering-row{grid-template-columns:25px minmax(0,1fr) 22px;gap:13px;padding-block:25px}.offering-row h2{font-size:26px}.offering-row p{font-size:14px}.work-grid{grid-template-columns:1fr;gap:45px}.work-item figure{aspect-ratio:1.12;padding:25px 40px}.work-item h2{font-size:34px}.report-spread{grid-template-columns:1fr;gap:36px}.report-spread figure{max-width:430px;margin-inline:auto}.study-narrative{font-size:19px;line-height:1.85;margin-top:42px}.faq-question summary{font-size:18px;padding-block:22px;gap:16px}.faq-answer{font-size:16px}.writing-sections>section{grid-template-columns:1fr;gap:24px;margin-bottom:48px}.writing-sections h2{font-size:36px}.writing-link{font-size:22px}.footer-main .footer-brand{align-items:start;gap:20px}.footer-brand small{font-size:10px}.site-footer .footer-bottom{align-items:flex-start}.site-footer .footer-bottom nav{gap:15px}.policy-text h1{font-size:48px}.image-dialog{padding-inline:10px;max-width:98vw}.policy-copy h2{font-size:35px}}
@media(max-width:370px){.hero .brand-story{font-size:62px}.hero .story-word-wrap{min-height:105px}.hero .story-prefix{font-size:.64em}.hero .story-word[data-word=ai]{font-size:.57em}.hero .story-subtitle{font-size:25px}.page-intro h1{font-size:42px}.site-header .brand-name{font-size:9px}.site-header .brand{gap:13px}.site-header .htd-mark{width:67px}.footer-brand small br{display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
