/* Editorial Route Planner pages: warm paper, forest ink, copper wayfinding, and transparent service copy. */

.subpage-main { padding: 3.5rem 4.6vw 7rem; }
.subpage-hero { max-width: 1120px; margin: 0 auto 3rem; display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: 3rem; align-items: end; border-bottom: 1px solid rgba(19, 66, 55, .22); padding-bottom: 3rem; }
.subpage-hero h1 { max-width: 760px; margin: .65rem 0 1rem; font-family: "DM Serif Display", Georgia, serif; font-size: clamp(3.6rem, 7vw, 6.8rem); line-height: .92; letter-spacing: -.055em; color: var(--forest); }
.subpage-hero p { max-width: 650px; margin: 0; color: var(--muted-ink); font-size: 1.06rem; line-height: 1.75; }
.page-stamp { justify-self: end; color: var(--copper); border: 1px solid rgba(185, 103, 53, .45); padding: 1rem 1.1rem; transform: rotate(2deg); text-transform: uppercase; letter-spacing: .14em; font-size: .68rem; line-height: 1.5; }
.page-stamp strong { display: block; color: var(--forest); font-size: 1rem; letter-spacing: .08em; }
.content-grid { max-width: 1120px; margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(260px, .75fr); gap: 1.2rem; align-items: start; }
.paper-card { background: rgba(255, 251, 242, .72); border: 1px solid rgba(19, 66, 55, .16); padding: clamp(1.4rem, 3vw, 2.35rem); box-shadow: 0 18px 45px rgba(47, 44, 28, .06); }
.paper-card + .paper-card { margin-top: 1.2rem; }
.paper-card h2, .paper-card h3 { color: var(--forest); font-family: "DM Serif Display", Georgia, serif; font-weight: 400; letter-spacing: -.025em; }
.paper-card h2 { margin: 0 0 1rem; font-size: clamp(2rem, 4vw, 3.4rem); line-height: 1; }
.paper-card h3 { margin: 1.8rem 0 .6rem; font-size: 1.55rem; }
.paper-card p, .paper-card li { color: var(--muted-ink); line-height: 1.78; }
.paper-card p { margin: 0 0 1rem; }
.paper-card ul, .paper-card ol { margin: .8rem 0 0; padding-left: 1.2rem; }
.paper-card li + li { margin-top: .55rem; }
.side-card { position: sticky; top: 1rem; background: var(--forest); color: #f9f0df; padding: 1.6rem; }
.side-card h2, .side-card h3 { color: #f9f0df; }
.side-card p, .side-card li { color: rgba(249, 240, 223, .78); }
.side-card .text-link { color: var(--copper-soft); }
.step-card { display: grid; grid-template-columns: 3.4rem 1fr; gap: 1rem; padding: 1.2rem 0; border-top: 1px solid rgba(19, 66, 55, .15); }
.step-card:first-of-type { border-top: 0; padding-top: 0; }
.step-number { color: var(--copper); font-size: .78rem; letter-spacing: .12em; font-weight: 800; }
.step-card h3 { margin: 0 0 .35rem; font-family: Manrope, sans-serif; font-size: 1rem; font-weight: 800; letter-spacing: 0; }
.step-card p { margin: 0; }
.notice { border-left: 3px solid var(--copper); background: rgba(185, 103, 53, .08); padding: 1rem 1.2rem; color: var(--forest); font-weight: 700; }
.notice p { margin: 0; color: var(--forest); }
.placeholder-box { border: 1px dashed rgba(185, 103, 53, .62); background: rgba(185, 103, 53, .06); padding: 1.1rem 1.2rem; color: var(--forest); }
.placeholder-box strong { display: block; margin-bottom: .35rem; text-transform: uppercase; letter-spacing: .11em; font-size: .7rem; }
.policy-nav { display: flex; flex-wrap: wrap; gap: .55rem; margin: 1.2rem 0 0; }
.policy-nav a { color: var(--forest); border-bottom: 1px solid rgba(185, 103, 53, .42); padding-bottom: .15rem; font-size: .82rem; }
.contact-list { display: grid; gap: .85rem; margin: 1.2rem 0 0; }
.contact-row { display: flex; gap: .85rem; align-items: flex-start; border-top: 1px solid rgba(19, 66, 55, .14); padding-top: .85rem; }
.contact-row:first-child { border-top: 0; padding-top: 0; }
.contact-row b { min-width: 7rem; color: var(--forest); font-size: .72rem; text-transform: uppercase; letter-spacing: .1em; }
.contact-row span { color: var(--muted-ink); line-height: 1.5; }
.policy-meta { color: var(--muted-ink); font-size: .82rem; margin-bottom: 1.5rem; }
@media (max-width: 820px) { .subpage-main { padding: 2rem 5vw 5rem; } .subpage-hero { grid-template-columns: 1fr; gap: 1.5rem; padding-bottom: 2rem; } .page-stamp { justify-self: start; } .content-grid { grid-template-columns: 1fr; } .side-card { position: static; } }

