/* Static detail pages only. The workshop's canvas and layout stay untouched. */
/* Pricing and editorial layouts are scoped to the static pages below. */
body.info-page{font-size:18px;line-height:1.55;background:#0c0d0c;color:#f1f0e9}
.info-page .site-header{padding-inline:var(--pad)}
.info-page .header-nav{display:flex}
.info-page .nav-link,.info-page .contact-button,.info-page .skip-link{font-size:16px}
.info-page .contact-button{min-height:42px}
.info-page .page-main{max-width:1680px;margin:auto;padding:62px var(--pad) 0}
.info-page .page-main:focus:not(:focus-visible){outline:none}
.info-page .page-hero{padding-block:68px 76px}
.info-page .page-index,.info-page .section-index,.info-page .page-meta{font:16px/1.5 var(--mono);text-transform:uppercase;letter-spacing:.025em}
.info-page .page-index{display:flex;gap:16px;align-items:center;margin:0 0 42px}
.info-page .page-index:before{content:'';width:9px;height:9px;background:var(--accent);flex-shrink:0}
.info-page .page-hero-grid{display:grid;grid-template-columns:1.45fr 1fr;gap:clamp(32px,6vw,110px);align-items:end}
.info-page .page-title{font-size:clamp(60px,8.1vw,132px);line-height:.94;letter-spacing:-.058em;margin:0;max-width:11ch;overflow-wrap:normal}
.info-page .page-title .muted-line{color:var(--muted);display:block;white-space:normal}
.info-page .page-lead{font-size:clamp(22px,2vw,30px);line-height:1.35;letter-spacing:-.025em;margin:0 0 28px;max-width:30ch}
.info-page .page-links{display:flex;flex-wrap:wrap;gap:14px 28px;align-items:center}
.info-page .page-return{margin-top:36px}
.info-page .text-link{display:inline-flex;align-items:center;gap:24px;min-height:44px;padding:8px 0;border-bottom:1px solid #858779;font-size:16px;line-height:1.4}
.info-page .text-link>span{font-size:23px;line-height:1}
/* WhatsApp button. The glyph takes currentColor so it follows the link into the
   accent on hover, rather than sitting on the page as the only green thing. The
   gap is tighter than .text-link default because the glyph reads as part of the
   label, not as the trailing arrow. */
.info-page .wa-link{gap:12px}
.info-page .wa-link .wa-glyph{flex:0 0 auto}
.info-page .wa-link>span{margin-left:12px}
.info-page .text-link:hover{color:var(--accent);border-color:var(--accent)}
.info-page .page-intro-note{margin:28px 0 0;max-width:56ch;font-size:16px;color:var(--muted)}
.info-page .page-section{border-top:1px solid var(--line);padding-block:50px 64px;scroll-margin-top:85px}
.info-page .section-heading-row{display:grid;grid-template-columns:1fr 2fr;gap:40px;align-items:start;margin-bottom:38px}
.info-page .section-index{color:var(--accent);margin:0}
.info-page h2{font-size:clamp(34px,4.4vw,67px);line-height:1.03;letter-spacing:-.04em;font-weight:400;margin:0;max-width:20ch}
.info-page h3{font-size:clamp(25px,2.4vw,36px);line-height:1.12;letter-spacing:-.035em;font-weight:400;margin:0 0 20px}
.info-page p{margin-top:0}
.info-page .body-copy{max-width:69ch;color:#c8c9bd}
.info-page .body-copy>p:last-child{margin-bottom:0}
.info-page .indented-copy{margin-left:calc((100% - 40px)/3 + 40px)}
.info-page .scope-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
.info-page .scope-card{border-top:1px solid #66695c;padding-top:22px;min-width:0}
.info-page .scope-card .page-meta{color:var(--accent);margin-bottom:32px}
.info-page .scope-card p:last-child{color:#c8c9bd;margin-bottom:0}
.info-page .scope-card ul{padding-left:20px;margin:18px 0 0;color:#c8c9bd}
.info-page .scope-card li{margin-block:8px}
.info-page .note-block{display:grid;grid-template-columns:1fr 2fr;gap:40px;background:#171914;border-left:2px solid var(--accent);padding:26px 30px;margin-top:40px}
.info-page .note-block h3{font:16px/1.5 var(--mono);text-transform:uppercase;letter-spacing:.025em;margin:0;color:var(--accent)}
.info-page .note-block p{margin:0;color:#c8c9bd}
.info-page .definition-list{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin:0}
.info-page .definition-list>div{border-top:1px solid #66695c;padding-top:24px}
.info-page .definition-list dt{font-size:29px;letter-spacing:-.03em;line-height:1.2;margin-bottom:15px}
.info-page .definition-list dd{margin:0;color:#c8c9bd}
.info-page .step-list{list-style:none;padding:0;margin:0;counter-reset:steps}
.info-page .step-list>li{counter-increment:steps;display:grid;grid-template-columns:58px 1fr 1.4fr;gap:28px;padding:25px 0;border-top:1px solid var(--line)}
.info-page .step-list>li:before{content:'0' counter(steps);font:16px/1.5 var(--mono);color:var(--accent)}
.info-page .step-list h3{font-size:27px;margin:0}
.info-page .step-list p{color:#c8c9bd;margin:0}
.info-page .faq-list{margin-left:calc((100% - 40px)/3 + 40px)}
.info-page .faq-list details{border-top:1px solid var(--line)}
.info-page .faq-list details:last-child{border-bottom:1px solid var(--line)}
.info-page summary{position:relative;cursor:pointer;padding:23px 40px 23px 0;font-size:20px;line-height:1.35;list-style:none}
.info-page summary::-webkit-details-marker{display:none}
.info-page summary:after{content:'+';position:absolute;right:4px;top:18px;color:var(--accent);font-size:30px;line-height:1.2}
.info-page details[open]>summary:after{content:'−'}
.info-page summary:focus-visible,.info-page input:focus-visible,.info-page select:focus-visible,.info-page textarea:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.info-page .faq-answer{color:#c8c9bd;padding-bottom:23px;max-width:67ch}
.info-page .faq-answer p:last-child{margin-bottom:0}
.info-page .inline-link{color:var(--paper);text-decoration:underline;text-underline-offset:4px}
.info-page .inline-link:hover{color:var(--accent)}
.info-page .source-list{display:flex;flex-wrap:wrap;gap:10px 28px;margin:28px 0 0;padding:0;list-style:none;font-size:16px}
.info-page .related-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.info-page .related-link{display:flex;flex-direction:column;border-top:1px solid #66695c;padding-top:24px;min-height:190px}
.info-page .related-link .page-meta{color:var(--accent);margin-bottom:22px}
.info-page .related-link strong{font-size:30px;line-height:1.15;letter-spacing:-.035em;font-weight:400;display:flex;justify-content:space-between;gap:20px}
.info-page .related-link p{margin:14px 0 0;color:#c8c9bd;font-size:16px}
.info-page .related-link:hover strong{color:var(--accent)}
.info-page .page-next{padding-block:65px 76px;border-top:1px solid var(--line);display:grid;grid-template-columns:1.6fr 1fr;gap:40px;align-items:end}
.info-page .page-next h2{font-size:clamp(48px,6.5vw,96px);max-width:15ch;margin:0 0 27px}
.info-page .page-next .page-meta{color:var(--accent);margin-bottom:28px}
.info-page .page-next p:not(.page-meta){max-width:38ch;color:#c8c9bd}
.info-page .page-footer{padding:35px var(--pad) 28px;border-top:1px solid var(--line);max-width:1680px;margin:auto}
.info-page .footer-top{display:flex;justify-content:space-between;gap:32px;align-items:center}
.info-page .footer-wordmark{font-size:clamp(40px,6vw,84px);font-weight:700;letter-spacing:-.05em;line-height:1}
.info-page .footer-services{display:flex;flex-wrap:wrap;gap:10px 22px;max-width:620px;justify-content:flex-end;font-size:16px}
.info-page .footer-services a{padding-block:8px}
.info-page .footer-services a:hover,.info-page .footer-services a[aria-current=page]{color:var(--accent)}
.info-page .footer-bottom{display:flex;justify-content:space-between;gap:20px;padding-top:35px;color:var(--muted);font:16px/1.5 var(--mono)}
.info-page .brief-layout{display:grid;grid-template-columns:1fr 2fr;gap:40px}
.info-page .note-block+.brief-layout,.info-page noscript+.brief-layout{margin-top:38px}
.info-page .brief-aside{color:#c8c9bd}
.info-page .brief-aside .section-index{margin-bottom:24px}
.info-page .brief-form{min-width:0}
.info-page .brief-fields{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.info-page .field{display:flex;flex-direction:column;gap:9px;min-width:0}
.info-page .field-wide{grid-column:1/-1}
.info-page .field-label,.info-page legend{font-size:18px;line-height:1.4}
.info-page .optional{font-size:16px;color:var(--muted)}
.info-page input:not([type=checkbox]),.info-page select,.info-page textarea{width:100%;min-height:50px;border:1px solid #64675b;border-radius:0;padding:12px 14px;background:#121410;color:var(--paper);font:18px/1.45 var(--font)}
.info-page textarea{min-height:155px;resize:vertical}
.info-page input::placeholder,.info-page textarea::placeholder{color:#9b9e90;opacity:1}
.info-page fieldset{padding:0;border:0;margin:26px 0}
.info-page legend{padding:0;margin-bottom:15px}
.info-page .interest-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.info-page .interest-grid label{display:flex;align-items:center;gap:12px;border:1px solid var(--line);padding:12px;min-height:49px;font-size:16px;cursor:pointer}
.info-page input[type=checkbox]{width:18px;height:18px;flex-shrink:0;accent-color:var(--accent)}
.info-page .brief-actions{display:flex;flex-wrap:wrap;gap:16px 26px;margin-top:24px}
.info-page .brief-actions .text-link{background:transparent}
.info-page .brief-primary{padding:13px 19px;background:var(--accent);color:var(--bg);min-height:50px;font-size:18px;display:inline-flex;gap:28px;align-items:center}
.info-page .brief-primary:hover:not(:disabled){background:var(--paper)}
.info-page .brief-actions button:disabled{cursor:not-allowed}
.info-page .brief-privacy,.info-page .brief-status{font-size:16px;line-height:1.55;margin-top:20px;color:#c8c9bd}
.info-page .brief-status:empty{display:none}
.info-page .brief-review{border-top:1px solid var(--line);padding-top:30px;margin-top:35px}
.info-page .brief-review pre{font:16px/1.6 var(--mono);white-space:pre-wrap;overflow-wrap:anywhere;background:#171914;padding:22px;border-left:2px solid var(--accent);margin:18px 0}
.info-page .brief-review pre:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.info-page noscript p{font-size:16px;padding:20px;background:#171914;border-left:2px solid var(--accent)}
@media(max-width:1000px){.info-page .page-hero-grid{grid-template-columns:1.3fr 1fr;gap:36px}.info-page .page-title{font-size:9vw}.info-page .section-heading-row,.info-page .brief-layout{grid-template-columns:1fr 2fr;gap:28px}.info-page .scope-grid{gap:22px}.info-page .scope-card h3{font-size:27px}.info-page .page-next{grid-template-columns:1.2fr 1fr}.info-page .footer-top{align-items:start}.info-page .footer-services{max-width:360px}}
@media(max-width:760px){
  .info-page .site-header{height:auto;min-height:111px;display:grid;grid-template-columns:1fr auto;gap:0 15px;padding:14px 22px 0;backdrop-filter:blur(14px)}
  .info-page .site-header .brand{font-size:27px;align-self:center}
  .info-page .contact-button{grid-column:2;grid-row:1;margin:0;padding:8px 11px;gap:18px;font-size:16px}
  .info-page .header-nav{display:flex;grid-column:1/-1;grid-row:2;justify-content:space-between;margin:7px 0 0;gap:16px}
  .info-page .nav-link{font-size:16px;padding:11px 0;min-height:44px}
  .info-page .page-main{padding:111px 22px 0}
  .info-page .page-hero{padding-block:44px 49px}
  .info-page .page-index{margin-bottom:29px}
  .info-page .page-hero-grid{grid-template-columns:1fr;gap:30px}
  .info-page .page-title{font-size:clamp(53px,12.7vw,90px);max-width:12ch;letter-spacing:-.05em}
  .info-page .page-lead{font-size:23px;max-width:36ch;margin-bottom:20px}
  .info-page .page-section{padding-block:32px 42px;scroll-margin-top:135px}
  .info-page .section-heading-row{grid-template-columns:1fr;gap:18px;margin-bottom:28px}
  .info-page h2{font-size:clamp(34px,8.3vw,52px)}
  .info-page .indented-copy,.info-page .faq-list{margin-left:0}
  .info-page .scope-grid,.info-page .definition-list,.info-page .related-grid{grid-template-columns:1fr;gap:29px}
  .info-page .scope-card .page-meta{margin-bottom:20px}
  .info-page .scope-card h3{font-size:29px;margin-bottom:13px}
  .info-page .note-block{grid-template-columns:1fr;gap:14px;padding:22px;margin-top:28px}
  .info-page .step-list>li{grid-template-columns:32px 1fr;gap:12px 18px}
  .info-page .step-list h3{font-size:25px}
  .info-page .step-list p{grid-column:2}
  .info-page .related-link{min-height:0;padding-bottom:6px}
  .info-page .page-next{padding-block:39px 49px;grid-template-columns:1fr;gap:16px}
  .info-page .page-next h2{font-size:clamp(44px,10.5vw,72px);margin-bottom:20px}
  .info-page .page-next .page-meta{margin-bottom:20px}
  .info-page .page-footer{padding:30px 22px 25px}
  .info-page .footer-top{display:block}
  .info-page .footer-wordmark{font-size:54px}
  .info-page .footer-services{justify-content:flex-start;max-width:none;gap:5px 22px;margin-top:24px}
  .info-page .footer-bottom{display:block;padding-top:25px}
  .info-page .footer-bottom span{display:block;margin-bottom:10px}
  .info-page .brief-layout,.info-page .brief-fields{grid-template-columns:1fr;gap:25px}
  .info-page .brief-aside p{max-width:45ch}
  .info-page .field-wide{grid-column:1}
  .info-page .interest-grid{grid-template-columns:1fr}
}
@media print{.info-page .site-header,.info-page .page-footer,.info-page .page-links,.info-page .brief-actions,.info-page .page-next{display:none}.info-page,.info-page .page-main{background:white;color:black;padding:0}.info-page .brief-review pre{color:black;border-color:black;background:white}.info-page .brief-review{break-inside:avoid}}

.info-page .related-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.info-page .required{font-size:16px;color:var(--accent)}
.info-page .page-slogan{margin-top:14px}
.info-page .brief-error{font-size:16px;line-height:1.5;color:var(--accent);margin-top:12px}
.info-page .brief-error:empty{display:none}
.info-page .founder-bios{margin-top:8px}
@media(max-width:1000px){.info-page .related-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Honeypot: off-screen rather than display:none, which some bots detect and skip. */
.info-page .field-trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* note-block is a 1fr 2fr grid: the h3 takes column one and the first paragraph
   column two. A second paragraph would otherwise wrap back under the heading. */
.info-page .note-block p+p{grid-column:2;margin-top:14px}

/* websites.html section A: a prose block followed by an unequal pair of cards.
   .scope-pair exists only on websites.html (grepped: no other page or stylesheet
   uses it). It puts the pair on the page's own 1fr/2fr grid, so the short card
   sits under the section index and the main card under the prose, then restores
   the single-column collapse at 760px, which the extra class would otherwise
   beat on specificity. 40/28px is the step .note-block already uses. */
.info-page .scope-grid.scope-pair{grid-template-columns:1fr 2fr;gap:40px;margin-top:40px}
.info-page .scope-pair .scope-card p:last-child{max-width:69ch}
@media(max-width:760px){.info-page .scope-grid.scope-pair{grid-template-columns:1fr;gap:29px;margin-top:28px}}

/* September pricing and website editorial sections. No changes to 3D styling. */
.info-page .pricing-intro{max-width:78ch;margin-bottom:38px}
.info-page .pricing-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line)}
.info-page .price-card{display:flex;flex-direction:column;min-width:0;padding:30px 25px}
.info-page .price-card+.price-card{border-left:1px solid var(--line)}
.info-page .price-card .page-meta{font-size:12px;color:var(--accent);margin-bottom:22px}
.info-page .price-card h3{font-size:42px;margin-bottom:18px}
.info-page .plan-audience{min-height:108px;color:var(--muted);font-size:17px}
.info-page .plan-price{font-size:clamp(46px,4.4vw,70px);letter-spacing:-.05em;line-height:1;margin:8px 0 12px;white-space:nowrap}
.info-page .plan-price span,.info-page .summary-price span{display:block;font-size:16px;line-height:1.5;letter-spacing:0;margin-top:10px}
.info-page .plan-setup{color:var(--accent);margin-bottom:12px}
.info-page .plan-commitment{font-size:14px;color:var(--muted);min-height:66px;margin-bottom:20px}
.info-page .plan-inherits{font-size:16px;margin-bottom:0}
.info-page .plan-features{list-style:none;margin:14px 0 32px;padding:0;font-size:16px;color:#c8c9bd}
.info-page .plan-features li{border-top:1px solid var(--line);padding:12px 0}
.info-page .plan-select{margin-top:auto;align-self:flex-start}
.info-page .plan-details{margin-top:30px}
.info-page .plan-details details{border-bottom:1px solid var(--line)}
.info-page .plan-details .faq-answer{max-width:90ch}
.info-page .channel-pricing{border-top:1px solid var(--line);padding-top:50px;margin-top:55px;scroll-margin-top:90px}
.info-page .channel-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin-top:32px}
.info-page .channel-card{padding:26px 0;border-block:1px solid var(--line)}
.info-page .channel-price{font-size:25px;color:var(--accent)}
/* Ad budgets are paid to the platforms, not to us, so each card carries its own
   floor under the management fee. Muted and small so it reads as a note on the
   price rather than a second price. */
.info-page .channel-spend{font-size:15px;line-height:1.55;color:var(--muted);max-width:34ch;margin:10px 0 0}
.info-page .channel-sources{font-size:15px;line-height:1.55;color:var(--muted);max-width:66ch;margin:34px 0 0}
.info-page .channel-card ul,.info-page .website-checklist ul{padding-left:22px;color:#c8c9bd}
.info-page .channel-card li,.info-page .website-checklist li{margin-bottom:9px}
.info-page .channel-combined{display:flex;justify-content:space-between;gap:32px;align-items:center;padding:30px 0}
.info-page .channel-combined p{max-width:58ch;margin-bottom:0;color:var(--muted)}
.info-page .channel-combined .text-link{flex-shrink:0}
.info-page .note-block>div p+p{margin-top:16px}
.info-page .plan-fields{margin-top:26px}
.info-page .website-feature{display:grid;grid-template-columns:1.05fr 1fr;gap:48px;align-items:start}
.info-page .website-proof{margin:0}
.info-page .website-proof img{display:block;width:100%;height:auto;border:1px solid var(--line)}
.info-page .website-proof figcaption{font:13px/1.6 var(--mono);color:var(--muted);margin-top:16px}
.info-page .website-editorial article{display:grid;grid-template-columns:1fr 2fr;gap:40px;padding:28px 0;border-top:1px solid var(--line)}
.info-page .website-editorial h3{max-width:18ch}
.info-page .website-working{display:grid;grid-template-columns:1.5fr 1fr;gap:60px}
.info-page .website-checklist{border-left:2px solid var(--accent);padding:25px;background:#171914;align-self:start}
.info-page .website-checklist h3{font-size:27px}
.info-page .website-checklist p{font-size:16px;color:var(--muted)}
.info-page .website-price-summary{display:grid;grid-template-columns:1fr 2fr;gap:40px}
.info-page .summary-price{font-size:72px;letter-spacing:-.05em;line-height:1;margin-bottom:15px}
.info-page .website-related{display:flex;flex-wrap:wrap;align-items:center;gap:16px 35px;border-top:1px solid var(--line);padding:28px 0}
.info-page .website-related .page-meta{font-size:13px;color:var(--muted);margin-right:auto}
@media(max-width:1100px){.info-page .price-card{padding:25px 18px}.info-page .plan-audience{min-height:135px}.info-page .plan-commitment{min-height:84px}.info-page .website-feature,.info-page .website-working{gap:30px}}
@media(max-width:760px){
 .info-page .pricing-grid,.info-page .channel-grid,.info-page .website-feature,.info-page .website-editorial article,.info-page .website-working,.info-page .website-price-summary{grid-template-columns:1fr;gap:25px}
 .info-page .pricing-grid{gap:0}.info-page .price-card{padding:30px 24px}.info-page .price-card+.price-card{border-left:0;border-top:1px solid var(--line)}
 .info-page .plan-audience,.info-page .plan-commitment{min-height:0}.info-page .plan-price{font-size:60px}
 .info-page .channel-combined{display:block}.info-page .channel-combined .text-link{margin-top:18px}
 .info-page .note-block p+p{grid-column:auto}
 .info-page .website-editorial h3{max-width:none;margin-bottom:0}
 .info-page .header-nav{flex-wrap:wrap;gap:0 16px;justify-content:flex-start}
 .info-page .header-nav .nav-link{font-size:14px}
}
@media(max-width:480px){
 .info-page .header-nav{display:grid;grid-template-columns:repeat(3,max-content);width:100%;gap:0 16px}
 .info-page .header-nav .nav-link{justify-self:start}
 .info-page .page-main{padding-top:155px}
 .info-page .page-section,.info-page .channel-pricing{scroll-margin-top:175px}
}

/* local-seo.html section A: a row of three cited figures under the prose.
   .figure-row, .figure-value and .figure-note appear only on local-seo.html
   (grepped across every file in Website/: no other page, stylesheet or script
   uses any of the three). The row rides .scope-grid for its columns and for the
   760px collapse to one column, so all this adds is the list reset and the
   figure typography. 40/28px is the step .note-block and .scope-pair already use.
   The .figure-note selector carries four classes on purpose: .scope-card
   p:last-child would otherwise win on specificity and recolour the citation. */
.info-page .scope-grid.figure-row{list-style:none;margin:40px 0 0;padding:0}
.info-page .scope-grid.figure-row .figure-value{font-size:clamp(52px,5.4vw,78px);line-height:1;letter-spacing:-.05em;color:var(--accent);margin:0 0 18px}
.info-page .scope-grid.figure-row .figure-note{font:14px/1.6 var(--mono);color:var(--muted);margin:16px 0 0;text-transform:none;letter-spacing:0}
@media(max-width:760px){.info-page .scope-grid.figure-row{margin-top:28px}}

/* Section A ends with a prose block under the note. .note-block sets a top
   margin but never a bottom one, because nothing has ever followed it on this
   site, so without this the two touch. 40/28px is the step .note-block itself
   uses. Grepped: no live page puts .indented-copy directly after .note-block. */
.info-page .note-block+.indented-copy{margin-top:40px}
@media(max-width:760px){.info-page .note-block+.indented-copy{margin-top:28px}}

/* Tablet widths (761-980px): the one-row header ran out of room and pushed “Let’s talk” off the screen,
   so pages with a menu use the two-row phone header here too. */
@media(min-width:761px) and (max-width:980px){.info-page:has(.header-nav) .site-header{height:auto;min-height:111px;display:grid;grid-template-columns:1fr auto;gap:0 15px;padding:14px var(--pad) 0}.info-page:has(.header-nav) .site-header .brand{align-self:center}.info-page:has(.header-nav) .contact-button{grid-column:2;grid-row:1;margin:0}.info-page:has(.header-nav) .header-nav{display:flex;grid-column:1/-1;grid-row:2;flex-wrap:wrap;justify-content:flex-start;margin:7px 0 0;gap:0 22px}.info-page:has(.header-nav) .page-main{padding-top:111px}.info-page:has(.header-nav) .page-section{scroll-margin-top:135px}}
