@font-face {
    font-family:'Montserrat'; font-style:normal; font-weight:400 900; font-display:swap;
    src:url('../fonts/montserrat-latin-variable.woff2') format('woff2');
}
:root { --font:'Montserrat',Arial,sans-serif; --heading:'Montserrat',Arial,sans-serif; }

/* A single edge-to-edge scene. Natural image proportions keep every device intact. */
.hipos-slider { position:relative; isolation:isolate; background:#001d45; color:#fff; }
.hipos-slides { display:grid; }
.hipos-slide { --slide-accent:#ff9d42; grid-area:1 / 1; display:grid; grid-template-columns:minmax(0,1fr); position:relative; background:#001d45; min-width:0; }
.hipos-slide[hidden] { display:grid; visibility:hidden; pointer-events:none; }
.panorama-scene { position:relative; grid-area:1 / 1; display:block; width:100%; align-self:center; min-width:0; }
.panorama-scene img { display:block; width:100%; max-width:none; height:auto; border:0; border-radius:0; object-fit:contain; }
.panorama-scene::after { content:''; position:absolute; inset:0; pointer-events:none; background:linear-gradient(90deg,#00152a52,transparent 57%),linear-gradient(0deg,#001d45 0%,#001d4580 5%,transparent 17%,transparent 90%,#001d4540); }
.panorama-content { position:relative; z-index:1; grid-area:1 / 1; align-self:center; padding-block:30px; display:flex; align-items:center; pointer-events:none; }
.banner-copy { width:45%; max-width:575px; pointer-events:auto; }
.banner-kicker { display:flex; align-items:center; gap:10px; font-size:10px; line-height:1.6; letter-spacing:1.5px; font-weight:750; color:#c8ddff; margin-bottom:22px; }
.banner-kicker>.icon { color:var(--slide-accent); }
.banner-copy h1,.banner-copy h2 { font:800 clamp(42px,4vw,67px)/1.09 var(--heading); letter-spacing:-2px; margin:0 0 22px; color:#fff; text-shadow:0 3px 20px #00102040; }
.banner-copy h1>span,.banner-copy h2>span { color:var(--slide-accent); }
.banner-copy p { color:#d9e5f7; font-size:15px; line-height:1.8; max-width:475px; }
.banner-copy .banner-lead { display:none; }
.banner-features { display:flex; flex-wrap:wrap; gap:10px 18px; margin-top:23px; }
.banner-features>span { display:inline-flex; align-items:center; gap:7px; font-size:11px; font-weight:600; color:#f0f5ff; }
.banner-features .icon { color:var(--slide-accent); }
.banner-actions { display:flex; align-items:center; flex-wrap:wrap; gap:20px; margin-top:28px; }
.button.banner-primary { background:var(--slide-accent); color:#00234e; padding:16px 23px; border-radius:9px; font-size:13px; font-weight:750; gap:16px; box-shadow:0 6px 25px #000e3720; }
.button.banner-primary:hover { background:#ffb364; transform:translateY(-3px); box-shadow:0 12px 30px #000e3740; }
.banner-secondary { display:inline-flex; align-items:center; gap:9px; color:#fff; font-size:13px; font-weight:650; padding-block:10px; }
.banner-secondary:hover { text-decoration:underline; text-underline-offset:6px; }
.banner-price { display:flex; align-items:center; flex-wrap:wrap; gap:17px; margin-top:26px; padding-top:20px; border-top:1px solid #ffffff29; max-width:490px; }
.banner-price>span { display:grid; gap:3px; font-size:9px; font-weight:750; line-height:1.5; letter-spacing:.4px; color:#c8ddff; }
.banner-price>span>small { font-size:11px; font-weight:500; letter-spacing:0; }
.banner-price>strong { font-size:35px; font-weight:800; letter-spacing:-1.2px; line-height:1; white-space:nowrap; }
.banner-price sup { font-size:19px; }
.banner-price strong>small { font-size:12px; font-weight:500; letter-spacing:0; margin-left:4px; }
.banner-price>a { display:flex; align-items:center; gap:7px; font-size:11px; color:#e0ecff; text-decoration:underline; text-underline-offset:4px; }
.banner-copy .banner-terms { margin-top:25px; font-size:11px; line-height:1.75; color:#c7dcf9; }
.slide-promotion .banner-copy h2>span { font-size:1.2em; }
.slide-android { --slide-accent:#bfa6ff; }
.slide-android .banner-primary { background:#ff9d42; }
.slide-android .banner-primary:hover { background:#ffb364; }
.panorama-note { position:absolute; bottom:15px; right:30px; color:#d0dced; font-size:10px; text-shadow:0 1px 5px #000; z-index:1; }
.restaurant-slider .banner-copy h1,.restaurant-slider .banner-copy h2 { font-size:clamp(38px,3.6vw,59px); letter-spacing:-1.8px; }
.banner-restaurant-price { display:flex; align-items:center; flex-wrap:wrap; gap:18px; margin-top:26px; padding-top:21px; border-top:1px solid #ffffff2b; max-width:490px; }
.banner-restaurant-price>span { font-size:12px; color:#ccdcf2; }
.banner-restaurant-price strong { font-weight:800; font-size:29px; color:#fff; letter-spacing:-.8px; }
.banner-restaurant-price>i { width:1px; height:26px; background:#ffffff38; }
.banner-restaurant-price>a { display:flex; align-items:center; gap:7px; color:#e7effc; font-weight:650; font-size:11px; text-decoration:underline; text-underline-offset:4px; }

/* Controls sit directly below the complete photograph, without hiding its edges. */
.slider-controls { position:relative; z-index:2; background:#001832; border-top:1px solid #ffffff26; }
.slider-controls[hidden] { display:none; }
.slider-controls-inner { display:flex; align-items:center; gap:42px; min-height:80px; }
.slider-arrows { display:flex; align-items:center; gap:13px; flex-shrink:0; }
.slider-arrows>button { display:grid; place-items:center; width:42px; height:42px; border:1px solid #ffffff48; background:#ffffff0a; border-radius:50%; color:#fff; transition:background .2s,color .2s; }
.slider-arrows>button:hover { background:#fff; color:#003fb3; }
[data-slide-prev]>.icon { transform:rotate(180deg); }
.slider-counter { font-size:11px; color:#9bb0ce; white-space:nowrap; }
.slider-counter>b { font-weight:750; color:#fff; }
.slider-arrows [data-slide-pause] { border:0; background:transparent; margin-left:2px; }
.pause-symbol { display:block; }
.play-symbol,.rotation-paused .pause-symbol { display:none; }
.rotation-paused .play-symbol { display:block; }
.slider-selectors { display:flex; gap:25px; flex:1; align-self:stretch; max-width:760px; }
.slider-selectors>button { flex:1; position:relative; display:flex; align-items:center; gap:10px; background:transparent; border:0; padding:18px 0; color:#b7cae5; text-align:left; font:inherit; min-height:48px; }
.slider-selectors>button>span { font-size:10px; font-weight:700; opacity:.7; }
.slider-selectors>button>strong { font-size:12px; font-weight:550; line-height:1.5; }
.slider-selectors>button>i { position:absolute; bottom:0; left:0; right:0; height:3px; background:#ff9d42; transform:scaleX(0); transform-origin:left; transition:transform .3s; }
.slider-selectors>button[aria-current] { color:#fff; }
.slider-selectors>button[aria-current]>strong { font-weight:750; }
.slider-selectors>button[aria-current]>i { transform:scaleX(1); }
.slider-selectors>button:hover { color:#fff; }
.hipos-slider :is(a,button):focus-visible { outline:2px solid #ffae58; outline-offset:5px; }
.banner-trust { background:#edf3fe; border-bottom:1px solid #e1e8f4; }
.banner-trust>.container { display:flex; justify-content:space-between; flex-wrap:wrap; gap:18px; padding-block:22px; }
.banner-trust span { display:flex; align-items:center; gap:10px; color:#254c7a; font-size:12px; font-weight:600; }
.banner-trust .icon { color:#003fb3; }
.hipos-slide.is-active .banner-copy { animation:banner-copy-enter .65s ease-out both; }
.hipos-slide.is-active .panorama-scene { animation:banner-scene-enter .8s ease-out both; }
@keyframes banner-copy-enter { from{opacity:0;transform:translateY(18px)} to{opacity:1;transform:translateY(0)} }
@keyframes banner-scene-enter { from{opacity:.4} to{opacity:1} }

.module-card { transition:transform .25s,border-color .25s,box-shadow .25s; }
.module-card:hover { transform:translateY(-7px); border-color:#99b8f2; box-shadow:none; }
.module-card:nth-child(3n+2) .feature-icon { color:#c55400; background:#fff0e1; }
.module-card:nth-child(3n) .feature-icon { color:#6141cc; background:#f0ebff; }
.mobile-home-section { background:radial-gradient(ellipse at 12% 40%,#e2eaff,transparent 58%),#f7f9ff; }
.industry-strip .industries .icon { color:#ff7900; }
.button { border-radius:10px; }
.page-promo-link { background:#edf3ff; padding:28px 0; border-block:1px solid #dce6f7; }
.page-promo-link>.container { display:flex; align-items:center; justify-content:space-between; gap:24px; }
.page-promo-link strong { display:block; font-size:19px; color:#003fb3; }
.page-promo-link p { font-size:15px; margin-top:4px; }
.page-promo-link a { font-size:14px; color:#003fb3; font-weight:700; display:flex; align-items:center; gap:12px; white-space:nowrap; }

@media(min-width:1600px) {
    .panorama-content { padding-block:50px; }
    .banner-copy { width:44%; }
}
@media(max-width:1100px) {
    .panorama-content { padding-block:25px; }
    .banner-copy { width:46%; }
    .banner-copy h1,.banner-copy h2 { font-size:42px; letter-spacing:-1.5px; }
    .restaurant-slider .banner-copy h1,.restaurant-slider .banner-copy h2 { font-size:38px; }
    .banner-copy p { font-size:14px; }
    .banner-kicker { font-size:9px; letter-spacing:1px; }
    .banner-actions { gap:13px; }
    .banner-features { gap:9px 12px; }
    .button.banner-primary { padding:15px 18px; gap:12px; }
    .banner-secondary { font-size:12px; }
    .slider-controls-inner { gap:25px; }
    .slider-selectors { gap:18px; }
    .slider-selectors>button>strong { font-size:11px; }
}
/* Full-width, unframed photographs follow the copy on compact screens; no cover crop. */
@media(max-width:1050px) {
    .hipos-slide { grid-template-rows:auto 1fr auto; }
    .panorama-content { grid-area:1 / 1; min-height:0; padding-block:33px 25px; align-self:stretch; align-items:flex-start; }
    .banner-copy { width:100%; max-width:620px; }
    .banner-copy h1,.banner-copy h2 { font-size:clamp(36px,7vw,54px); }
    .restaurant-slider .banner-copy h1,.restaurant-slider .banner-copy h2 { font-size:clamp(34px,6.5vw,50px); }
    .banner-copy p { max-width:600px; font-size:15px; }
    .panorama-scene { grid-area:2 / 1; align-self:end; line-height:0; }
    .panorama-scene::after { background:linear-gradient(0deg,#001d45 0,transparent 12%,transparent 91%,#001d4580); }
    .panorama-note { position:static; grid-area:3 / 1; background:#001d45; padding:9px 18px 18px; text-align:center; font-size:9px; color:#c0cfe4; }
    .slider-controls { margin-top:0; background:#001832; }
    .slider-controls-inner { flex-wrap:wrap; gap:0; padding-block:13px 0; }
    .slider-arrows { gap:13px; }
    .slider-selectors { width:100%; flex-basis:100%; gap:20px; min-height:72px; }
    .slider-selectors>button { gap:8px; }
    .slider-selectors>button>strong { font-size:12px; }
    .banner-trust>.container { display:grid; grid-template-columns:1fr 1fr; gap:18px 14px; }
    .slide-promotion { background:#fff0dd; }
    .slide-promotion .banner-copy h2,.slide-promotion .banner-copy p,.slide-promotion .banner-secondary,.slide-promotion .banner-features>span,.slide-promotion .banner-kicker { color:#002c5f; text-shadow:none; }
    .slide-promotion .banner-copy h2>span { color:#c95700; }
    .slide-promotion .banner-features .icon,.slide-promotion .banner-kicker>.icon { color:#b84c00; }
    .slide-promotion .panorama-scene::after { background:linear-gradient(0deg,#001d45 0,transparent 10%,transparent 93%,#fff0dd80); }
    .page-promo-link>.container { flex-wrap:wrap; gap:16px; }
}
@media(max-width:500px) {
    .banner-copy h1,.banner-copy h2 { font-size:clamp(33px,10.3vw,47px); letter-spacing:-1.4px; margin-bottom:17px; }
    .restaurant-slider .banner-copy h1,.restaurant-slider .banner-copy h2 { font-size:clamp(31px,8.5vw,42px); letter-spacing:-1.2px; }
    .banner-kicker { margin-bottom:18px; font-size:9px; letter-spacing:.7px; gap:8px; }
    .banner-copy .banner-lead { font-size:17px; }
    .banner-copy p { font-size:14px; line-height:1.75; }
    .banner-features { margin-top:18px; gap:9px 13px; }
    .banner-features>span { font-size:10px; }
    .banner-actions { margin-top:23px; gap:10px 17px; }
    .button.banner-primary { font-size:12px; min-height:49px; }
    .banner-secondary { font-size:12px; }
    .banner-price { gap:14px; margin-top:20px; padding-top:18px; }
    .banner-price>a { width:100%; }
    .banner-price>strong { font-size:33px; }
    .banner-copy .banner-terms { margin-top:20px; font-size:10px; }
    .banner-restaurant-price { gap:14px; margin-top:20px; padding-top:17px; }
    .banner-restaurant-price strong { font-size:25px; }
    .banner-restaurant-price>span { font-size:11px; }
    .banner-restaurant-price>a { font-size:10px; }
    .slider-selectors { gap:13px; }
    .slider-selectors>button { flex-direction:column; align-items:flex-start; justify-content:center; gap:4px; padding-block:13px; }
    .slider-selectors>button>strong { font-size:11px; }
    .slider-selectors>button>span { font-size:9px; }
    .banner-trust span { font-size:11px; gap:8px; }
    .banner-trust .icon { width:18px; }
}
@media(prefers-reduced-motion:reduce) {
    .hipos-slide.is-active .banner-copy,.hipos-slide.is-active .panorama-scene { animation:none; }
    .slider-selectors>button>i,.slider-arrows>button { transition:none; }
    .module-card:hover { transform:none; }
}
