/* ==========================================================================
   Homepage — Figma frame 49:2924
   ========================================================================== */

/* Shared bits */
.home-eyebrow {
    font-family: var(--font-mono); font-weight: 500; font-size: 14px; line-height: 1.6; letter-spacing: 0.42px;
    color: var(--brand-primary);
}
/* Figma Button Sm = 40px tall (6px padding round a 28px icon). */
.home-btn-sm { gap: 11px; padding: 6px 6px 6px 19px; font-size: 13.5px; letter-spacing: -0.189px; }
.home-btn-sm .btn-gold__icon, .home-btn-sm .btn-glass__icon { width: 28px; height: 28px; }
.home-btn-glass { box-shadow: none; border: 1px solid rgba(0, 0, 0, 0.08); padding-block: 5px; padding-right: 5px; }
.home-btn-glass .btn-glass__icon { background: rgba(255, 255, 255, 0.08); }

/* ---------- Hero (49:2925) ---------- */
.home-hero { position: relative; min-height: 924px; isolation: isolate; }
/* The photo (238:18573) starts at frame y=0, under the 76px nav, and ends 2px above the hero's bottom. */
.home-hero__bg { position: absolute; z-index: -1; left: 0; right: 0; top: calc(-1 * var(--nav-h)); bottom: 2px; overflow: hidden; }
.home-hero__bg img { width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: 50% 55.3%; }
.home-hero__bg::after { content: ""; position: absolute; inset: 0; background: rgba(0, 0, 0, 0.1); }
.home-hero__inner { padding: 120px 0 120px max(40px, calc(50% - 720px)); }
.home-hero__copy { width: 888px; max-width: 100%; display: flex; flex-direction: column; gap: 24px; }
.home-hero__title { color: var(--white); }
.home-hero__body { display: flex; flex-direction: column; gap: 32px; }
.home-hero__lede { color: var(--neutral-800); }
.home-hero__ctas { display: flex; gap: 12px; flex-wrap: wrap; }

/* ---------- Why ONERISK (49:3071) ---------- */
.home-why { padding: 120px 0; }
.home-why__inner { display: flex; flex-direction: column; gap: 32px; }
.home-why__list { display: flex; gap: 12px; margin: 0; }
.home-why__card {
    flex: 1 0 0; min-width: 1px; min-height: 247px; display: flex; flex-direction: column;
    padding: 6px; border-radius: var(--radius-lg);
    background: var(--glass-fill); border: 1px solid var(--glass-hair);
}
.home-why__core {
    flex: 1 0 auto; display: flex; flex-direction: column; gap: 12px;
    padding: 22px 24px; border-radius: var(--radius-md);
    background: var(--glass-fill-2); box-shadow: var(--bezel-inner);
}
.home-why__term { max-width: 215px; font-weight: 600; font-size: 16px; line-height: 1.3; letter-spacing: -0.416px; color: var(--text-primary); }
.home-why__def { margin: 0; font-size: 15.5px; line-height: 1.66; color: var(--text-secondary); }

