/* Publisher treatment for product, catalogue and information pages.
   Bootstrap and the older component sheets retain their layout utilities.
   Scope visual changes to these pages; shared chrome lives in publisher.css. */
html { font-size:16px; }
body { padding-top:0; }
body > .footer { background:var(--sunken) !important; padding:30px 0 !important; }
body > .footer a, body > .footer p, body > .footer small { color:var(--text-muted) !important; }
body > .footer .footer-brand { color:var(--text) !important; }
body > .footer a:hover { color:var(--link) !important; text-decoration:underline; }
.site-header .brand { color:var(--text); }
.site-header .nav { padding:0; }
.site-header .btn { box-shadow:none; }
.publisher-page { padding-bottom:40px; }
.publisher-page .container { width:min(1240px, calc(100% - 80px)); max-width:none; padding-inline:0; }
.publisher-page section { padding-block:48px; }
.publisher-page :is(.hero-section,.studio-hero,.door-hero) { background:transparent; padding-block:45px 55px; color:var(--text); }
.publisher-page :is(.hero-section,.studio-hero) .container { text-align:left !important; }
.publisher-page :is(.hero-section,.studio-hero) .lead { margin-inline:0 !important; }
.publisher-page :is(.hero-section,.studio-hero,.door-hero) h1 { font:600 clamp(44px,5.5vw,76px)/1.05 'Dimple Sans Variable',var(--body); letter-spacing:-1.5px; max-width:19ch; }
.publisher-page :is(.hero-section,.studio-hero,.door-hero) p { font-size:22px; line-height:1.65; max-width:60ch; color:var(--text-muted); }
.publisher-page :is(.eyebrow,.pill,.pp-kicker,.pp-badge) { font:400 16px/1.5 var(--body); text-transform:none; letter-spacing:0; }
.publisher-page .pill { padding:0; background:none; border:0; color:var(--text-subtle); }
.publisher-page :is(.bg-white,.bg-light,.band,.cat-band) { background:transparent !important; }
.publisher-page :is(.card,.pp-feat,.pp-sheet,.product-tile,.pick-card,.game-cards > li > a,.app-cards > li > a,.font-card) { background:transparent; box-shadow:none; border-radius:0; }
.publisher-page .card { border:0; }
.publisher-page .shadow-sm { box-shadow:none !important; }
.publisher-page .row { --bs-gutter-x:2rem; }
.publisher-page .row > * { min-width:0; }
.publisher-page .card-body { padding-inline:0; }
.publisher-page :is(.door-tile,.collection-tile) { border-radius:12px; background:var(--sunken); color:var(--text); }
.publisher-page :is(.door-tile,.collection-tile):is(:hover,:focus,:active,:visited) { color:var(--text); background:var(--sunken); }
.publisher-page .product-tile { border-bottom:1px solid var(--border); padding-block:25px; }
.publisher-page .font-card { border-bottom:1px solid var(--border); }
.publisher-page .apps-feature { gap:65px; }
.publisher-page .apps-feature > img { border-width:4px; border-radius:24px; }
.publisher-page .app-row { padding:30px 0; background:transparent; border-radius:0; border-bottom:1px solid var(--border); }
.publisher-page .app-row h2 { font:450 32px/1.2 var(--display); }
.publisher-page .app-row .more-link { color:var(--link); text-decoration:underline; text-underline-offset:4px; }
.publisher-page :is(.font-cta,.shop-free,.shop-paid,.glyph-zoom,.pairing) { background:transparent; border-radius:0; }
.publisher-page :is(.shop-free,.shop-paid) { padding:28px 0; border:0; border-top:1px solid var(--border); }
.publisher-page :is(.font-tools,.specimen) { background:transparent; }
.publisher-page .specimen-lines { overflow-x:auto; }
.publisher-page .glyph-grid button:focus-visible { outline:3px solid var(--focus); outline-offset:-3px; }
.publisher-page .font-tools .chips button { min-height:44px; }
.publisher-page .font-hero h1.font-name { font-family:inherit; }
.publisher-page .callout-terra { background:transparent !important; border-radius:0; border-block:1px solid var(--border); color:var(--text); padding:35px 0; }
.publisher-page .callout-terra :is(h2,p) { color:var(--text) !important; }
.publisher-page .btn { min-height:46px; box-shadow:none; font-size:17px; border-radius:26px; }
.publisher-page .btn:hover { transform:none; }
.publisher-page .btn:is(.btn-primary,.btn-light,.btn-fonts,.btn-invert) { background:var(--primary) !important; border-color:var(--primary) !important; color:var(--on-primary) !important; }
.publisher-page .btn:is(.btn-primary,.btn-light,.btn-fonts,.btn-invert):is(:hover,:focus) { background:var(--primary-hover) !important; border-color:var(--primary-hover) !important; color:var(--on-primary) !important; }
.publisher-page .btn:is(.btn-outline-primary,.btn-fonts-outline) { background:transparent !important; border-color:var(--text) !important; color:var(--text) !important; }
.publisher-page .btn:is(.btn-outline-primary,.btn-fonts-outline):is(:hover,:focus) { background:var(--sunken) !important; color:var(--text) !important; }
.publisher-page .blog-content { font-size:20px; line-height:1.8; }
.publisher-page .blog-content a { color:var(--link); text-decoration:underline; }
.publisher-page .animate-fade-in { animation:none; }

