/* GPS offer: shared LAMICO typography, palette and form components. */
.gps-hero { padding: 7rem 0 4.5rem; background: linear-gradient(125deg,#fff 25%,#eaf2f7); }
.gps-breadcrumb { display:flex; flex-wrap:wrap; gap:.75rem; margin-bottom:3rem; color:var(--muted); font-size:.8rem; }
.gps-breadcrumb a:hover { color:var(--brand-deep); }
.gps-hero-grid { display:grid; grid-template-columns:1fr 1.05fr; gap:clamp(2rem,5vw,5rem); align-items:center; }
.gps-hero h1 { font-size:var(--fs-4); max-width:19ch; font-weight:700; letter-spacing:-.035em; }
.gps-hero h1 span { color:var(--brand-deep); }
.gps-lead { font-size:var(--fs-1); color:var(--ink-soft); margin:1.5rem 0 1rem; max-width:53ch; }
.gps-hero-note { color:var(--muted); max-width:58ch; margin:0 0 1.75rem; font-size:.93rem; }
.gps-actions { display:flex; flex-wrap:wrap; gap:.75rem; }
.gps-btn-outline { color:var(--brand-deep); border-color:#abcada; background:#fff; }
.gps-btn-outline:hover { background:var(--brand-soft); border-color:var(--brand); }
.gps-packages { background:#fff; }
.gps-packages .section-title { max-width:30ch; }
.gps-package-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; }
.gps-package { padding:clamp(1.5rem,3.5vw,2.5rem); border:1px solid var(--line); border-radius:8px; display:flex; flex-direction:column; background:#fff; }
.gps-package-can { border:2px solid var(--brand); background:linear-gradient(155deg,#eef8fd,#fff 60%); }
.gps-package-heading { margin-bottom:1.75rem; }
.gps-package-label { font-size:.75rem; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }
.gps-package h3 { font-size:var(--fs-2); margin-top:.5rem; }
.gps-device-price { margin:0; }
.gps-device-price > span { display:block; color:var(--muted); font-size:.85rem; }
.gps-device-price > strong { font-size:clamp(2.5rem,4vw,3.4rem); line-height:1.3; letter-spacing:-.04em; display:block; }
.gps-device-price small { font-size:1rem; letter-spacing:0; font-weight:500; white-space:nowrap; }
.gps-subscription { margin:.5rem 0 1.75rem; color:var(--ink-soft); font-size:.95rem; }
.gps-subscription strong { color:var(--brand-deep); white-space:nowrap; }
.gps-feature-list { display:grid; gap:.9rem; margin:0 0 2rem; padding-top:1.5rem; border-top:1px solid var(--line); }
.gps-feature-list li { padding-left:1.15rem; position:relative; font-size:.95rem; color:var(--ink-soft); }
.gps-feature-list li::before { content:''; position:absolute; left:0; top:.6em; width:5px; height:5px; background:var(--brand); border-radius:50%; }
.gps-package .btn { margin-top:auto; align-self:flex-start; }
.gps-price-note { margin-top:1.5rem; padding-left:1rem; border-left:2px solid var(--brand); color:var(--ink-soft); font-size:.9rem; max-width:90ch; }
.gps-price-note p { margin:.5rem 0; }
.gps-benefits { background:var(--bg); }
.gps-benefit-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2rem; margin-top:2.5rem; }
.gps-benefit-grid article { padding-top:1.5rem; border-top:1px solid var(--line); }
.gps-benefit-grid article > span { color:var(--brand-deep); font-size:.75rem; font-weight:600; }
.gps-benefit-grid h3 { font-size:1.15rem; margin:1rem 0 .75rem; }
.gps-benefit-grid p { color:var(--ink-soft); margin:0; }
.gps-comparison { background:#fff; }
.gps-table-wrap { margin-top:2rem; border:1px solid var(--line); border-radius:8px; overflow:hidden; }
.gps-table { width:100%; border-collapse:collapse; font-size:.93rem; }
.gps-table caption { text-align:left; padding:1rem 1.5rem; color:var(--muted); font-size:.8rem; }
.gps-table th,.gps-table td { padding:1rem 1.5rem; text-align:left; border-top:1px solid var(--line); }
.gps-table thead { background:#102d3e; color:#fff; }
.gps-table thead th { font-weight:600; }
.gps-table tbody th { font-weight:500; color:var(--ink-soft); width:44%; }
.gps-table tbody tr:nth-child(even) { background:var(--bg); }
.gps-table-detail { display:block; margin-top:.3rem; font-size:.85em; font-weight:400; line-height:1.5; color:var(--muted); }
.gps-table tbody td:last-child { color:var(--brand-deep); }
.gps-partner-section { padding:3.5rem 0; background:var(--bg-soft); border-block:1px solid var(--line); }
.gps-partner { display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:start; }
.gps-partner h2 { max-width:26ch; font-size:var(--fs-2); }
.gps-partner p { margin:0; color:var(--ink-soft); }
.gps-partner a,.gps-small a,.gps-privacy a { color:var(--brand-deep); text-decoration:underline; text-underline-offset:3px; }
.gps-partner .gps-partner-note { margin-top:1rem; font-size:.85rem; color:var(--muted); }
.gps-enquiry { background:#fff; }
.gps-enquiry-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(2rem,5vw,5rem); align-items:start; }
.gps-enquiry-copy > p { color:var(--ink-soft); }
.gps-recipient { display:grid; gap:.4rem; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:1.5rem 0; margin:2rem 0 1.5rem; }
.gps-recipient span { color:var(--muted); font-size:.8rem; }
.gps-recipient strong { font-size:1.05rem; }
.gps-recipient a { color:var(--brand-deep); overflow-wrap:anywhere; }
.gps-small { font-size:.85rem; line-height:1.7; }
.gps-form { margin:0; max-width:none; width:100%; }
.gps-form .btn-large { max-width:none; }
.gps-optional { font-weight:400; color:var(--muted); }
.gps-privacy { color:var(--ink-soft); font-size:.78rem; line-height:1.65; margin:1.5rem 0; }
.gps-privacy p { margin:0 0 .65rem; }
.gps-trap { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
@media(max-width:980px) {
 .gps-hero-grid,.gps-enquiry-grid { grid-template-columns:1fr; }
 .gps-hero h1 { max-width:24ch; }
 .gps-hero-photo { max-width:760px; }
 .gps-benefit-grid { gap:1.5rem; }
}
@media(max-width:600px) {
 .gps-hero { padding-top:6.5rem; padding-bottom:3rem; }
 .gps-breadcrumb { margin-bottom:2rem; }
 .gps-hero h1 { font-size:clamp(2rem,8vw,2.6rem); }
 .gps-package-grid,.gps-benefit-grid,.gps-partner { grid-template-columns:1fr; }
 .gps-package { padding:1.5rem; }
 .gps-package .btn,.gps-actions .btn { width:100%; }
 .gps-partner { gap:1.5rem; }
 .gps-table { font-size:.76rem; table-layout:fixed; }
 .gps-table th,.gps-table td { padding:.8rem .6rem; overflow-wrap:anywhere; }
 .gps-table tbody th { width:40%; }
 .gps-table caption { padding:1rem; }
 .gps-form input,.gps-form select,.gps-form textarea { font-size:16px; }
 .gps-subscription strong { white-space:normal; }
}

.gps-hero-photo { margin:0; border-radius:10px; overflow:hidden; background:#102d3e; border:1px solid var(--line); box-shadow:0 18px 45px rgba(21,32,40,.12); }
.gps-hero-photo img { width:100%; height:auto; aspect-ratio:16/10; object-fit:cover; object-position:70% center; }
.gps-hero-photo figcaption { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:1.4rem 1.5rem; color:#fff; }
.gps-hero-photo figcaption div { display:grid; gap:.35rem; }
.gps-hero-photo figcaption div > span { font-size:.75rem; color:#a9c8d9; }
.gps-hero-photo figcaption strong { font-size:.95rem; font-weight:500; }
.gps-photo-label { flex-shrink:0; color:#9bdbfb; border:1px solid #385a6c; border-radius:4px; padding:.4rem .55rem; font-size:.65rem; font-weight:600; letter-spacing:.04em; }
.gps-can-ref { color:var(--brand-deep); font-weight:700; font-size:.85em; vertical-align:super; text-decoration:none; padding:0 .2em; }
#can-note { scroll-margin-top:6rem; }
@media(max-width:600px) {
 .gps-hero-photo figcaption { padding:1rem; flex-wrap:wrap; }
 .gps-hero-photo img { aspect-ratio:16/10; }
}

.gps-hero-note a, .gps-feature-list a:not(.gps-can-ref) { color:var(--brand-deep); text-decoration:underline; text-underline-offset:3px; }
.gps-hero-note a:hover, .gps-feature-list a:not(.gps-can-ref):hover { color:var(--brand); }

/* Wide supplied artwork is displayed in full, followed by accessible HTML copy. */
.gps-wide-visual { margin: 0 0 2.5rem; overflow: hidden; border-radius: 9px; background: #112b3d; }
.gps-wide-visual img { display: block; width: 100%; height: auto; }
.gps-hero-copy { display: grid; grid-template-columns: minmax(0,1fr) minmax(240px,.43fr); gap: clamp(2rem,5vw,5rem); align-items: start; }
.gps-hero-copy h1 { max-width: 26ch; font-size: clamp(2rem,3.2vw,3.1rem); }
.gps-hero-partner { border-left: 3px solid #0a7eb8; padding: 1.25rem 1.4rem; background: #eaf3f8; border-radius: 0 6px 6px 0; }
.gps-hero-partner > span { color: #526d7c; font-size: .72rem; display: block; margin-bottom: .75rem; }
.gps-hero-partner .gps-partner-brand { color: #075d87; font-size: clamp(1.15rem,1.8vw,1.5rem); font-weight: 700; text-decoration: none; letter-spacing: -.025em; }
.gps-hero-partner p { font-size: .9rem; line-height: 1.7; color: #345364; margin: .6rem 0 1rem; }
.gps-hero-partner .gps-partner-direct { color: #07628f; font-size: .83rem; text-decoration: underline; text-underline-offset: .25rem; }
.gps-hero-partner small { display: block; color: #526d7c; font-size: .72rem; margin-top: 1rem; line-height: 1.6; }
@media(max-width:980px) { .gps-hero-copy { grid-template-columns: 1fr; gap: 2rem; } .gps-hero-partner { max-width: 520px; } }
@media(max-width:600px) { .gps-wide-visual { margin-bottom: 2rem; border-radius: 5px; } .gps-hero-copy h1 { font-size: clamp(1.9rem,7.6vw,2.6rem); } .gps-hero-partner { padding: 1.1rem; } }

.gps-breadcrumb { margin-bottom: 1.5rem; }
.gps-wide-visual { margin-bottom: 2rem; }
