/* ==========================================================
   Concrete Leveling Pasadena – Service Page Styles
   Each page combines different hero / intro / process / cost /
   FAQ layouts so every service page looks distinct.
   ========================================================== */

/* ---------- Shared bits ---------- */
.service-page main img { width: 100%; height: auto; display: block; }
.btn--ghost { border-color: var(--green-800); color: var(--green-800); background: transparent; }
.btn--ghost:hover { background: var(--green-800); color: #fff; }
.btn--white { background: #fff; color: var(--orange); }
.btn--white:hover { background: var(--green-800); color: #fff; }
.sv-buttons { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 24px; }

.crumbs { display: flex; flex-wrap: wrap; gap: 8px; font-size: 13.5px; color: var(--muted); margin-bottom: 14px; }
.crumbs a { color: var(--orange); font-weight: 600; }
.crumbs a:hover { text-decoration: underline; }
.crumbs--light { color: #c9d6ce; }
.crumbs--light a { color: #ffb487; }

.sv-title { font-size: clamp(32px, 4.2vw, 54px); font-weight: 800; line-height: 1.06; letter-spacing: -.4px; }
.sv-tagline { font-size: 18.5px; margin-top: 14px; max-width: 560px; }
.sv-sub { font-size: 16px; margin-top: 8px; color: var(--text); }
.sv-mini-h { font-size: 17px; font-weight: 800; margin: 22px 0 10px; }
.sv-center-h2 { text-align: center; font-size: clamp(24px, 2.6vw, 32px); font-weight: 800; margin: 46px 0 20px; }
.sv-prose h2 { font-size: clamp(26px, 2.8vw, 36px); font-weight: 800; margin-bottom: 14px; }
.sv-prose p { font-size: 16.5px; line-height: 1.65; }
.sv-prose p + p { margin-top: 14px; }
.sv-prose--center { max-width: 760px; margin: 0 auto; text-align: center; }
.sv-disclaimer { font-size: 13.5px; color: var(--muted); margin-top: 16px; }
.sv-hero__media { margin: 0; }
.sv-hero__media img, .sv-intro__img img, .sv-strip img { object-fit: cover; }

/* ==========================================================
   HERO VARIANTS
   ========================================================== */
.sv-hero { padding: 40px 0 48px; }
.sv-hero__grid { display: grid; grid-template-columns: 1fr 1.1fr; gap: 48px; align-items: center; }
.sv-hero__grid--rev { grid-template-columns: 1.1fr 1fr; }

/* split – driveway */
.sv-hero--split { background: linear-gradient(180deg, #fff 0%, var(--bg-soft) 100%); }
.sv-hero--split .sv-hero__media img { border-radius: 14px; box-shadow: 0 18px 40px rgba(16,42,28,.18); aspect-ratio: 920/510; }
.sv-hero--split .sv-title { color: var(--green-800); }

/* banner – sidewalk */
.sv-hero--banner { padding: 0 0 40px; background: var(--bg-soft); }
.sv-hero__band { background: var(--green-800); color: #e6ece8; padding: 40px 0 150px; text-align: center; }
.sv-hero__band .sv-title { color: #fff; }
.sv-hero__band .crumbs, .sv-hero__band .sv-buttons { justify-content: center; }
.sv-hero__band .sv-tagline { margin-left: auto; margin-right: auto; }
.sv-hero--banner .sv-hero__media { margin: -120px auto 0; max-width: 1000px; }
.sv-hero--banner .sv-hero__media img { border-radius: 10px; border: 6px solid #fff; box-shadow: var(--shadow); aspect-ratio: 920/510; }

/* warm – patio */
.sv-hero--warm { background: #fdf3ea; }
.sv-hero--warm .sv-hero__media img { border-radius: 200px 14px 14px 14px; aspect-ratio: 920/510; box-shadow: 0 14px 34px rgba(160,80,20,.18); }
.sv-hero--curve-tr .sv-hero__media img { border-radius: 14px 200px 14px 14px; }
.sv-hero--curve-bl .sv-hero__media img { border-radius: 14px 14px 14px 200px; }

/* centered – pool deck */
.sv-hero--centered { text-align: center; background: linear-gradient(180deg, #eef6f8 0%, #fff 70%); }
.sv-hero--centered .crumbs, .sv-hero--centered .sv-buttons { justify-content: center; }
.sv-hero--centered .sv-tagline { margin-left: auto; margin-right: auto; }
.sv-hero--centered .sv-hero__media { margin: 32px auto 0; max-width: 1000px; }
.sv-hero--centered .sv-hero__media img { border-radius: 24px; aspect-ratio: 920/510; box-shadow: 0 20px 44px rgba(16,42,28,.16); }

/* dark – garage */
.sv-hero--dark { background: var(--green-900); color: #dfe8e2; }
.sv-hero--dark .sv-title { color: #fff; }
.sv-hero--dark .sv-hero__media img { border-radius: 6px; aspect-ratio: 920/510; outline: 4px solid var(--orange); outline-offset: 10px; }

/* edge – foundation */
.sv-hero--edge { display: grid; grid-template-columns: 1.15fr 1fr; padding: 0; background: var(--green-800); color: #dfe8e2; align-items: center; }
.sv-hero--edge .sv-hero__media img { aspect-ratio: 920/510; display: block; }
.sv-hero__panel { padding: 48px clamp(24px, 5vw, 72px); display: flex; flex-direction: column; justify-content: center; border-left: 8px solid var(--orange); }
.sv-hero--edge .sv-title { color: #fff; }

/* overlap – parking */
.sv-hero--overlap { padding-top: 24px; }
.sv-hero--overlap .sv-hero__media img { border-radius: 4px; aspect-ratio: 920/510; max-height: 620px; }
.sv-hero__card { position: relative; margin: -110px 0 0 40px; max-width: 640px; background: #fff; padding: 28px 32px 30px; border-top: 6px solid var(--orange); box-shadow: 0 16px 40px rgba(16,42,28,.18); }

/* collage – stairs */
.sv-hero--collage { background: var(--bg-soft); }
.sv-collage { position: relative; padding: 0 0 60px 60px; }
.sv-collage img { border-radius: 10px; aspect-ratio: 920/510; box-shadow: 0 14px 34px rgba(16,42,28,.18); }
.sv-collage .sv-collage__b { position: absolute; left: 0; bottom: 0; width: 55%; border: 6px solid #fff; }

/* ==========================================================
   INTRO VARIANTS
   ========================================================== */
.sv-intro { padding: 56px 0; }
.sv-intro__grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 48px; align-items: center; }
.sv-intro__img { margin: 0; }
.sv-intro__img img { border-radius: 10px; aspect-ratio: 920/510; }
.sv-signs { display: grid; gap: 10px; }
.sv-signs li { display: flex; gap: 10px; align-items: flex-start; font-size: 15.5px; }
.sv-signs svg { width: 20px; height: 20px; flex-shrink: 0; margin-top: 2px; color: var(--orange); }

.sv-signs-box { margin-top: 40px; background: var(--green-800); color: #e6ece8; border-radius: 10px; padding: 28px 32px; }
.sv-signs-box h2 { color: #fff; font-size: 24px; font-weight: 800; margin-bottom: 16px; }
.sv-signs-box .sv-signs { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 12px 30px; }

.sv-intro--columns .sv-intro__grid { align-items: start; grid-template-columns: 1.3fr 1fr; }
.sv-signs-card { background: #fff; border: 1px solid var(--line); border-top: 5px solid var(--orange); border-radius: 8px; padding: 24px; box-shadow: var(--shadow); }
.sv-signs-card h2 { font-size: 21px; font-weight: 800; margin-bottom: 14px; }
.sv-strip { margin: 40px auto 0; max-width: 900px; }
.sv-strip img { border-radius: 8px; aspect-ratio: 920/510; }

.sv-intro--imgleft .sv-intro__grid { grid-template-columns: 1fr 1.1fr; }
.sv-intro--imgleft .sv-intro__img img { border-radius: 14px 14px 14px 90px; }
.sv-chips { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
.sv-chips li { display: flex; align-items: center; gap: 8px; background: #fff; border: 1px solid var(--line); border-radius: 40px; padding: 10px 18px; font-size: 15px; color: var(--ink); box-shadow: 0 2px 8px rgba(16,42,28,.05); }
.sv-chips svg { width: 18px; height: 18px; color: var(--orange); }

.sv-warn-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; }
.sv-warn-grid li { background: #fff; border-radius: 8px; padding: 20px 16px; text-align: center; box-shadow: var(--shadow); font-size: 15px; color: var(--ink); display: flex; flex-direction: column; align-items: center; gap: 12px; }
.sv-warn-grid svg { width: 30px; height: 30px; color: var(--orange); }

/* ==========================================================
   PROCESS VARIANTS
   ========================================================== */
.sv-process { padding: 56px 0; }
.sv-process h2 { font-size: clamp(26px, 2.8vw, 36px); font-weight: 800; }
.pr-num { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--orange); color: #fff; font-family: var(--font-head); font-weight: 800; font-size: 18px; flex-shrink: 0; }
.sv-process h3 { font-size: 18px; font-weight: 700; }
.sv-process li p { font-size: 15px; margin-top: 6px; }

/* row */
.pr-row { background: var(--bg-soft); }
.pr-row__list { list-style: none; display: grid; grid-template-columns: repeat(5, 1fr); gap: 20px; position: relative; padding: 0; }
.pr-row__list::before { content: ""; position: absolute; top: 22px; left: 10%; right: 10%; height: 3px; background: repeating-linear-gradient(90deg, var(--orange) 0 10px, transparent 10px 18px); }
.pr-row__list li { position: relative; text-align: center; display: flex; flex-direction: column; align-items: center; }
.pr-row__list h3 { margin-top: 14px; }

/* timeline */
.pr-timeline__grid { display: grid; grid-template-columns: 1fr 1.4fr; gap: 56px; align-items: start; }
.pr-timeline__grid header { position: sticky; top: 90px; }
.pr-timeline__grid header .btn { margin-top: 22px; }
.pr-timeline__list { list-style: none; padding: 0; position: relative; }
.pr-timeline__list::before { content: ""; position: absolute; left: 21px; top: 10px; bottom: 10px; width: 3px; background: var(--line); }
.pr-timeline__list li { position: relative; display: flex; gap: 22px; padding-bottom: 28px; }
.pr-timeline__list li:last-child { padding-bottom: 0; }
.pr-timeline__list .pr-num { position: relative; border: 4px solid #fff; box-sizing: content-box; width: 40px; height: 40px; }

/* zigzag */
.pr-zigzag { background: #fff; }
.pr-zigzag__list { list-style: none; padding: 0; max-width: 900px; margin: 0 auto; display: grid; gap: 16px; }
.pr-zigzag__list li { display: flex; gap: 22px; align-items: center; width: 70%; background: var(--bg-soft); border-radius: 10px; padding: 20px 24px; }
.pr-zigzag__list li:nth-child(even) { margin-left: auto; background: #fdf3ea; }
.pr-zigzag__list .pr-num { width: auto; height: auto; background: none; color: var(--orange); font-size: 40px; border-radius: 0; }

/* grid */
.pr-grid { background: linear-gradient(180deg, #eef6f8, #fff); }
.pr-grid__list { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.pr-grid__list li { position: relative; overflow: hidden; background: #fff; border-radius: 16px; padding: 26px 24px 24px; box-shadow: var(--shadow); }
.pr-grid__list li:first-child { grid-row: span 2; background: var(--green-800); color: #dfe8e2; display: flex; flex-direction: column; justify-content: flex-end; }
.pr-grid__list li:first-child h3 { color: #fff; font-size: 22px; }
.pr-big { position: absolute; right: 14px; top: -10px; font-family: var(--font-head); font-weight: 900; font-size: 90px; color: rgba(242,107,29,.16); line-height: 1; }

/* stepper (dark) */
.pr-stepper { background: var(--green-900); color: #c9d6ce; }
.pr-stepper h2, .pr-stepper h3 { color: #fff; }
.pr-stepper .sv-sub { color: #c9d6ce; }
.pr-stepper__list { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: 0; counter-reset: s; }
.pr-stepper__list li { padding: 0 18px 0 0; border-top: 4px solid rgba(255,255,255,.18); padding-top: 22px; position: relative; }
.pr-stepper__list li:first-child { border-top-color: var(--orange); }
.pr-stepper__list .pr-num { position: absolute; top: -24px; left: 0; border: 4px solid var(--green-900); box-sizing: content-box; width: 38px; height: 38px; }
.pr-stepper__list h3 { margin-top: 20px; }

/* ==========================================================
   COST VARIANTS
   ========================================================== */
.sv-cost { padding: 56px 0; }
.sv-cost h2 { font-size: clamp(26px, 2.8vw, 36px); font-weight: 800; }
.cost-range { font-family: var(--font-head); font-weight: 900; font-size: clamp(36px, 4vw, 52px); color: var(--orange); line-height: 1.1; margin: 8px 0; }
.cost-factors { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 22px; }
.cost-factors h3 { font-size: 16px; font-weight: 700; }
.cost-factors p { font-size: 14.5px; margin-top: 3px; }
.cost-factors--lined { grid-template-columns: 1fr; gap: 0; margin-top: 16px; }
.cost-factors--lined li { padding: 14px 0; border-bottom: 1px solid var(--line); }
.sv-included { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 20px; }
.sv-included li { display: flex; gap: 8px; align-items: center; font-size: 15px; }
.sv-included svg { width: 18px; height: 18px; color: var(--orange); flex-shrink: 0; }
.sv-methods { display: flex; flex-wrap: wrap; gap: 10px; margin: 16px 0 20px; }
.sv-methods div { flex: 1 1 160px; border: 1px dashed currentColor; border-radius: 6px; padding: 10px 14px; opacity: .95; }
.sv-methods b { display: block; font-family: var(--font-head); font-size: 15px; }
.sv-methods span { font-size: 14px; }

.cost-highlight__box { display: grid; grid-template-columns: 1fr 1.25fr; gap: 0; border-radius: 14px; overflow: hidden; box-shadow: 0 16px 40px rgba(16,42,28,.14); }
.cost-highlight__box > div { padding: 36px; }
.cost-highlight__price { background: var(--green-800); color: #dfe8e2; }
.cost-highlight__price h2 { color: #fff; }
.cost-highlight__box > div:last-child { background: #fff; }
.cost-highlight__box > div:last-child .sv-mini-h:first-child { margin-top: 0; }

.cost-table { background: var(--bg-soft); }
.cost-table__grid { display: grid; grid-template-columns: 320px 1fr; gap: 28px; align-items: stretch; }
.cost-table__price { background: var(--orange); color: #fff; border-radius: 10px; padding: 26px; }
.cost-table__price span { font-weight: 700; text-transform: uppercase; font-size: 13px; letter-spacing: .4px; }
.cost-table__price .cost-range { color: #fff; }
.cost-table__tbl { width: 100%; border-collapse: collapse; background: #fff; border-radius: 10px; overflow: hidden; box-shadow: var(--shadow); }
.cost-table__tbl th, .cost-table__tbl td { text-align: left; padding: 14px 18px; border-bottom: 1px solid var(--line); font-size: 15px; vertical-align: top; }
.cost-table__tbl thead th { background: var(--green-800); color: #fff; font-family: var(--font-head); }
.cost-table__tbl tbody th { font-family: var(--font-head); color: var(--ink); white-space: nowrap; }
.cost-table__inc { margin-top: 24px; background: #fff; border-radius: 10px; padding: 18px 24px; }
.cost-table__inc .sv-mini-h { margin-top: 0; }
.cost-table__inc .sv-included { grid-template-columns: repeat(4, auto); justify-content: start; }

.cost-cards__banner { text-align: center; background: repeating-linear-gradient(135deg, #fdf3ea 0 18px, #fbeadc 18px 36px); border-radius: 14px; padding: 34px 24px; }
.cost-cards__list { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-top: 22px; }
.cost-cards__list li { background: #fff; border-radius: 10px; padding: 22px; box-shadow: var(--shadow); border-bottom: 4px solid var(--green-800); }
.cost-cards__list h3 { font-size: 17px; }
.cost-cards__list p { font-size: 14.5px; margin-top: 6px; }
.cost-cards__foot { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; align-items: center; margin-top: 24px; }
.cost-cards__foot .sv-methods { margin: 0; color: var(--green-800); }

.cost-split__grid { display: grid; grid-template-columns: 380px 1fr; gap: 48px; align-items: start; }
.cost-split__card { background: #fff; border-radius: 18px; padding: 30px; box-shadow: 0 16px 40px rgba(16,42,28,.16); border: 2px solid var(--orange); position: sticky; top: 90px; }
.cost-split__label { display: inline-block; background: var(--green-800); color: #fff; font-weight: 700; font-size: 13px; padding: 4px 12px; border-radius: 20px; }
.cost-split__card .sv-methods { color: var(--green-800); }

/* ==========================================================
   FAQ VARIANTS
   ========================================================== */
.sv-faq { padding: 56px 0; }
.sv-faq h2 { font-size: clamp(26px, 2.8vw, 36px); font-weight: 800; }
.sv-faq h3 { font-size: 17.5px; font-weight: 700; }
.sv-faq p { font-size: 15.5px; line-height: 1.6; }

.acc { background: #fff; border: 1px solid var(--line); border-radius: 8px; margin-bottom: 12px; }
.acc summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 22px; cursor: pointer; list-style: none; }
.acc summary::-webkit-details-marker { display: none; }
.acc__icon { position: relative; width: 26px; height: 26px; border-radius: 50%; background: var(--orange); flex-shrink: 0; }
.acc__icon::before, .acc__icon::after { content: ""; position: absolute; left: 7px; right: 7px; top: 12px; height: 2px; background: #fff; transition: transform .2s; }
.acc__icon::after { transform: rotate(90deg); }
.acc[open] .acc__icon::after { transform: rotate(0); }
.acc[open] { border-color: var(--orange); }
.acc p { padding: 0 22px 20px; }

.faq-acc { background: var(--bg-soft); }
.faq-acc__wrap { max-width: 860px; }

.faq-media__grid { display: grid; grid-template-columns: 1fr 1.5fr; gap: 48px; align-items: start; }
.faq-media__side p { margin: 10px 0 20px; }
.faq-media__side a { color: var(--orange); font-weight: 700; }
.faq-media__side img { border-radius: 14px; aspect-ratio: 920/510; object-fit: cover; }
.faq-media .acc { background: var(--bg-soft); border-color: transparent; }

.faq-acc2 { background: #fff; }
.faq-acc2__grid { columns: 2; column-gap: 20px; }
.faq-acc2__grid .acc { break-inside: avoid; display: inline-block; width: 100%; background: var(--bg-soft); }

.faq-cards { background: var(--bg-soft); }
.faq-cards__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.faq-card { background: #fff; border-radius: 10px; padding: 24px; box-shadow: var(--shadow); border-left: 5px solid var(--green-800); }
.faq-card:first-child { grid-column: span 2; border-left-color: var(--orange); }
.faq-card p { margin-top: 10px; }

.faq-list__wrap { display: grid; grid-template-columns: 1fr 1.6fr; gap: 48px; }
.faq-list ol { list-style: none; padding: 0; counter-reset: q; }
.faq-list li { counter-increment: q; position: relative; padding: 0 0 24px 60px; margin-bottom: 24px; border-bottom: 1px solid var(--line); }
.faq-list li::before { content: "Q" counter(q); position: absolute; left: 0; top: -2px; font-family: var(--font-head); font-weight: 900; font-size: 22px; color: var(--orange); }
.faq-list li p { margin-top: 8px; }

/* ---------- CTA band ---------- */
.sv-cta { padding: 40px 0; color: #fff; }
.cta--orange { background: var(--orange); }
.cta--green { background: var(--green-800); }
.sv-cta h2 { color: #fff; font-size: clamp(24px, 2.6vw, 32px); font-weight: 800; }
.sv-cta p { margin-top: 6px; font-size: 16px; }
.sv-cta__inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.sv-cta .sv-buttons { margin-top: 0; }

/* ---------- Other services ---------- */
.sv-others { padding: 44px 0 52px; }
.sv-others h2 { font-size: 24px; font-weight: 800; margin-bottom: 18px; }
.sv-others ul { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.sv-others a { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 14px 16px; border: 1px solid var(--line); border-radius: 8px; font-weight: 600; color: var(--ink); background: #fff; transition: border-color .2s, color .2s; }
.sv-others a:hover { border-color: var(--orange); color: var(--orange); }
.sv-others svg { width: 16px; height: 16px; color: var(--orange); flex-shrink: 0; }

/* ==========================================================
   RESPONSIVE
   ========================================================== */
@media (max-width: 1000px) {
  .sv-hero__grid, .sv-hero__grid--rev, .sv-intro__grid, .sv-intro--columns .sv-intro__grid, .sv-intro--imgleft .sv-intro__grid,
  .pr-timeline__grid, .cost-highlight__box, .cost-table__grid, .cost-split__grid, .faq-media__grid, .faq-list__wrap { grid-template-columns: 1fr; }
  .sv-hero--edge { grid-template-columns: 1fr; }
  .sv-hero--edge .sv-hero__media img { aspect-ratio: 920/510; }
  .sv-hero__panel { border-left: 0; border-top: 8px solid var(--orange); }
  .pr-timeline__grid header, .cost-split__card { position: static; }
  .pr-row__list, .pr-stepper__list { grid-template-columns: 1fr 1fr; row-gap: 40px; }
  .pr-row__list::before { display: none; }
  .pr-grid__list { grid-template-columns: 1fr 1fr; }
  .sv-warn-grid { grid-template-columns: repeat(3, 1fr); }
  .cost-cards__list { grid-template-columns: 1fr 1fr; }
  .cost-cards__foot { grid-template-columns: 1fr; }
  .cost-table__inc .sv-included { grid-template-columns: 1fr 1fr; }
  .faq-cards__grid { grid-template-columns: 1fr 1fr; }
  .sv-others ul { grid-template-columns: 1fr 1fr; }
  .sv-hero__card { margin: -60px 16px 0; }
  .pr-zigzag__list li { width: 85%; }
}
@media (max-width: 700px) {
  .sv-hero { padding: 28px 0 34px; }
  .sv-hero__band { padding: 30px 0 100px; }
  .sv-hero--banner .sv-hero__media { margin-top: -80px; }
  .sv-hero__card { margin: -30px 8px 0; padding: 22px 20px; }
  .sv-collage { padding: 0 0 40px 30px; }
  .sv-buttons .btn { flex: 1 1 100%; }
  .pr-row__list, .pr-stepper__list, .pr-grid__list, .cost-factors, .sv-included, .cost-cards__list, .faq-cards__grid, .sv-others ul, .cost-table__inc .sv-included { grid-template-columns: 1fr; }
  .pr-grid__list li:first-child { grid-row: auto; }
  .faq-card:first-child { grid-column: auto; }
  .sv-warn-grid { grid-template-columns: 1fr 1fr; }
  .pr-zigzag__list li { width: 100%; }
  .faq-acc2__grid { columns: 1; }
  .cost-highlight__box > div { padding: 24px; }
  .cost-table__tbl tbody th { white-space: normal; }
  .sv-signs-box { padding: 22px; }
  .sv-hero--dark .sv-hero__media img { outline-width: 3px; outline-offset: 5px; }
}
.sv-strip--round img { border-radius: 18px; box-shadow: var(--shadow); }

/* ==========================================================
   LONG-FORM ARTICLE (client content) + SIDEBAR
   ========================================================== */
.sv-article { padding: 56px 0; }
.sv-article__grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 56px; align-items: start; }
.sv-article--left .sv-article__grid { grid-template-columns: 340px minmax(0, 1fr); }
.sv-article--left .sv-article__side { order: -1; }
.sv-article__body { max-width: 760px; }
.art-lead p { font-size: 19px; line-height: 1.65; color: var(--ink); }
.art-lead p + p { margin-top: 14px; }
.art-lead { padding-bottom: 26px; margin-bottom: 8px; border-bottom: 3px solid var(--orange); }
.art-sec { padding-top: 30px; scroll-margin-top: 90px; }
.art-sec h2 { font-size: clamp(23px, 2.3vw, 29px); font-weight: 800; margin-bottom: 12px; }
.art-sec h3 { font-size: 18.5px; font-weight: 700; margin: 18px 0 6px; color: var(--green-800); }
.art-sec p { font-size: 16.5px; line-height: 1.7; }
.art-sec p + p { margin-top: 12px; }
.art-list { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 24px; margin: 16px 0 18px; padding: 18px 22px; background: var(--bg-soft); border-radius: 10px; }
.art-list li { display: flex; gap: 10px; align-items: flex-start; font-size: 15.5px; color: var(--ink); }
.art-list svg { width: 18px; height: 18px; flex-shrink: 0; margin-top: 3px; color: var(--orange); }

.sv-article__side { position: sticky; top: 84px; display: grid; gap: 20px; }
.art-toc { background: #fff; border: 1px solid var(--line); border-radius: 10px; padding: 20px 22px; max-height: 46vh; overflow-y: auto; }
.art-toc h2 { font-size: 16px; font-weight: 800; text-transform: none; margin-bottom: 10px; }
.art-toc ol { list-style: none; padding: 0; margin: 0; display: grid; gap: 2px; }
.art-toc a { display: block; padding: 6px 10px; border-left: 3px solid transparent; font-size: 14.5px; color: var(--text); border-radius: 0 4px 4px 0; }
.art-toc a:hover { border-left-color: var(--orange); background: #fdf0e8; color: var(--orange); }
.art-figure { margin: 0; }
.art-figure img { border-radius: 10px; aspect-ratio: 920/510; object-fit: cover; }
.art-cta { background: var(--green-800); color: #dfe8e2; border-radius: 10px; padding: 22px; }
.art-cta h2 { color: #fff; font-size: 19px; font-weight: 800; }
.art-cta p { font-size: 14.5px; margin: 6px 0 14px; }
.art-cta__phone { display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 12px; color: #fff; font-family: var(--font-head); font-weight: 700; font-size: 18px; }
.art-cta__phone svg { width: 20px; height: 20px; color: var(--orange); }

.pr-intro { max-width: 760px; }
.section-head .pr-intro { margin: 0 auto; }
.pr-intro .sv-sub { margin-top: 10px; }

@media (max-width: 1000px) {
  .sv-article__grid, .sv-article--left .sv-article__grid { grid-template-columns: 1fr; }
  .sv-article--left .sv-article__side { order: 0; }
  .sv-article__side { position: static; grid-template-columns: 1fr 1fr; }
  .art-toc { grid-column: 1 / -1; max-height: none; }
}
@media (max-width: 700px) {
  .art-list { grid-template-columns: 1fr; }
  .sv-article__side { grid-template-columns: 1fr; }
  .art-lead p { font-size: 17.5px; }
}
