/* Product page: reuses the homepage tokens, fonts, header, icons and effects. */
.edition-hero { position:relative; z-index:1; padding-top:100px; padding-bottom:52px; }
.breadcrumbs { display:flex; align-items:center; color:var(--ink-2); font-size:13px; }
.breadcrumbs a { display:inline-flex; align-items:center; min-height:44px; }
.breadcrumbs a:hover { color:var(--ink); text-decoration:underline; text-underline-offset:4px; }
.breadcrumbs>span { margin-left:12px; }
.edition-hero-copy { margin:28px auto 0; max-width:980px; text-align:center; }
.edition-pill { display:inline-flex; align-items:center; min-height:34px; padding:6px 14px; border:1px solid #d5d7dd; border-radius:999px; font-size:12px; background:var(--surface); }
.edition-pill:before { content:""; width:7px; height:7px; border-radius:50%; margin-right:9px; background:var(--ink); }
.edition-hero h1 { margin-top:22px; font-size:48px; font-size:clamp(48px,7.8vw,100px); line-height:1.12; letter-spacing:-.04em; }
.edition-hero h1>span { display:block; }
.edition-hero h1>span:last-child { white-space:nowrap; }
.edition-lead { margin:24px auto 0; color:var(--ink-2); font-size:17px; line-height:1.8; max-width:630px; text-wrap:pretty; }
.edition-actions { display:grid; grid-template-columns:1fr; gap:12px; margin:28px auto 0; max-width:520px; }
.edition-price-preview { display:flex; flex-direction:column; justify-content:center; margin:24px auto 0; font-size:13px; color:var(--ink-2); }
.edition-price-preview p { max-width:none; }
.edition-price-preview p+p { margin-top:6px; }
.edition-price-preview strong { color:var(--ink); font-weight:600; }
.edition-hero-copy>* { animation:rise .8s cubic-bezier(.2,.7,.2,1) backwards; }
.edition-hero-copy>h1 { animation-delay:.08s; }
.edition-hero-copy>.edition-lead { animation-delay:.16s; }
.edition-hero-copy>.edition-actions { animation-delay:.24s; }
.edition-hero-copy>.edition-price-preview { animation-delay:.3s; }
.forecast-edition-page .hero-bg { height:800px; -webkit-mask-image:radial-gradient(ellipse 85% 68% at 50% 25%,#000 0,transparent 78%); mask-image:radial-gradient(ellipse 85% 68% at 50% 25%,#000 0,transparent 78%); }

.quarter-section { padding-top:12px; padding-bottom:56px; }
.quarter-heading { color:var(--ink-2); font-size:13px; margin-bottom:16px; }
.quarter-rail { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.quarter-cell { padding:20px 12px; border-right:1px solid var(--line); }
.quarter-cell:last-child { border-right:0; }
.quarter-cell>span { display:block; font-size:19px; font-family:var(--font-display); font-weight:700; }
.quarter-cell>small { display:block; margin-top:5px; color:var(--ink-2); font-size:10px; }
.quarter-cell.current { position:relative; background:var(--ink); color:var(--on-dark); }
.quarter-cell.current:before { content:""; position:absolute; top:-1px; left:0; right:0; height:3px; background:var(--marker); }
.quarter-cell.current>small { color:var(--on-dark-2); }

.edition-section-heading>p { margin-top:20px; color:var(--ink-2); font-size:15px; }
.pricing-section { padding-top:32px; }
.price-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:20px; margin-top:36px; }
.price-card { display:flex; flex-direction:column; min-width:0; padding:28px 24px; border:1px solid var(--line); border-radius:24px; background:var(--surface); }
.price-card h3 { font-size:26px; }
.price-card-description { font-size:14px; margin-top:10px; color:var(--ink-2); }
.price-amount { display:flex; align-items:baseline; flex-wrap:wrap; margin-top:28px; }
.price-amount strong { font-family:var(--font-display); font-weight:800; font-size:48px; font-size:clamp(44px,5vw,66px); line-height:1.18; letter-spacing:-.045em; font-variant-numeric:tabular-nums; white-space:nowrap; }
.price-amount small { font-size:13px; color:var(--ink-2); margin-left:8px; }
.skill-price-list { margin:28px 0; }
.skill-price-list>div { display:flex; justify-content:space-between; align-items:center; min-height:54px; border-top:1px solid var(--line); font-size:14px; }
.skill-price-list dt { display:flex; align-items:center; }
.skill-price-list .icon { width:18px; height:18px; margin-right:11px; }
.skill-price-list dd { margin:0 0 0 12px; font-weight:500; white-space:nowrap; font-variant-numeric:tabular-nums; }
.price-card .price-action { width:100%; margin-top:auto; }
.price-card-foot { font-size:12px; margin-top:16px; color:var(--ink-2); line-height:1.7; }
.price-card.featured { position:relative; color:var(--on-dark); background:var(--ink); border-color:var(--ink); }
.featured .price-card-description,.featured .price-amount small,.featured .price-card-foot { color:var(--on-dark-2); }
.bundle-tag { align-self:flex-start; margin-bottom:20px; padding:5px 11px; border-radius:999px; color:var(--ink); background:var(--marker); font-size:12px; font-weight:500; }
.bundle-reference { color:var(--on-dark-2); font-size:13px; margin-top:12px; }
.bundle-features { margin:26px 0 0; padding:0; list-style:none; }
.bundle-features li { display:flex; align-items:center; font-size:14px; min-height:44px; border-top:1px solid var(--line-dark); }
.bundle-features .icon { width:17px; height:17px; margin-right:12px; }
.featured .price-action { margin-top:auto; }
.featured .bundle-features { margin-bottom:28px; }
.pricing-rule { display:flex; align-items:flex-start; margin-top:24px; padding:20px 0 0; border-top:1px solid var(--line); color:var(--ink-2); font-size:14px; }
.pricing-rule .icon { width:20px; height:20px; margin:3px 12px 0 0; }
.pricing-rule p { max-width:none; }
.pricing-rule strong { color:var(--ink); font-weight:600; }

.edition-contents { padding-top:0; }
.edition-contents .product-list { margin-top:36px; }
.edition-contents .product-row p { max-width:34rem; }
.skill-meta { display:block; margin-top:14px; font-size:12px; color:var(--ink-2); }
.skill-enquire { display:inline-flex; align-items:center; min-height:44px; margin-top:12px; font-size:14px; font-weight:500; text-decoration:underline; text-underline-offset:5px; }
.skill-enquire .icon { width:16px; height:16px; margin-left:10px; }
.skill-enquire:hover { color:var(--ink-2); }
.forecast-edition-page .faq { padding-top:0; }
.forecast-edition-page .contact h2 { max-width:18ch; }
.edition-contact-note { margin:24px auto 0; color:var(--on-dark-2); font-size:13px; }

@media(min-width:480px) {
  .edition-actions { grid-template-columns:auto auto; justify-content:center; max-width:none; }
  .edition-price-preview { flex-direction:row; }
  .edition-price-preview p+p { margin-top:0; margin-left:24px; padding-left:24px; border-left:1px solid #c9ccd3; }
}
@media(min-width:768px) {
  .edition-hero { padding-top:100px; padding-bottom:64px; }
  .edition-hero-copy { margin-top:28px; }
  .edition-pill { font-size:13px; }
  .edition-hero h1 { margin-top:24px; }
  .edition-lead { font-size:18px; }
  .edition-actions { margin-top:30px; }
  .edition-price-preview { margin-top:26px; font-size:14px; }
  .quarter-section { padding-bottom:72px; }
  .quarter-rail { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .quarter-cell { display:flex; justify-content:space-between; align-items:center; padding:22px 24px; }
  .quarter-cell>span { font-size:24px; }
  .quarter-cell>small { margin-top:0; margin-left:12px; font-size:12px; }
  .edition-section-heading { display:flex; align-items:flex-end; justify-content:space-between; }
  .edition-section-heading>p { margin:0 0 0 40px; max-width:280px; }
  .price-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin-top:48px; }
  .price-card { padding:32px 28px; }
  .price-card h3 { font-size:27px; }
  .price-card-description { font-size:14px; }
  .price-amount strong { font-size:50px; }
  .featured .bundle-tag { margin-bottom:14px; }
  .price-card-foot { min-height:42px; }
  .pricing-rule { margin-top:28px; font-size:15px; }
  .edition-contents .product-list { margin-top:48px; }
}
@media(min-width:1024px) {
  .edition-hero { padding-top:108px; padding-bottom:72px; }
  .edition-hero-copy { margin-top:34px; }
  .edition-hero h1 { font-size:92px; }
  .edition-lead { font-size:19px; }
  .edition-actions { margin-top:34px; }
  .quarter-section { padding-bottom:88px; }
  .quarter-cell { padding-left:32px; padding-right:32px; }
  .price-grid { gap:32px; }
  .price-card { padding:40px; }
  .price-card h3 { font-size:30px; }
  .price-card-description { font-size:15px; }
  .price-amount { margin-top:32px; }
  .price-amount strong { font-size:66px; }
  .price-amount small { font-size:14px; }
  .skill-price-list>div { min-height:58px; font-size:16px; }
  .bundle-features li { min-height:47px; font-size:16px; }
  .bundle-reference { font-size:14px; }
  .price-card .price-action { min-height:56px; font-size:16px; }
  .price-card-foot { font-size:13px; }
  .bundle-tag { font-size:13px; }
}
@media(prefers-reduced-motion:reduce) {
  .edition-hero-copy>* { animation:none; }
}