/* ---------- Insurance Covers grid (101:7344) ---------- */
.home-covers { background: #ecede8; padding: 100px 0; }
.home-covers__inner { display: flex; flex-direction: column; gap: 42px; }
.home-covers__title { color: var(--text-on-gold); }
.home-covers__groups { display: flex; flex-direction: column; gap: 64px; }
.home-covers__group { display: flex; flex-direction: column; gap: 16px; }
.home-covers__head { display: flex; flex-direction: column; gap: 4px; color: var(--neutral-700); }
.home-covers__group-title { font-weight: 600; font-size: 32px; line-height: 1.24; letter-spacing: -0.832px; }
.home-covers__bento { display: flex; flex-direction: column; gap: 16px; }
.home-covers__row { display: flex; gap: 16px; align-items: stretch; }
.home-covers__row--two { gap: 14px; min-height: 217px; }

.home-tile {
    flex: 1 0 0; min-width: 1px; display: flex; flex-direction: column;
    padding: 6px; border-radius: var(--radius-lg); background: var(--white);
    transition: transform .2s ease, box-shadow .2s ease;
}
.home-tile:hover { transform: translateY(-2px); box-shadow: 0 12px 32px rgba(15, 23, 42, 0.08); }
.home-tile__core {
    display: flex; flex-direction: column; align-items: flex-start; gap: 12px;
    padding: 28px 26px 24px; border-radius: var(--radius-md);
    background: var(--white); box-shadow: var(--bezel-inner);
}
.home-tile__icon { width: 24px; height: 24px; }
.home-tile__text { display: flex; flex-direction: column; gap: 12px; width: 100%; }
.home-tile__name { color: var(--neutral-800); }
.home-tile__desc { font-size: 14.5px; line-height: 1.58; color: var(--neutral-500); }
.home-tile__more {
    display: inline-flex; align-items: center; gap: 9px;
    font-weight: 600; font-size: 13.5px; line-height: normal; color: var(--accent-gold); white-space: nowrap;
}
.home-tile__more-ico {
    display: inline-flex; align-items: center; justify-content: center;
    width: 24px; height: 24px; border-radius: var(--radius-pill); background: var(--accent-gold-dim);
    transition: transform .2s ease;
}
.home-tile:hover .home-tile__more-ico { transform: translate(2px, -2px); }

/* ---------- Exporter feature (49:3018) ---------- */
.home-exporter { position: relative; padding: 120px 0; overflow-x: clip; }
/* map-base 1 (116:10918) sits at frame x=18 (942px left of centre), 432px below the section top. */
.home-exporter__map {
    position: absolute; z-index: 0; top: 432px; left: calc(50% - 942px);
    width: 1120px; height: 364px; max-width: none; pointer-events: none;
}
.home-exporter__inner { position: relative; z-index: 1; display: flex; gap: 32px; align-items: flex-start; justify-content: center; }
.home-exporter__copy { width: 720px; flex-shrink: 0; display: flex; flex-direction: column; gap: 24px; }
.home-exporter__body { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; }
.home-exporter__rail { flex: 1 0 0; min-width: 1px; display: flex; flex-direction: column; gap: 12px; }

.home-step {
    padding: 5px; border-radius: var(--radius-sm);
    background: var(--glass-fill); border: 1px solid var(--glass-hair);
}
.home-step__core {
    display: flex; flex-direction: column; gap: 8px;
    padding: 22px 20px 20px; border-radius: var(--radius-xs);
    background: var(--glass-fill-2); box-shadow: var(--bezel-inner);
}
.home-step__head { display: flex; align-items: center; gap: 8px; }
.home-step__title { font-weight: 600; font-size: 16.5px; line-height: 1.22; letter-spacing: -0.429px; color: var(--text-primary); }
.home-step__desc { font-size: 14px; line-height: 1.55; color: var(--text-secondary); }

/* ---------- Ecosystem Section (121:16150) ---------- */
.home-eco { padding: 120px 0; }
.home-eco__inner { display: flex; flex-direction: column; gap: 6px; }
.home-eco__main { display: flex; flex-direction: column; gap: 16px; }
.home-eco__content { display: flex; flex-direction: column; gap: 32px; }
.home-eco__text { display: flex; flex-direction: column; gap: 16px; }
.home-eco__lede { white-space: pre-wrap; }
.home-eco__brand { display: flex; flex-direction: column; gap: 12px; }
.home-eco__logo { width: 120px; height: 29px; object-fit: contain; }
.home-eco__list { display: flex; flex-direction: column; gap: 9px; }
.home-eco__list li { display: flex; align-items: flex-start; gap: 11px; font-size: 14px; line-height: 1.5; color: var(--text-secondary); }
.home-eco__list img { flex-shrink: 0; width: 4px; height: 20px; }
.home-eco__btn {
    display: inline-flex; align-items: center; justify-content: center;
    padding: 12px 20px; border-radius: var(--radius-pill); background: var(--accent-gold);
    font-weight: 600; font-size: 15px; line-height: 1.9; letter-spacing: -0.21px; color: var(--text-on-gold); white-space: nowrap;
    transition: transform .15s ease, filter .15s ease;
}
.home-eco__btn:hover { filter: brightness(1.06); transform: translateY(-1px); }

/* ---------- Responsive (desktop ≥1280 is the Figma frame; nothing below touches it) ---------- */
@media (max-width: 1312px) {
    .home-exporter__copy { width: auto; flex: 1 1 0; min-width: 1px; }
}
@media (max-width: 1279px) {
    /* Touch-size Button Sm: 44px tap target */
    .home-btn-sm { padding-block: 8px; }
    .home-btn-glass { padding-block: 7px; }
    .home-why { padding: 96px 0; }
    .home-eco { padding: 96px 0 72px; } /* the CTA band below brings its own top spacing */
    .home-covers { padding: 88px 0; }
    /* Side-by-side exporter: the copy column is taller here, so the map moves below it instead of under the lede. */
    .home-exporter { padding: 96px 0 236px; }
    .home-exporter__map { top: auto; bottom: 16px; left: calc(var(--gutter) - 220px); width: 820px; height: auto; }
    .home-eco__lede { white-space: normal; }
}
@media (max-width: 1024px) {
    .home-hero { min-height: 760px; }
    .home-hero__inner { padding: 96px var(--gutter) 360px; }
    .home-why__list { flex-wrap: wrap; }
    .home-why__card { flex: 1 1 calc(50% - 6px); min-height: 0; }
    /* Stacked exporter: copy, then the steps as a 2×2 grid, then the map as a full-bleed tail. */
    .home-exporter { padding: 88px 0 calc(max(700px, 110vw) * 0.31 + 8px); }
    .home-exporter__inner { flex-direction: column; align-items: stretch; gap: 40px; }
    .home-exporter__copy { flex: none; }
    .home-exporter__rail { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); flex: none; }
    .home-step { display: flex; flex-direction: column; }
    .home-step__core { flex: 1 0 auto; }
    .home-exporter__map { bottom: 0; left: 50%; width: max(700px, 110vw); transform: translateX(-50%); opacity: .75; }
}
@media (max-width: 900px) {
    /* Portrait: the photo is cropped tall, so its cranes would rise behind the dark lede. The text sits on a sky fill
       matching the photo's top; the photo is pinned to the bottom with its crane tops kept below the CTAs. */
    .home-hero { --photo-h: 640px; min-height: 0; }
    .home-hero__bg { background: linear-gradient(#9cbfe3, #a2c4e5); }
    .home-hero__bg img {
        position: absolute; left: 0; bottom: 0; height: var(--photo-h); object-position: 60% 100%;
        -webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 22%); mask-image: linear-gradient(to bottom, transparent 0, #000 22%);
    }
    .home-hero__inner { padding: 88px var(--gutter) calc(var(--photo-h) * 0.56 + 40px); }
    /* the glass CTA sits on bright sky here; a faint navy tint keeps its white label legible */
    .home-btn-glass { background: rgba(15, 23, 42, 0.16); border-color: rgba(255, 255, 255, 0.28); }
    .home-covers__row { flex-wrap: wrap; }
    .home-covers__row > .home-tile { flex: 1 1 calc(50% - 8px); }
    .home-why { padding: 80px 0; }
    .home-eco { padding: 80px 0 48px; }
    .home-covers { padding: 80px 0; }
}
@media (max-width: 640px) {
    .home-hero { --photo-h: 500px; }
    .home-hero__inner { padding-top: 56px; }
    .home-hero__ctas { flex-direction: column; align-items: stretch; }
    .home-hero__ctas > a { justify-content: space-between; }
    .home-why { padding: 64px 0; }
    .home-eco { padding: 64px 0 32px; }
    .home-exporter { padding-top: 64px; }
    .home-exporter__rail { grid-template-columns: minmax(0, 1fr); }
    .home-covers { padding: 64px 0; }
    .home-covers__groups { gap: 48px; }
    .home-covers__group-title { font-size: 26px; }
    .home-why__card, .home-covers__row > .home-tile { flex-basis: 100%; }
    .home-covers__row--two { min-height: 0; }
    .home-eco__text br { display: none; }
}
