/* Shared brand pages follow the supplied blue, white and warm gold visual direction. */
@media (min-width: 64.0625rem) {
    .header-main { grid-template-columns: 12.5rem minmax(0, 1fr) 10rem auto; gap: 1.2rem; }
    .primary-nav { justify-content: center; gap: clamp(.75rem, 1.5vw, 1.5rem); }
}
.landing-kicker { margin: 0 0 .8rem; color: #1260db; font-size: .84rem; font-weight: 800; letter-spacing: .24em; text-transform: uppercase; }
.landing-pill { display: inline-flex; align-items: center; justify-content: center; gap: 1.25rem; min-height: 3.25rem; padding: .7rem 1.7rem; border-radius: 999px; color: #fff; font-weight: 800; line-height: 1.2; box-shadow: 0 .65rem 1.35rem rgba(18, 65, 144, .12); transition: transform .15s ease, box-shadow .15s ease; }
.landing-pill:hover { transform: translateY(-2px); box-shadow: 0 .9rem 1.6rem rgba(18, 65, 144, .18); }
.landing-pill-blue { background: linear-gradient(110deg, #0799fc, #0645d8); }
.landing-pill-gold { background: linear-gradient(110deg, #ffe998, #f5c84e); color: #101f38; }
.landing-pill-brown { background: linear-gradient(110deg, #e9a735, #91420c); }
.landing-pill-green { background: linear-gradient(110deg, #24af35, #076b20); }
.landing-home-hero { overflow: hidden; background: linear-gradient(115deg, #fff 40%, #f3f8ff); }
.landing-home-hero-inner { display: grid; grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); align-items: center; gap: 2.5rem; min-height: 35rem; }
.landing-home-copy { padding: 4rem 0; }
.landing-home-copy h1 { max-width: 37rem; margin: 0; color: #071638; font-size: clamp(2.4rem, 4.2vw, 4.5rem); line-height: 1.15; letter-spacing: -.075em; }
.landing-home-copy > p:not(.landing-kicker) { max-width: 31rem; margin: 1.4rem 0 2rem; color: #475773; font-size: clamp(1rem, 1.3vw, 1.2rem); }
.landing-home-photo { position: relative; align-self: stretch; min-height: 30rem; margin-right: calc((min(100vw, var(--container)) - 100vw) / 2); overflow: hidden; }
.landing-home-photo::before { position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, #fff 0%, rgba(255,255,255,.25) 22%, transparent 45%); content: ""; }
.landing-home-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 66% center; }
.landing-home-photo span { position: absolute; right: 2rem; bottom: 2rem; z-index: 2; padding: .5rem .8rem; border-radius: .4rem; background: rgba(5, 33, 33, .84); color: #fff; font-weight: 800; }
.landing-partners { padding-top: 5.5rem; padding-bottom: 2rem; }
.landing-center-heading { max-width: 46rem; margin: 0 auto 2.3rem; text-align: center; }
.landing-center-heading h2, .landing-section-heading h2 { margin: 0; color: #071638; font-size: clamp(2rem, 3.5vw, 3.3rem); line-height: 1.18; letter-spacing: -.06em; }
.landing-center-heading > p:last-child, .landing-section-heading p:last-child { margin: .75rem 0 0; color: #59677c; }
.landing-partner-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
.landing-partner-card { position: relative; display: flex; min-height: 22rem; overflow: hidden; border-radius: 1.2rem; isolation: isolate; }
.landing-partner-online { background: linear-gradient(115deg, #eaf6ff, #d8ebff); }
.landing-partner-offline { background: linear-gradient(115deg, #fff5e7, #f9e2bf); }
.landing-partner-card::after { position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(255,255,255,.97) 5%, rgba(255,255,255,.86) 48%, rgba(255,255,255,.12) 100%); content: ""; }
.landing-partner-card > img { position: absolute; inset: 0 0 0 auto; z-index: -2; width: 75%; height: 100%; object-fit: cover; object-position: 70%; }
.landing-partner-copy { align-self: center; max-width: 72%; padding: 2rem; }
.landing-icon { display: inline-grid; place-items: center; width: 3.3rem; height: 3.3rem; border-radius: 50%; background: #fff; color: #0965dc; font-size: 1.5rem; }
.landing-partner-offline .landing-icon { color: #a76212; }
.landing-partner-copy h3 { margin: .7rem 0 .2rem; color: #091936; font-size: clamp(1.65rem, 2.5vw, 2.55rem); letter-spacing: -.06em; }
.landing-partner-copy p { min-height: 3.2rem; margin: 0 0 1.3rem; color: #33465d; font-weight: 600; }
.landing-products { padding-top: 5rem; padding-bottom: 7rem; }
.landing-section-heading { display: flex; justify-content: space-between; align-items: end; gap: 1.5rem; margin-bottom: 2rem; }
.landing-all-link { flex: 0 0 auto; padding: .8rem 1.3rem; border-radius: 999px; background: #edf4ff; color: #0754d5; font-weight: 800; }
.landing-products .product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.landing-products .product-card { overflow: hidden; border: 1px solid #e6ebf2; border-radius: 1rem; box-shadow: 0 .6rem 1.5rem rgba(20, 47, 84, .06); }
.landing-products .product-card-media { background: #f6f8fa; }
.landing-products .product-card img { aspect-ratio: 1.45; object-fit: contain; }
.landing-products .product-card-body { padding: 1rem 1.15rem 1.3rem; }
.landing-products .product-card h3 { white-space: normal; }
.landing-products .product-price strong { color: #0754d5; font-size: 1.3rem; }

.landing-company-hero { position: relative; overflow: hidden; background: linear-gradient(90deg, rgba(233,243,255,.9) 0%, rgba(243,248,255,.68) 48%, rgba(233,243,255,.07) 100%), url('../images/storefront/home/company-skyline.png') center / cover; }
.landing-company-hero::after { position: absolute; right: -8rem; bottom: -15rem; width: 42rem; height: 42rem; border: 6rem solid rgba(21,96,207,.07); border-radius: 50%; content: ""; }
.landing-company-hero-inner { position: relative; z-index: 1; min-height: 29rem; padding: 4.6rem 0 5.5rem; }
/* Give the company message and its supporting text distinct reading groups at every viewport. */
.landing-company-hero .landing-kicker { margin-bottom: 1.25rem; }
.landing-company-hero h1 { margin: 0 0 2.5rem; color: #071638; font-size: clamp(2.3rem, 4.2vw, 4.2rem); letter-spacing: -.07em; text-align: center; }
.landing-company-hero-inner > p:not(.landing-kicker) { margin: 0; color: #071638; font-size: clamp(1.65rem, 2.9vw, 3rem); font-weight: 800; line-height: 1.5; letter-spacing: -.05em; }
.landing-company-hero-inner > p strong { color: #0a55ce; }
.landing-company-motto { display: block; margin-top: 1.75rem; color: #5d75a1; font-size: .75rem; font-weight: 700; letter-spacing: .35em; }
.landing-company-intro { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 3rem; margin-top: -3rem; margin-bottom: 6rem; padding: 3rem; position: relative; border: 1px solid #e5eefc; border-radius: 1.5rem; background: rgba(255,255,255,.97); box-shadow: 0 1rem 3rem rgba(22,69,137,.1); }
.landing-company-letter h2 { margin: 0 0 2rem; color: #071638; font-size: clamp(1.8rem, 2.5vw, 2.7rem); line-height: 1.2; }
.landing-company-letter > p:not(.landing-kicker) { margin: 0 0 1.5rem; color: #31415c; line-height: 1.8; }
.landing-company-letter > .landing-company-thanks { margin: 2rem 0 0; font-weight: 800; }
.landing-company-values { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; align-content: end; }
.landing-company-values article { padding: 2rem; border-radius: 1.2rem; background: linear-gradient(160deg, #f8fbff, #e9f3ff); text-align: center; }
.landing-company-values i { color: #075bd8; font-size: 2rem; }
.landing-company-values h3 { margin: 1rem 0 .75rem; color: #071638; }
.landing-company-values p { margin: 0; color: #53657f; font-size: .9rem; line-height: 1.7; }

.landing-videos-hero { overflow: hidden; background: radial-gradient(circle at 85% 20%, rgba(69,139,255,.28), transparent 35%), linear-gradient(115deg, #081b3c, #123e7d); }
.landing-videos-hero-inner { padding: 5.5rem 0 6rem; }
.landing-videos-hero .landing-kicker { margin-bottom: 1.25rem; color: #90bdff; }
.landing-videos-hero h1 { margin: 0; color: #fff; font-size: clamp(2.5rem, 5vw, 4.5rem); line-height: 1.15; letter-spacing: -.06em; }
.landing-videos-hero-inner > p:last-child { max-width: 38rem; margin: 1.5rem 0 0; color: #d4e4fa; font-size: 1.1rem; line-height: 1.8; }
.landing-videos { padding-top: 5rem; padding-bottom: 7rem; }
.landing-videos-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem; }
.landing-video-card { min-width: 0; overflow: hidden; border: 1px solid #e5edf7; border-radius: 1.25rem; background: #fff; box-shadow: 0 .75rem 2rem rgba(20,47,84,.08); }
/* A fixed ratio lets both embedded players fill their cards without cropping at narrow widths. */
.landing-video-frame { aspect-ratio: 16 / 9; background: #091d36; }
.landing-video-frame iframe { display: block; width: 100%; height: 100%; border: 0; }
.landing-video-caption { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .75rem 1.5rem; padding: 1.5rem 1.75rem; }
.landing-video-caption h2 { margin: 0; color: #071638; font-size: 1.2rem; line-height: 1.4; }
.landing-video-caption a { color: #0754d5; font-size: .9rem; font-weight: 700; }
.landing-video-caption a:hover, .landing-video-caption a:focus-visible { text-decoration: underline; text-underline-offset: .2em; }

.landing-agency-hero { overflow: hidden; }
.landing-online-hero { background: linear-gradient(105deg, #f2fff1, #fff 58%); }
.landing-offline-hero { background: linear-gradient(105deg, #fef9ee, #fff 58%); }
.landing-agency-hero-inner { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 2.5rem; align-items: center; min-height: 31rem; padding: 3.5rem 0; }
.landing-agency-hero h1 { margin: 0; color: #071638; font-size: clamp(2.4rem, 4.3vw, 4.2rem); line-height: 1.14; letter-spacing: -.075em; }
.landing-agency-hero p:not(.landing-kicker) { max-width: 34rem; margin: 1.2rem 0 1.8rem; color: #3f526b; font-size: 1.1rem; }
.landing-agency-hero .landing-pill, .landing-agency-highlight .landing-pill { border: 0; }
.landing-agency-visual { overflow: hidden; height: 27rem; border-radius: 1.4rem; box-shadow: 0 1.2rem 2.4rem rgba(18,53,90,.13); }
.landing-agency-visual img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.landing-agency-section { padding-top: 5.5rem; padding-bottom: 5rem; }
.landing-store-photo { overflow: hidden; margin-bottom: 1.1rem; border-radius: 1rem; }
.landing-store-photo img { display: block; width: 100%; max-height: 28rem; object-fit: cover; }
.landing-support-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.landing-support-grid article { padding: 1.6rem; border: 1px solid #e5edf7; border-radius: 1rem; background: #f9fbfe; }
.landing-support-grid article > i { color: #1260db; font-size: 1.8rem; }
.landing-support-grid h3 { margin: .7rem 0 .4rem; color: #091936; font-size: 1.18rem; }
.landing-support-grid p { margin: 0; color: #59677c; font-size: .9rem; }
.landing-store-features { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.landing-store-features article > span { display: inline-block; margin-right: .7rem; color: #1166db; font-weight: 800; }
.landing-agency-highlight { padding: 5rem 0 6rem; }
.landing-online-highlight { background: #f5f9ff; }
.landing-offline-highlight { background: #fffaf2; }
.landing-highlight-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 3rem; align-items: center; }
.landing-highlight-grid > img { width: 100%; max-height: 29rem; object-fit: cover; border-radius: 1rem; }
.landing-highlight-grid h2 { margin: 0; color: #081939; font-size: clamp(2rem, 3.5vw, 3.2rem); line-height: 1.18; letter-spacing: -.06em; }
.landing-highlight-grid > div > p:not(.landing-kicker) { margin: 1rem 0; color: #526278; }
.landing-highlight-grid ul { padding-left: 1.3rem; color: #243a58; }
.landing-highlight-grid li { margin-bottom: .45rem; }
.landing-operating-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 1.5rem 0; }
.landing-operating-grid article { background: #fff; }

.agency-contact-modal { width: min(48rem, calc(100% - 2rem)); max-height: calc(100vh - 2rem); margin: auto; padding: 0; overflow-y: auto; border: 1px solid #dae7f5; border-radius: 1.25rem; background: #fff; color: #071638; box-shadow: 0 1.5rem 4rem rgba(7,22,56,.25); }
.agency-contact-modal::backdrop { background: rgba(9,29,54,.68); }
.agency-contact-card { padding: 2.25rem; }
.agency-contact-header { position: sticky; top: 0; z-index: 1; display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding-bottom: .75rem; background: #fff; }
.agency-contact-header .landing-kicker { margin-bottom: .75rem; }
.agency-contact-header h2 { margin: 0; font-size: clamp(1.5rem, 4vw, 2rem); line-height: 1.3; letter-spacing: -.05em; }
.agency-contact-close { display: grid; width: 2.5rem; height: 2.5rem; place-items: center; border: 1px solid #dce6f4; border-radius: 50%; background: #fff; color: #475773; }
.agency-contact-close:hover { border-color: #0754d5; color: #0754d5; }
.agency-contact-message { margin: 1rem 0 0; color: #526278; font-size: .9375rem; line-height: 1.6; }
/* Keep phone contacts visible as a short alternative without pushing the form down. */
.agency-contact-list { display: flex; flex-wrap: wrap; gap: .25rem 1.25rem; margin: .75rem 0 0; }
.agency-contact-list > div { display: flex; align-items: baseline; gap: .375rem; }
.agency-contact-list dt { color: #526278; font-size: .8125rem; }
.agency-contact-list dd { margin: 0; font-size: .875rem; font-weight: 700; }
.agency-contact-list a { color: #0754d5; }
.agency-contact-list a:hover, .agency-contact-list a:focus-visible { text-decoration: underline; text-underline-offset: .2em; }
.agency-contact-form { margin-top: 1.25rem; }
.agency-contact-form-heading { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: .5rem 1rem; margin-bottom: 1rem; }
.agency-contact-form-heading h3 { margin: 0; font-size: 1.35rem; }
.agency-contact-form-heading a { color: #0754d5; font-size: .875rem; font-weight: 700; }
.agency-contact-form-heading a:hover, .agency-contact-form-heading a:focus-visible { text-decoration: underline; text-underline-offset: .2em; }
/* The embedded form scrolls inside its own frame while the dialog remains usable on small screens. */
.agency-contact-form iframe { display: block; width: 100%; height: clamp(28rem, 68vh, 46rem); border: 1px solid #e5edf7; border-radius: .875rem; background: #f5f9ff; }

@media (max-width: 64rem) {
    .primary-nav { width: 100%; justify-content: flex-start; overflow-x: auto; }
}
@media (max-width: 52rem) {
    .landing-home-hero-inner, .landing-agency-hero-inner { grid-template-columns: 1fr; gap: 0; }
    .landing-home-copy { padding: 3.5rem 0 2rem; }
    .landing-home-photo { min-height: 20rem; margin: 0; border-radius: 1rem 1rem 0 0; }
    .landing-home-photo::before { display: none; }
    .landing-agency-visual { height: 21rem; }
    .landing-company-intro, .landing-highlight-grid { grid-template-columns: 1fr; }
    .landing-videos-grid { grid-template-columns: 1fr; }
    .landing-support-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .landing-store-features { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .landing-partner-card { min-height: 19rem; }
    .landing-partner-copy { max-width: 85%; }
}
@media (max-width: 40rem) {
    .landing-home-hero-inner { width: 100%; }
    .landing-home-copy { padding: 3rem 1rem 2rem; }
    .landing-home-photo { min-height: 16rem; border-radius: 0; }
    .landing-home-photo span { right: 1rem; bottom: 1rem; }
    .landing-partners { padding-top: 4rem; }
    .landing-partner-grid, .landing-products .product-grid, .landing-company-values, .landing-store-features, .landing-operating-grid { grid-template-columns: 1fr; }
    .landing-partner-card { min-height: 17rem; }
    .landing-partner-copy { max-width: 90%; padding: 1.5rem; }
    .landing-partner-card > img { width: 80%; }
    .landing-products { padding-top: 3.5rem; padding-bottom: 5rem; }
    .landing-products .product-grid { gap: 1rem; }
    .landing-products .product-card img { aspect-ratio: 1.55; }
    .landing-section-heading { align-items: start; flex-direction: column; }
    .landing-company-hero-inner { min-height: 26rem; padding: 3rem 0 5rem; }
    .landing-company-hero h1 { text-align: left; }
    .landing-company-intro { gap: 2rem; margin-top: -2rem; margin-bottom: 4rem; padding: 1.5rem; }
    .landing-company-values article { padding: 1.75rem; }
    .landing-videos-hero-inner { padding: 4rem 0 4.5rem; }
    .landing-videos { padding-top: 3.5rem; padding-bottom: 5rem; }
    .landing-video-caption { padding: 1.25rem; }
    .landing-agency-hero-inner { padding: 3rem 0; }
    .landing-agency-visual { height: 16rem; margin-top: 2rem; }
    .landing-agency-section { padding-top: 4rem; padding-bottom: 4rem; }
    .landing-support-grid { grid-template-columns: 1fr; }
    .landing-agency-highlight { padding: 4rem 0; }
    .landing-highlight-grid { gap: 2rem; }
    .landing-highlight-grid > img { max-height: 19rem; }
    .agency-contact-card { padding: 1.5rem; }
}
@media (max-width: 26.25rem) {
    .landing-home-copy h1, .landing-agency-hero h1 { font-size: 2.25rem; }
    .landing-partner-copy h3 { font-size: 1.65rem; }
    .landing-pill { width: 100%; }
    .landing-company-motto { letter-spacing: .17em; }
}
