/* Reduced-density editorial layout */
.section--text {
  min-height: 620px;
  display: block;
  position: relative;
}

.section--text .section__copy {
  max-width: 900px;
  margin: 0 auto;
}

.section--text h2 { max-width: 12em; }
.section--text p { max-width: 44em; }

.section--text::after {
  content: "";
  position: absolute;
  right: 8vw;
  bottom: 70px;
  width: clamp(90px, 14vw, 190px);
  height: clamp(90px, 14vw, 190px);
  border-radius: 50%;
  opacity: .07;
  background: currentColor;
}

.section--accent-coral { border-top: 8px solid var(--coral); }
.section--accent-blue { border-top: 8px solid var(--blue); }
.section--price-clean .section__copy { text-align: center; }
.section--price-clean .price { justify-content: center; }
.section--price-clean p { margin-left: auto; margin-right: auto; }

.button--disabled {
  opacity: .62;
  box-shadow: none;
  background: #8b6f70;
  font-size: 13px;
}

@media (max-width: 820px) {
  .section { padding: 68px 20px; gap: 32px; }
  .section--text { padding-top: 82px; padding-bottom: 82px; }
  .section--text::after {
    width: 90px;
    height: 90px;
    right: -28px;
    bottom: 28px;
  }
  .section__visual img {
    height: auto;
    aspect-ratio: 16 / 10;
    object-fit: cover;
    border-radius: 20px;
    box-shadow: 0 14px 34px rgba(5, 15, 30, .14);
  }
  .button { font-size: 13px; }
}

.header-cta { color:#fff; text-decoration:none; font-weight:800; font-size:13px; }
.number-list { display:grid; gap:16px; margin-top:32px; }
.number-list div { border-top:1px solid rgba(255,255,255,.25); padding-top:14px; display:grid; grid-template-columns:42px 1fr; gap:4px 12px; }
.number-list b { color:#ffcf59; grid-row:1/3; }
.number-list strong,.number-list span { display:block; }
.number-list span { font-size:14px; opacity:.8; }
.work-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin:34px 0; }
.work-grid article { background:#fff; border-radius:18px; padding:24px; box-shadow:0 8px 24px rgba(12,28,52,.07); }
.work-grid b { color:var(--coral); }
.work-grid h3,.plan h3 { font-size:22px; margin:10px 0; }
.work-grid p { font-size:15px; }
.plan-section { grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr); }
.plan-copy { max-width:900px; }
.plan-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:16px; margin:30px 0; }
.plan { background:#fff; border:1px solid #dce1eb; border-radius:22px; padding:26px; }
.plan--primary { border:3px solid var(--blue); }
.plan>span { color:var(--blue); font-size:12px; font-weight:800; }
.plan-price { color:var(--blue); font-size:30px; font-weight:900; margin:10px 0; }
.plan-price small { font-size:13px; margin-left:5px; }
.plan ul { list-style:none; padding:0; margin:18px 0 0; display:grid; gap:8px; font-size:13px; }
.plan li::before { content:"✓"; color:var(--coral); margin-right:8px; }
.payment-note { font-size:12px; color:var(--muted); background:#ece8e0; border-radius:12px; padding:16px; }
.support-grid { list-style:none; counter-reset:support; padding:0; display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }
.support-grid li { counter-increment:support; background:rgba(255,255,255,.55); border-radius:14px; padding:14px; font-weight:700; }
.support-grid li::before { content:counter(support,decimal-leading-zero); color:var(--blue); margin-right:12px; }
.story blockquote { font-family:"Yu Mincho","Hiragino Mincho ProN",serif; font-size:clamp(30px,4vw,52px); margin:38px 0; color:var(--blue); }
.faq details { border-top:1px solid #d2cec5; padding:18px 0; }
.faq details:last-child { border-bottom:1px solid #d2cec5; }
.faq summary { cursor:pointer; font-size:17px; font-weight:800; }
.faq details p { margin:12px 0 0; font-size:15px; color:var(--muted); }
.cta-flow { list-style:none; padding:0; margin:26px 0 0; display:flex; gap:8px; flex-wrap:wrap; }
.cta-flow li { border:1px solid rgba(255,255,255,.3); border-radius:99px; padding:7px 14px; font-size:13px; }
.sticky-cta { position:fixed; z-index:20; left:50%; bottom:12px; transform:translateX(-50%); background:var(--blue); color:#fff; text-decoration:none; padding:12px 24px; border-radius:99px; font-size:13px; font-weight:800; box-shadow:0 8px 24px rgba(5,15,30,.28); }

h1, h2, h3 {
  text-wrap: balance;
  line-break: strict;
  overflow-wrap: normal;
}

@media (max-width:820px) {
  .header-cta { font-size:11px; }
  h1, h2 {
    width: 100%;
    max-width: 100%;
    line-height: 1.38;
    letter-spacing: -.02em;
    word-break: auto-phrase;
  }
  h1 { font-size: clamp(37px, 10.4vw, 45px); }
  h2 { font-size: clamp(30px, 8.5vw, 37px); }
  h1 br, h2 br { display: none; }
  h1 em { display: inline; }
  .section__copy > p:not(.eyebrow):not(.tiny):not(.note):not(.payment-note) {
    line-height: 1.95;
    max-width: 34em;
  }
  .eyebrow { margin-bottom: 16px; }
  .work-grid,.plan-grid,.support-grid { grid-template-columns:1fr; }
  .plan-section { grid-template-columns:1fr; }
  .plan-section .section__visual { display:none; }
  .sticky-cta { width:calc(100% - 24px); text-align:center; bottom:8px; }
  footer { padding-bottom:100px; }
}
