:root {
  --paper: #fff;
  --white: #fff;
  --stone: #f1f6fc;
  --line: #dbe4ef;
  --ink: #0d2443;
  --ink-deep: #081a34;
  --text: #243c54;
  --muted: #4d6077;
  --rust: #b81d29;
  --red: #c8222e;
  --blue: #064aa6;
  --blue-light: #d8ebff;
  --radius: 16px;
  --wrap: 1230px;
}

html { scroll-padding-top: 153px; }
.section { padding-block: clamp(57px, 6.6vw, 100px); }
.button { border-radius: 7px; }
.primary { color: #fff; }
.primary:hover { background: #aa1825; }
.secondary { border-color: #c9d8e8; }
.secondary:hover { background: #eaf3ff; border-color: #7eace0; }
.outline-dark { color: #fff; border-color: #d8ebffa6; }
.outline-dark:hover { background: #ffffff24; border-color: #fff; }
.text-link { color: var(--blue); }
.card-icon { color: var(--blue); background: #e9f3ff; }
.micro-tag { color: var(--blue); background: #e9f3ff; }
.eyebrow { letter-spacing: .13em; }

.classic-header { position: sticky; top: 0; z-index: 20; background: #fff; box-shadow: 0 1px 9px #0a254324; }
.classic-mast { position: relative; min-height: 94px; display: flex; justify-content: space-between; align-items: center; gap: 20px; }
.classic-logos, .classic-contact { display: flex; align-items: center; gap: clamp(12px, 2vw, 27px); }
.classic-logos .brand-logo-frame { width: 124px; height: 75px; }
.classic-logos .brand-logo-frame img { top: -17px; left: -4px; width: 148px; }
.classic-badge { width: 66px; flex: 0 0 auto; display: block; }
.classic-badge img { width: 100%; }
.classic-mast-links { display: grid; gap: 10px; }
.classic-mast-links > div { display: flex; gap: clamp(8px, 1.6vw, 20px); }
.classic-mast-links a { display: inline-flex; align-items: center; gap: 6px; text-decoration: none; color: var(--ink); font-size: .78rem; font-weight: 760; }
.classic-mast-links > a { color: var(--blue); font-size: .82rem; }
.classic-mast-links a:hover { text-decoration: underline; text-underline-offset: 3px; }
.classic-mast-links .icon { width: 15px; height: 15px; color: var(--red); }
.classic-phone { display: grid; gap: 3px; text-decoration: none; white-space: nowrap; }
.classic-phone span { color: var(--muted); font-size: .73rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.classic-phone strong { color: var(--rust); font-size: clamp(1.13rem, 2.1vw, 1.63rem); letter-spacing: -.04em; line-height: 1; }
.classic-phone:hover strong { text-decoration: underline; text-underline-offset: 3px; }
.classic-contact .button { min-height: 47px; }
.classic-nav { background: var(--blue); color: #fff; }
.classic-nav > .wrap { display: flex; min-height: 50px; align-items: stretch; justify-content: space-between; gap: 8px; }
.classic-nav > .wrap > a, .classic-menu > summary { display: flex; position: relative; align-items: center; gap: 8px; padding: 0 clamp(7px, 1vw, 14px); color: #fff; text-decoration: none; text-transform: uppercase; font-size: .82rem; letter-spacing: .035em; font-weight: 770; white-space: nowrap; }
.classic-nav > .wrap > a:hover, .classic-menu > summary:hover, .classic-menu[open] > summary { background: #043978; }
.classic-nav .current::after { content: ''; position: absolute; inset: auto 12px 0; height: 3px; background: #fff; }
.classic-nav :focus-visible { outline-color: #fff; outline-offset: -4px; }
.classic-menu { position: relative; }
.classic-menu > summary { min-height: 100%; list-style: none; cursor: pointer; }
.classic-menu > summary::-webkit-details-marker { display: none; }
.classic-menu > summary > span { width: 7px; height: 7px; border: solid currentColor; border-width: 0 2px 2px 0; transform: translateY(-2px) rotate(45deg); }
.classic-dropdown { position: absolute; top: 100%; left: 0; min-width: 253px; padding: 6px; background: #fff; border: 1px solid #c3d6eb; border-radius: 0 0 9px 9px; box-shadow: 0 14px 27px #061d3d36; }
.classic-dropdown a { display: block; padding: 9px 11px; border-radius: 5px; color: var(--ink); font-size: .89rem; font-weight: 680; text-decoration: none; }
.classic-dropdown a:hover { background: #eaf3ff; color: var(--blue); }
.classic-dropdown a:focus-visible { outline-color: var(--blue); }

.classic-hero { position: relative; isolation: isolate; background: #081f44; color: #fff; overflow: hidden; }
.classic-hero-photo { position: absolute; z-index: -2; inset: 0 0 0 25%; }
.classic-hero-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 57% 40%; }
.classic-hero::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, #071b39 4%, #071b39f7 29%, #071b39c7 48%, #09224f2b 74%, #09224f22), linear-gradient(0deg, #071b39bf, transparent 56%); }
.classic-hero-grid { min-height: clamp(515px, 45vw, 645px); display: grid; grid-template-columns: 1fr .91fr; align-items: stretch; }
.classic-hero-copy { z-index: 2; align-self: center; padding-block: 59px 65px; }
.classic-hero-tag { width: fit-content; display: flex; align-items: center; gap: 9px; color: #fff; background: #094c9dc9; border: 1px solid #9fcaff7f; padding: 7px 11px; border-radius: 5px; font-size: .69rem; font-weight: 790; letter-spacing: .09em; text-transform: uppercase; }
.classic-hero-tag i { width: 7px; height: 7px; flex: 0 0 auto; background: #93ebb6; border-radius: 50%; box-shadow: 0 0 0 3px #9fe4b735; }
.classic-hero h1 { color: #fff; margin-top: 19px; font-size: clamp(3.7rem, 7.4vw, 7.75rem); line-height: .93; letter-spacing: -.07em; text-wrap: nowrap; }
.classic-hero h1 em { display: inline-block; color: #d7ebff; font-size: .55em; font-style: normal; letter-spacing: -.048em; margin-top: 10px; }
.classic-hero-copy p { max-width: 42ch; margin-top: 18px; font-size: clamp(1rem, 1.4vw, 1.17rem); color: #e8f4ff; }
.classic-hero .hero-actions { margin-top: 23px; }
.classic-hero .button { min-height: 55px; }
.classic-hero-scene { position: relative; min-width: 0; }
.classic-van { position: absolute; z-index: 1; right: -5%; bottom: 8%; width: 106%; filter: drop-shadow(0 24px 21px #061329a0); animation: van-arrive .58s ease-out both; }
.classic-van img { width: 100%; }
@keyframes van-arrive { from { transform: translateX(24px); opacity: .82; } to { transform: none; opacity: 1; } }
.classic-service-seal { position: absolute; z-index: 2; top: 9%; right: 7%; width: clamp(102px, 12.6vw, 166px); aspect-ratio: 1; display: grid; place-content: center; text-align: center; text-decoration: none; color: #fff; background: #c8202e; border: 4px solid #fff; outline: 1px dashed #ffffffc9; outline-offset: -12px; border-radius: 50%; box-shadow: 0 10px 22px #0a214865; transform: rotate(10deg); transition: transform .2s; }
.classic-service-seal:hover { transform: rotate(0); }
.classic-service-seal strong { font-size: clamp(1.7rem, 4vw, 3.5rem); line-height: 1; letter-spacing: -.08em; }
.classic-service-seal span { margin-top: 5px; font-size: clamp(.55rem, .86vw, .74rem); font-weight: 850; letter-spacing: .08em; }
.classic-scene-label { position: absolute; right: 2%; bottom: 5%; display: flex; align-items: center; gap: 6px; padding: 5px 9px; color: #fff; background: #071d3cd9; font-weight: 810; font-size: .65rem; letter-spacing: .1em; border-radius: 5px; }
.classic-scene-label i { width: 3px; height: 3px; border-radius: 50%; background: #b7d8ff; }

.classic-strip { background: var(--red); color: #fff; }
.classic-strip > .wrap { display: grid; grid-template-columns: repeat(3, 1fr); }
.classic-strip a { display: flex; align-items: center; justify-content: center; gap: 11px; min-height: 76px; padding: 9px; text-decoration: none; }
.classic-strip a + a { border-left: 1px solid #ffffff5e; }
.classic-strip a:hover { background: #a81927; }
.classic-strip .icon { width: 25px; height: 25px; }
.classic-strip strong, .classic-strip small { display: block; }
.classic-strip small { margin-top: 3px; font-size: .75rem; }
.classic-about { grid-template-columns: .75fr 1fr; gap: clamp(34px, 8vw, 120px); }
.classic-about .founder-photo { box-shadow: 10px 10px 0 #d7eaff; background: #e5f2ff; }
.classic-about .founder-photo img { object-position: center 27%; }
.classic-about .founder-photo figcaption { background: #fff; }
.founder-copy .hero-actions { margin-top: 22px; }
.founder-copy .hero-actions .button { margin-top: 0; }

.classic-services { background: var(--stone); border-block: 1px solid var(--line); }
.photo-services-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.photo-service { display: block; background: #fff; border: 1px solid #cbd9eb; border-radius: var(--radius); overflow: hidden; text-decoration: none; box-shadow: 0 4px 15px #102f5412; transition: transform .2s, box-shadow .2s; }
.photo-service:hover { transform: translateY(-4px); box-shadow: 0 12px 22px #102f5420; }
.photo-service-media { height: clamp(156px, 17vw, 236px); overflow: hidden; background: #dbeaff; }
.photo-service-media img { width: 100%; height: 100%; object-fit: cover; object-position: center 39%; }
.photo-service-media > span { display: grid; width: 100%; height: 100%; place-items: center; color: #fff; background: repeating-linear-gradient(123deg, #ffffff12 0 2px, transparent 2px 28px), linear-gradient(128deg, #09234e, #0862bd); }
.photo-service-media > span .icon { width: 75px; height: 75px; }
.photo-service-copy { display: grid; grid-template-columns: 42px minmax(0, 1fr) 21px; gap: 10px; align-items: center; padding: 15px 16px; border-top: 3px solid var(--blue); }
.photo-service-copy .card-icon { width: 40px; height: 40px; }
.photo-service-copy .card-icon .icon { width: 21px; height: 21px; }
.photo-service-copy h3 { font-size: clamp(1.06rem, 1.7vw, 1.37rem); }
.photo-service-arrow { color: var(--blue); }

.classic-coupons { background: radial-gradient(ellipse at 76% 8%, #1465bb, transparent 72%), #083579; color: #fff; }
.classic-coupons h2, .classic-coupons .section-head > p { color: #fff; }
.classic-coupons .eyebrow { color: #cae3ff; }
.coupon-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; align-items: start; }
.coupon { background: #fff; color: var(--ink); border-radius: 9px; overflow: hidden; }
.coupon > div:first-child { position: relative; min-height: 112px; background: #bd202b; color: #fff; padding: 17px 16px; border-bottom: 2px dashed #fff; }
.coupon > div:first-child p { font-size: clamp(1.7rem, 3vw, 2.45rem); font-weight: 880; letter-spacing: -.05em; line-height: 1; }
.coupon h3 { color: #fff; margin-top: 7px; font-size: 1rem; }
.coupon > div:last-child { padding: 15px 16px; }
.coupon details { margin-top: 10px; color: var(--muted); font-size: .78rem; }
.coupon summary { width: fit-content; cursor: pointer; }
.coupon img { width: 100%; margin-top: 9px; border-radius: 5px; }

.reviews-section { background: #eaf3ff; border-color: #cfdeef; }
.customer-story { border: 1px solid #c0d7f4; box-shadow: 0 12px 34px #17417316; }
.review-links { display: flex; flex-wrap: wrap; gap: 4px 15px; }
.review-source { color: #334f6e; }
.review-controls button { border-color: #aac8eb; color: var(--blue); background: #fff; }
.review-controls button:hover { background: #dbeaff; }
.field-section { background: radial-gradient(ellipse at 82% 0, #0a55a7, transparent 77%), var(--ink-deep); }
.field-section .text-link, .field-section .field-number, .field-section .eyebrow { color: #b6d8ff; }
.guide-icon .micro-tag, .feature-box { background: #e8f3ff; }
.journal-intro { background: #eaf3ff; }
.coverage-band { background: #eff5fc; }
.coverage-van { background: linear-gradient(114deg, #123d7a 57%, #0767cb 57% 66%, #f6faff 66% 68%, #c8222e 68% 83%, #092650 83%); }
.page-hero, .quote-strip { background: radial-gradient(ellipse at 84% 15%, #1160b6, transparent 64%), #092855; }
.page-hero .eyebrow, .quote-strip .eyebrow { color: #c4e2ff; }
.page-emblem { color: #d1e8ff; border-color: #a6caff80; }
.page-feature { box-shadow: 7px 7px 0 #cc2733; }
.article-date { color: #d7ebff; }
.contact-call { background: #eaf3ff; }
.footer { background: #081a34; }

@media (max-width: 1020px) {
  .classic-mast-links { display: none; }
  .classic-hero h1 { font-size: clamp(3.55rem, 8vw, 6rem); }
  .classic-hero-grid { min-height: 503px; }
  .classic-service-seal { top: 15%; }
}

@media (max-width: 760px) {
  html { scroll-padding-top: 80px; }
  .classic-mast { min-height: 66px; }
  .classic-logos { gap: 10px; }
  .classic-logos .brand-logo-frame { width: 87px; height: 56px; }
  .classic-logos .brand-logo-frame img { width: 105px; top: -11px; }
  .classic-badge { width: 44px; }
  .classic-nav, .classic-contact { display: none; }
  .mobile-nav nav { background: #fff; }
  .classic-hero-grid { min-height: 0; grid-template-columns: minmax(0, 1fr); }
  .classic-hero-copy { padding-block: 38px 0; }
  .classic-hero h1 { font-size: clamp(3.2rem, 11vw, 5.7rem); }
  .classic-hero h1 em { margin-top: 7px; font-size: .58em; }
  .classic-hero-photo { inset: 26% 0 0; }
  .classic-hero-photo img { object-position: 49% 41%; }
  .classic-hero::after { background: linear-gradient(180deg, #071d40 4%, #071d40fa 44%, #09224f80 69%, #071b39ab 100%); }
  .classic-hero-scene { min-height: clamp(208px, 58vw, 370px); }
  .classic-van { right: 6%; bottom: 6%; width: min(77%, 425px); }
  .classic-service-seal { top: 3%; right: 4%; width: clamp(83px, 16vw, 117px); border-width: 3px; outline-offset: -8px; }
  .classic-scene-label { right: 3%; bottom: 4%; font-size: .57rem; }
  .classic-strip a { min-height: 66px; padding-inline: 6px; gap: 5px; }
  .classic-strip .icon { width: 19px; height: 19px; }
  .classic-strip strong { font-size: .74rem; }
  .classic-strip small { display: none; }
  .classic-about { grid-template-columns: 1fr; }
  .photo-services-grid, .coupon-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 430px) {
  .classic-hero h1 { font-size: clamp(2.82rem, 12.3vw, 3.55rem); }
  .classic-hero-tag { font-size: .58rem; letter-spacing: .05em; }
  .classic-hero .hero-actions .button { min-height: 47px; }
  .photo-service-media { height: 132px; }
  .photo-service-copy { grid-template-columns: minmax(0, 1fr) 15px; padding: 11px 9px; }
  .photo-service-copy .card-icon { display: none; }
  .photo-service-copy h3 { font-size: 1rem; }
  .photo-service-arrow { width: 15px; height: 15px; }
  .coupon > div:first-child, .coupon > div:last-child { padding-inline: 11px; }
  .coupon .text-link { gap: 4px; font-size: .82rem; }
}