/* Product pages: the real screen is the illustration. Colour remains in the
   product itself; the surrounding page uses the studio's paper and quiet type. */
.publisher-page .pp { --pp-own-bg:transparent !important; --pp-own-ink:var(--text) !important; --pp-own-sub:var(--text-muted) !important; --pp-own-accent:var(--link) !important; }
.publisher-page .pp-hero { background:transparent; padding-block:24px 50px; }
.publisher-page .pp-hero-grid { gap:60px; }
.publisher-page .pp-title h1 { font:600 clamp(44px,5vw,70px)/1.05 'Dimple Sans Variable',var(--body); letter-spacing:-1px; }
.publisher-page .pp-title img { width:68px; height:68px; box-shadow:none; }
.publisher-page .pp-headline { font:450 clamp(28px,3vw,40px)/1.2 var(--display); margin-block:22px 18px; }
.publisher-page .pp-tagline { font-size:22px; line-height:1.65; }
.publisher-page .pp-facts { gap:12px 22px; }
.publisher-page .pp-facts li { background:transparent; padding:0; font-size:17px; }
.publisher-page .pp-phones { height:530px; }
.publisher-page .pp-phone { width:235px; border-width:5px; border-radius:25px; box-shadow:0 16px 35px #14121015; }
.publisher-page .pp-phone-back { transform:none; top:45px; }
.publisher-page .pp-phone-front { transform:none; top:0; }
.publisher-page .pp-phones-one .pp-phone-front { transform:translateX(50%); }
.publisher-page .pp-hero-image img { margin-bottom:0; max-height:540px; object-fit:contain; filter:none; }
.publisher-page .pp-desktop img { box-shadow:0 12px 35px #14121012; }
.publisher-page .pp-sec { padding-block:48px; }
.publisher-page .pp-sec-alt { background:transparent; }
.publisher-page .pp-h2 { font:450 clamp(30px,3.5vw,43px)/1.2 var(--display); }
.publisher-page .pp-feats { gap:30px 42px; margin-top:32px; }
.publisher-page .pp-feat { padding:0; }
.publisher-page .pp-feat-ic { width:auto; height:auto; display:block; background:none; margin-bottom:12px; color:var(--link); }
.publisher-page .pp-feat h3 { font:450 27px/1.2 var(--display); margin-bottom:12px; }
.publisher-page .pp-feat p { font-size:20px; line-height:1.65; }
.publisher-page .pp-two > *, .publisher-page .pp-read > * { min-width:0; overflow-wrap:anywhere; }
.publisher-page .faq summary { display:block; position:relative; padding-right:28px; }
.publisher-page .faq summary::after { position:absolute; right:0; top:3px; }
.publisher-page .callout-terra::before { content:none; }
.publisher-page .pp-panel { background:transparent; padding:20px 0 0; border-radius:0; }
.publisher-page .pp-sheet { padding:25px 0; border-block:1px solid var(--border); }
.publisher-page .pp-stats { background:transparent; padding-block:24px; }
.publisher-page .pp-stats-in { border-block:1px solid var(--border); padding-block:24px; }
.publisher-page .pp-stats b { color:var(--text); }
.publisher-page .pp-stats span { color:var(--text-muted); }
.publisher-page .pp-cta { background:transparent; border-radius:0; border-block:1px solid var(--border); padding:32px 0; color:var(--text); }
.publisher-page .pp-cta :is(.pp-h2,.pp-kicker) { color:var(--text); }
.publisher-page .pp-cta :is(p,.pp-other) { color:var(--text-muted); }
.publisher-page .pp-more a { background:transparent; box-shadow:none; }
.publisher-page .card-img-wrapper { height:auto; background:transparent; }
.publisher-page .card-img-wrapper img { object-fit:contain; mask-image:linear-gradient(to right,transparent,#000 6%,#000 94%,transparent),linear-gradient(to bottom,transparent,#000 8%,#000 92%,transparent); mask-composite:intersect; }
@media(max-width:820px) {
  .publisher-page .container { width:calc(100% - 40px); }
  .site-header .nav { padding:18px 25px; }
  .publisher-page .pp-hero-grid { gap:30px; }
  .publisher-page .pp-phones { height:470px; }
  .publisher-page .pp-phone { width:210px; }
}
@media(max-width:600px) {
  .publisher-page .container { width:calc(100% - 36px); }
  .publisher-page section { padding-block:32px; }
  .publisher-page :is(.hero-section,.studio-hero,.door-hero) { padding-block:30px 38px; }
  .publisher-page :is(.hero-section,.studio-hero,.door-hero) p, .publisher-page .pp-tagline { font-size:20px; }
  .publisher-page .pp-title { gap:16px; }
  .publisher-page .pp-title img { width:56px; height:56px; }
  .publisher-page .pp-title h1 { font-size:42px; overflow-wrap:anywhere; }
  .publisher-page .pp-phones { max-width:360px; width:100%; height:430px; margin-inline:auto; }
  .publisher-page .pp-phone { width:195px; }
  .publisher-page .pp-hero-grid { grid-template-columns:1fr; }
  .publisher-page .pp-feats { gap:30px; }
}
