/* Shared layout for the Whetstone AI multi-page site. */
html { scroll-padding-top: 104px; }
.whetstone-site { --paper:#faf9f6; --ink:#20231e; --muted:#62675e; --line:#dedfd7; background:var(--paper); }
.whetstone-site [hidden] { display:none !important; }
.whetstone-site .wrap { max-width:1320px; width:calc(100% - 112px); }
.whetstone-site h1 { font-weight:400; font-size:clamp(48px,5.7vw,82px); line-height:1.06; letter-spacing:-3.6px; margin:0; }
.whetstone-site h2 { font-size:clamp(32px,3.8vw,52px); letter-spacing:-1.9px; line-height:1.12; }
.whetstone-site h3 { font-weight:400; }
.whetstone-site p { line-height:1.7; }
.whetstone-site .eyebrow { font:11px/1.5 Arial,Helvetica,sans-serif; letter-spacing:1.4px; margin:0 0 24px; }
.whetstone-site .lead { font-size:18px; line-height:1.7; max-width:635px; margin:28px 0 0; }
.whetstone-site .section { padding-top:88px; padding-bottom:88px; }
.whetstone-site .section-heading { align-items:flex-end; margin-bottom:42px; gap:32px; }
.whetstone-site .section-note { font-size:15px; max-width:380px; margin:0; }
.whetstone-site .site-header { position:sticky; top:0; z-index:1000; height:80px; min-height:80px; max-width:none; margin:0; padding:0 max(32px,calc((100vw - 1320px)/2)); background:#fff; border-bottom:1px solid var(--line); display:flex; flex-wrap:nowrap; gap:28px; box-shadow:none; clip-path:none; }
.whetstone-site .site-header .brand { font-size:23px; letter-spacing:-1px; flex-shrink:0; }
.whetstone-site .site-header .brand svg { width:35px; height:35px; }
.whetstone-site .site-header .desktop-navigation { display:flex; align-items:center; justify-content:flex-end; gap:24px; margin-left:auto; width:auto; order:initial; }
.whetstone-site .site-header nav a { display:flex; align-items:center; min-height:44px; padding:0; font-size:13px; white-space:nowrap; }
.whetstone-site .site-header nav a[aria-current="page"] { text-decoration:underline; text-underline-offset:7px; text-decoration-thickness:1px; }
.whetstone-site .site-header .contact-entry { font-size:12px; padding:12px 18px; margin:0; flex-shrink:0; }
.mobile-navigation { display:none; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:32px; min-height:48px; padding:15px 22px; background:var(--ink); border:1px solid var(--ink); color:#fff; font-size:13px; line-height:1.3; }
.button:hover { background:#41483a; }
.button-light { background:var(--paper); color:var(--ink); border-color:var(--paper); }
.button-light:hover { background:#e3e7da; }
.text-link { display:inline-flex; gap:20px; align-items:center; min-height:44px; font-size:14px; line-height:1.5; border-bottom:1px solid currentColor; }
.text-link:hover { color:#5b684c; }
.actions { display:flex; flex-wrap:wrap; gap:20px 28px; align-items:center; margin-top:30px; }
.masthead { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); align-items:center; gap:40px; padding-top:72px; padding-bottom:72px; }
.masthead-copy { min-width:0; }
.masthead-art img { display:block; width:100%; height:auto; }
.masthead-art { max-width:440px; justify-self:end; }
.masthead .lead { max-width:600px; font-size:17px; }
.format-strip { border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:#fff; }
.format-strip .wrap { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:23px 0; font-size:14px; }
.format-strip span:first-child { color:var(--muted); font-size:10px; letter-spacing:1.5px; }
.audience-split { display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--line); }
.audience-split article { padding:36px 48px 0 0; }
.audience-split article+article { border-left:1px solid var(--line); padding-left:48px; padding-right:0; }
.audience-split h3 { font-size:32px; letter-spacing:-1px; line-height:1.15; margin:0 0 20px; }
.audience-split p:not(.eyebrow) { max-width:470px; margin:0 0 25px; font-size:16px; }
.process-band { background:#eff0e9; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.process-steps { list-style:none; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:36px; margin:0; padding:0; }
.process-steps li { padding-top:22px; border-top:1px solid #bec4b5; }
.process-steps li>span { font-size:10px; letter-spacing:1px; color:#626b58; }
.process-steps h3 { font-size:23px; letter-spacing:-.65px; margin:27px 0 13px; }
.process-steps p { font-size:15px; margin:0; }
.control-summary,.compact-split { display:grid; grid-template-columns:1fr 1fr; gap:80px; }
.statement { font-size:24px; line-height:1.4 !important; color:var(--ink); letter-spacing:-.55px; margin:0 0 20px; }
.control-summary .text-link,.compact-split .text-link { margin-top:8px; }
.catalog-summary { background:#fff; border-top:1px solid var(--line); }
.summary-count { display:flex; gap:16px; align-items:flex-end; }
.summary-count strong { font-size:94px; line-height:.85; font-weight:400; letter-spacing:-6px; }
.summary-count span { max-width:75px; font-size:10px; line-height:1.8; letter-spacing:1px; }
.capability-links { display:grid; grid-template-columns:1fr 1fr; gap:0 54px; }
.capability-links a { display:flex; align-items:center; justify-content:space-between; gap:20px; border-bottom:1px solid var(--line); padding:23px 0; font-size:18px; line-height:1.4; }
.capability-links a span:last-child { font-size:12px; white-space:nowrap; color:#6b7362; }
.capability-links a:hover { color:#63744f; }
.catalog-summary-end { display:flex; justify-content:space-between; align-items:center; gap:24px; margin-top:30px; }
.catalog-summary-end p { font-size:13px; margin:0; }
.site-footer { padding:60px 0 24px; background:#20251e; color:#faf9f6; }
.footer-callout { display:flex; justify-content:space-between; gap:40px; align-items:center; }
.site-footer .eyebrow { color:#bcc5b4; margin-bottom:20px; }
.site-footer h2 { font-size:clamp(40px,5vw,68px); }
.footer-bottom { display:flex; justify-content:space-between; align-items:center; gap:30px; border-top:1px solid #495041; padding-top:24px; margin-top:58px; font-size:11px; color:#c4c9bd; }
.footer-bottom nav { display:flex; flex-wrap:wrap; gap:24px; }
.footer-bottom nav a { padding:10px 0; }
.footer-bottom a:hover { color:#fff; }
.page-intro { padding-top:72px; padding-bottom:65px; }
.page-intro h1 { max-width:1100px; }
.intro-bottom { display:flex; align-items:flex-end; justify-content:space-between; gap:50px; }
.intro-bottom .actions { flex-direction:column; flex-shrink:0; align-items:flex-start; gap:10px; }
.ruled-section { border-top:1px solid var(--line); }
.product-rows article,.permission-rows article { display:grid; grid-template-columns:60px minmax(0,1fr) 180px; gap:24px; border-top:1px solid var(--line); padding:30px 0; }
.product-rows article:last-child,.permission-rows article:last-child { border-bottom:1px solid var(--line); }
.row-number { color:var(--muted); font-size:11px; letter-spacing:.7px; line-height:1.7; }
.product-rows h3,.permission-rows h3 { margin:0 0 10px; font-size:29px; letter-spacing:-.8px; }
.product-rows p,.permission-rows p { margin:0; max-width:680px; font-size:16px; }
.product-label,.scope-label { text-align:right; font-size:10px; letter-spacing:1px; line-height:1.7; color:#626d56; }
.workflow-list { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:38px 64px; }
.workflow-list li { display:flex; gap:25px; border-top:1px solid #c6cbbd; padding-top:24px; }
.workflow-list li>span { font-size:12px; color:#6d755f; }
.workflow-list h3 { font-size:23px; margin:0 0 13px; }
.workflow-list p { font-size:15px; margin:0; }
.example-section { display:grid; grid-template-columns:.85fr 1fr; gap:80px; }
.example-section>div>p:not(.eyebrow) { max-width:470px; }
.example-map { padding:30px; border:1px solid var(--line); background:#fff; }
.example-source { border-bottom:1px solid var(--line); padding-bottom:20px; }
.example-source .eyebrow { display:block; color:var(--muted); margin-bottom:12px; }
.example-source p { color:var(--ink); font-size:16px; margin:0; }
.example-map dl { margin:25px 0; }
.example-map dt { font-size:17px; margin-top:22px; }
.example-map dd { font-size:14px; color:var(--muted); line-height:1.7; margin:7px 0 0; }
.small-note { font-size:11px; border-top:1px solid var(--line); padding-top:16px; margin-bottom:0; }
.permission-band { background:#e9edde; }
.compact-split>div>p:first-child:not(.eyebrow) { margin-top:0; }
.business-intro { display:grid; grid-template-columns:1.1fr .8fr; align-items:start; gap:80px; }
.access-panel { border:1px solid var(--line); padding:32px; background:#fff; }
.model-names { display:flex; flex-wrap:wrap; gap:12px 22px; margin:35px 0; font-size:30px; letter-spacing:-1px; }
.access-panel>p:not(.eyebrow) { font-size:14px; }
.independence-note { display:flex; gap:15px; border-top:1px solid var(--line); padding-top:22px; margin-top:25px; }
.independence-note p { font-size:15px; line-height:1.6; color:var(--ink); margin:0; }
.business-services { display:grid; grid-template-columns:1fr 1fr; gap:65px; }
.business-services article { padding-top:26px; border-top:1px solid var(--line); }
.business-services h3 { font-size:30px; margin:30px 0 20px; }
.business-services .emphasis { padding-top:18px; border-top:1px solid var(--line); font-size:14px; color:var(--ink); }
.faq-section { background:#fff; border-top:1px solid var(--line); }
.faq details { border-top:1px solid var(--line); padding:20px 0; }
.faq details:last-child { border-bottom:1px solid var(--line); }
.faq summary { cursor:pointer; font-size:17px; line-height:1.6; }
.faq p { font-size:15px; margin-bottom:0; }
.faq summary:focus-visible { outline:2px solid var(--ink); outline-offset:5px; }
.independence-banner { background:#e9edde; border-top:1px solid #d9e0cc; border-bottom:1px solid #d9e0cc; padding:24px 0; }
.independence-banner .wrap { display:flex; align-items:center; gap:40px; }
.independence-banner .eyebrow { margin:0; white-space:nowrap; }
.independence-banner p { color:var(--ink); margin:0; font-size:22px; letter-spacing:-.5px; }
.permission-rows article { grid-template-columns:60px minmax(0,1fr) 190px; }
.control-list { list-style:none; padding:0; margin:0; counter-reset:control; }
.control-list li { border-top:1px solid #c6cbbd; padding:24px 0; counter-increment:control; }
.control-list h3 { display:flex; gap:15px; font-size:21px; margin:0 0 12px; }
.control-list h3:before { content:counter(control,decimal-leading-zero); font-size:11px; color:var(--muted); padding-top:5px; }
.control-list p { font-size:15px; margin:0; }
.catalog-page .catalog { padding-top:65px; background:var(--paper); }
.catalog-page .catalog-heading h1 { font-size:clamp(44px,5.2vw,72px); }
.catalog-page .catalog-group-heading h2 { font-size:24px; letter-spacing:-.6px; }
.catalog-page .catalog-card h3 { font-size:22px; line-height:1.25; letter-spacing:-.6px; margin:0 0 14px; overflow-wrap:anywhere; }
.catalog-page .catalog-guide h3 { font-size:15px; margin:0 0 16px; }
.whetstone-site .contact-back { padding-top:8px; padding-bottom:30px; }
.whetstone-site .contact-layout { min-height:0; }
section[id],div[id] { scroll-margin-top:104px; }
@media(min-width:901px) and (max-width:1150px) {
 .whetstone-site .site-header { gap:18px; padding:0 28px; }
 .whetstone-site .site-header .desktop-navigation { gap:17px; }
 .whetstone-site .site-header .brand { font-size:21px; }
 .whetstone-site .site-header nav a { font-size:12px; }
}
@media(max-width:1150px) {
 .whetstone-site .wrap { width:calc(100% - 64px); }
 .compact-split,.control-summary,.example-section,.business-intro { gap:45px; }
 .intro-bottom { gap:30px; }
}
@media(max-width:900px) {
 html { scroll-padding-top:88px; }
 .whetstone-site .site-header { height:72px; min-height:72px; gap:16px; padding:0 24px; }
 .whetstone-site .site-header .desktop-navigation { display:none; }
 .whetstone-site .site-header .contact-entry { margin-left:auto; font-size:11px; padding:11px 13px; }
 .mobile-navigation { display:block; }
 .mobile-navigation summary { display:grid; place-items:center; list-style:none; width:40px; height:40px; cursor:pointer; border:1px solid var(--line); }
 .mobile-navigation summary::-webkit-details-marker { display:none; }
 .menu-icon { width:17px; height:12px; border-top:1px solid; border-bottom:1px solid; position:relative; }
 .menu-icon:after { content:''; position:absolute; left:0; right:0; top:4.5px; border-top:1px solid; }
 .mobile-navigation[open] .menu-icon { transform:rotate(45deg); border-bottom:0; height:0; }
 .mobile-navigation[open] .menu-icon:after { transform:rotate(90deg); top:-1px; }
 .whetstone-site .site-header .mobile-navigation nav { position:absolute; top:71px; right:0; width:min(340px,100vw); background:#fff; border:1px solid var(--line); display:flex; flex-direction:column; gap:0; padding:15px 24px; box-shadow:0 15px 30px #0000000c; }
 .whetstone-site .site-header .mobile-navigation nav a { padding:13px 0; font-size:16px; min-height:52px; border-bottom:1px solid var(--line); }
 .mobile-navigation summary:focus-visible { outline:2px solid var(--ink); outline-offset:3px; }
 .whetstone-site h1 { font-size:clamp(48px,7vw,65px); letter-spacing:-2.5px; }
 .masthead { gap:25px; padding:58px 0; grid-template-columns:1.3fr .7fr; }
 .masthead .lead { font-size:16px; }
 .masthead .actions { gap:12px 22px; }
 .whetstone-site .section { padding:65px 0; }
 .audience-split article { padding-right:28px; }
 .audience-split article+article { padding-left:28px; }
 .audience-split h3 { font-size:28px; }
 .section-heading .section-note { max-width:300px; }
 .process-steps { gap:24px; }
 .process-steps h3 { font-size:21px; }
 .page-intro { padding:55px 0; }
 .intro-bottom { flex-direction:column; align-items:flex-start; gap:0; }
 .intro-bottom .actions { flex-direction:row; align-items:center; gap:25px; }
 .business-intro { grid-template-columns:1fr 1fr; gap:30px; }
 .access-panel { padding:25px; }
 .model-names { font-size:27px; }
 .workflow-list { gap:32px; }
 .product-rows article,.permission-rows article { grid-template-columns:30px minmax(0,1fr) 140px; gap:20px; }
 .catalog-summary-end { align-items:flex-start; }
 .catalog-summary-end .text-link { flex-shrink:0; }
 section[id],div[id] { scroll-margin-top:88px; }
}
@media(max-width:650px) {
 .whetstone-site .wrap { width:calc(100% - 40px); }
 .whetstone-site .site-header { padding:0 16px; gap:12px; }
 .whetstone-site .site-header .brand { font-size:19px; gap:3px; }
 .whetstone-site .site-header .brand svg { width:29px; height:29px; }
 .whetstone-site .site-header .contact-entry { padding:10px 10px; }
 .whetstone-site h1 { font-size:clamp(41px,9.7vw,62px); letter-spacing:-2px; }
 .whetstone-site h2 { font-size:34px; letter-spacing:-1.3px; }
 .whetstone-site .eyebrow { font-size:10px; margin-bottom:20px; }
 .whetstone-site .lead { font-size:16px; margin-top:22px; }
 .whetstone-site .section { padding:50px 0; }
 .masthead { grid-template-columns:1fr; padding:45px 0 30px; gap:15px; }
 .masthead-art { max-width:240px; justify-self:center; }
 .actions { gap:14px 22px; margin-top:25px; }
 .button { font-size:12px; gap:24px; padding:14px 18px; }
 .text-link { font-size:13px; gap:15px; }
 .format-strip .wrap { flex-wrap:wrap; gap:16px; justify-content:flex-start; font-size:12px; padding:20px 0; }
 .format-strip span:first-child { width:100%; }
 .whetstone-site .section-heading { display:block; margin-bottom:30px; }
 .whetstone-site .section-note { margin-top:22px; max-width:none; font-size:14px; }
 .section-heading>.text-link { margin-top:20px; }
 .audience-split,.compact-split,.control-summary,.example-section,.business-intro,.business-services,.workflow-list { grid-template-columns:1fr; gap:30px; }
 .audience-split { gap:30px; }
 .audience-split article,.audience-split article+article { border-left:0; padding:27px 0 0; }
 .audience-split article+article { border-top:1px solid var(--line); }
 .audience-split h3 { font-size:29px; }
 .audience-split p:not(.eyebrow) { font-size:15px; margin-bottom:18px; }
 .process-steps { grid-template-columns:1fr; gap:28px; }
 .process-steps h3 { margin-top:17px; font-size:23px; }
 .statement { font-size:22px; }
 .summary-count { margin-top:30px; }
 .summary-count strong { font-size:70px; }
 .capability-links { grid-template-columns:1fr; }
 .capability-links a { font-size:16px; padding:19px 0; }
 .catalog-summary-end { display:block; margin-top:25px; }
 .catalog-summary-end .text-link { margin-top:14px; }
 .footer-callout { flex-direction:column; align-items:flex-start; gap:25px; }
 .footer-bottom { flex-direction:column; align-items:flex-start; gap:18px; margin-top:40px; }
 .footer-bottom nav { gap:6px 22px; }
 .site-footer { padding-top:45px; }
 .site-footer h2 { font-size:45px; }
 .page-intro { padding:45px 0; }
 .intro-bottom>.text-link { margin-top:20px; }
 .product-rows article,.permission-rows article { grid-template-columns:26px minmax(0,1fr); padding:25px 0; gap:15px; }
 .product-label,.scope-label { grid-column:2; text-align:left; font-size:9px; }
 .product-rows h3,.permission-rows h3 { font-size:25px; }
 .product-rows p,.permission-rows p { font-size:15px; }
 .workflow-list { gap:28px; }
 .workflow-list li { gap:18px; }
 .example-map { padding:24px; }
 .business-services h3 { font-size:28px; margin-top:22px; }
 .independence-banner .wrap { display:block; }
 .independence-banner .eyebrow { display:block; margin-bottom:10px; }
 .independence-banner p { font-size:20px; }
 .control-list h3 { font-size:21px; }
 .catalog-page .catalog { padding-top:42px; }
 .catalog-page .catalog-heading h1 { font-size:44px; }
 .catalog-page .catalog-group-heading h2 { font-size:20px; max-width:calc(100% - 70px); }
 .catalog-page .catalog-card h3 { font-size:24px; }
}
@media(max-width:370px) {
 .whetstone-site .site-header { gap:8px; }
 .whetstone-site .site-header .brand { font-size:17px; }
 .whetstone-site .site-header .brand svg { width:25px; }
 .whetstone-site .site-header .contact-entry { font-size:10px; padding:10px 8px; }
 .mobile-navigation summary { width:36px; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
