/* Minimal route extensions; core visual system is copied unchanged in reference.css. */
.page-hero { padding: 96px 0; color: #fff; background: linear-gradient(105deg, rgba(10,28,45,.92), rgba(10,28,45,.62), rgba(196,59,106,.3)), url('../img/hero.jpg') center/cover no-repeat, var(--navy); }
.page-hero h1 { max-width: 17ch; color: #fff; }
.page-hero p { max-width: 700px; color: #d9e4ee; font-size: 19px; }
.page-hero .eyebrow { color: #f3b3c6; }
.page-section { padding: 88px 0; }
.page-section.cream { background: var(--cream); }
.page-section.navy { background: var(--navy); color: #fff; }
.page-section.navy h2, .page-section.navy p { color: #fff; }
.route-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; margin-top: 36px; }
.route-grid.three { grid-template-columns: repeat(3,minmax(0,1fr)); }
.route-grid article, .route-card { background: var(--white); border-radius: var(--radius); padding: 28px; border: 1px solid rgba(228,221,212,.9); }
.route-grid article:hover { transform: translateY(-3px); box-shadow: var(--shadow); }
.route-grid article { transition: transform .2s ease, box-shadow .2s ease; }
.route-grid a.more, .text-link { color: var(--raspberry); font-weight: 600; text-decoration: none; }
.route-grid img { width: 54px; height: 54px; object-fit: contain; margin-bottom: 16px; }
.audience-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px; margin-top: 36px; }
.audience-card { min-height: 300px; border-radius: 24px; padding: 36px; background: var(--white); border: 1px solid var(--line); box-shadow: 0 1px 0 rgba(27,36,44,.04); }
.audience-card.dark { color: #fff; background: var(--navy); border-color: var(--navy); }
.audience-card.dark p { color: #d9e4ee; }
.audience-card h3 { font-size: 30px; }
.service-detail { display: grid; grid-template-columns: 1.4fr .6fr; gap: 50px; align-items: start; }
.service-detail aside a { display: block; padding: 10px 0; color: var(--raspberry); text-decoration: none; border-bottom: 1px solid var(--line); }
.contact-form select { width: 100%; border: 1px solid #ddd4ca; border-radius: 12px; padding: 12px 14px; font: inherit; background: #fff; }
.contact-form .validation-summary { color: #9e2d54; }
.footer-logo { background:#fff; padding:10px 14px; border-radius:10px; }
.footer-copy { color:#c5d0da; margin-top:14px; }
footer strong { color:#fff; }
.direction-card .btn { margin-top: 10px; }
.variant-hero { min-height: 72vh; display: grid; align-items: end; padding: 90px 0 72px; color:#fff; background: linear-gradient(105deg,rgba(10,28,45,.9),rgba(10,28,45,.55),rgba(196,59,106,.3)),url('../img/hero.jpg') center/cover no-repeat,var(--navy); }
.variant-hero h1 { color:#fff; max-width:16ch; }
.variant-hero p { color:#d9e4ee; max-width:680px; font-size:19px; }
.team-photo { width: 160px; height: 160px; border-radius: 20px; object-fit: cover; }
.faq-page details { margin-bottom: 12px; }
@media(max-width:860px){.route-grid,.route-grid.three,.audience-grid,.service-detail{grid-template-columns:1fr}.page-hero{padding:72px 0}.variant-hero{min-height:auto}.topbar .wrap{font-size:12px}.audience-card{min-height:auto}}
