@import url("../../design-system/nesslock.tokens.css");
@import url("../../design-system/components.css");

/* Travel eSIMs page, rebuilt 25 Sep 2026 to the country-first mock-ups (Boards 1 to 4). House colours and Instrument Sans only. */
.page-hero h1 { font-size: clamp(3.4rem, 8vw, 7.5rem); }
.carousel-slide h2 { margin: 0; font-size: clamp(2.8rem, 6vw, 5.5rem); line-height: 0.95; letter-spacing: -0.045em; }
.carousel-body { max-width: 40rem; margin: var(--nl-space-5) 0 0; font-size: clamp(1.1rem, 1.8vw, 1.4rem); }
.carousel .actions { margin-top: var(--nl-space-6); }
.trust-lines { max-width: 44rem; margin-top: var(--nl-space-7); padding-top: var(--nl-space-5); border-top: 0.1rem solid var(--nl-basmati); }
.trust-lines p { margin: 0; }
.trust-lines__lead { font-size: clamp(1.3rem, 2.2vw, 1.8rem); font-weight: 750; line-height: 1.2; }
.country-form { display: grid; gap: var(--nl-space-3); max-width: 36rem; }
.country-form label, .who-label { font-weight: 750; }
.country-form input, #recipient-label { min-height: 3.5rem; width: 100%; box-sizing: border-box; }
#recipient-label { max-width: 36rem; margin: var(--nl-space-2) 0 var(--nl-space-6); }
.who-label { display: block; }
.quick-picks { margin-top: var(--nl-space-6); }
.chip-row { display: flex; flex-wrap: wrap; gap: var(--nl-space-3); }
.chip { min-height: 2.75rem; display: inline-flex; align-items: center; padding: 0 var(--nl-space-4); border: 0.1rem solid var(--nl-espresso); background: var(--nl-basmati); color: var(--nl-espresso); font-weight: 750; cursor: pointer; }
.chip:hover, .chip[aria-pressed="true"] { background: var(--nl-espresso); color: var(--nl-basmati); }
.a-to-z { margin-top: var(--nl-space-6); }
.letter-row { display: flex; flex-wrap: wrap; gap: var(--nl-space-2); margin: var(--nl-space-4) 0; }
.letter-row a { display: grid; min-width: 2.75rem; min-height: 2.75rem; place-items: center; border: 0.1rem solid var(--nl-espresso); text-decoration: none; font-weight: 750; }
.country-row { display: flex; width: 100%; min-height: 3.25rem; align-items: center; justify-content: space-between; gap: var(--nl-space-4); padding: 0 var(--nl-space-2); border: 0; border-bottom: 0.1rem solid var(--nl-espresso); background: none; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.country-row:hover { background: var(--nl-espresso); color: var(--nl-basmati); }
.country-row .from { font-weight: 750; white-space: nowrap; }
.letter-head { margin: var(--nl-space-5) 0 0; padding: 0 var(--nl-space-2) var(--nl-space-2); font-weight: 900; letter-spacing: 0.14em; }
.size-grid { margin-top: var(--nl-space-2); }
.size-card { min-height: 0; display: grid; gap: var(--nl-space-4); }
.size-card__photo { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border: 0.1rem solid var(--nl-espresso); }
body[data-section="travel"] .card, body[data-section="travel"] button, body[data-section="travel"] input, body[data-section="travel"] select, body[data-section="travel"] textarea { border-radius: 0; }
.size-card[aria-pressed="true"], .size-card[data-preselected] { box-shadow: var(--nl-shadow-solid); }
.size-card .size-head { display: flex; justify-content: space-between; align-items: baseline; gap: var(--nl-space-4); }
.size-card h3 { margin: 0; font-size: clamp(1.8rem, 3vw, 2.6rem); }
.size-card .price { font-size: clamp(1.8rem, 3vw, 2.6rem); font-weight: 750; }
.size-card p { margin: 0; }
.size-card .button { width: 100%; }
.family-note { margin-top: var(--nl-space-6); }
.basket-shell { max-width: 44rem; }
.basket-lines { display: grid; gap: var(--nl-space-3); }
.basket-line { display: grid; grid-template-columns: 1fr auto; gap: var(--nl-space-2) var(--nl-space-5); padding: var(--nl-space-4) 0; border-bottom: 0.1rem solid var(--nl-espresso); }
.basket-line p { margin: 0; }
.basket-line .line-price { font-weight: 750; }
.text-button { min-height: 2.75rem; padding: 0 var(--nl-space-2); border: 0; border-bottom: 0.15rem solid currentColor; background: none; color: inherit; cursor: pointer; font: inherit; font-weight: 750; }
.basket-total { display: flex; justify-content: space-between; gap: var(--nl-space-5); margin-top: var(--nl-space-5); padding: var(--nl-space-5) 0; border-top: 0.15rem solid var(--nl-espresso); font-size: 1.4rem; }
.basket-actions { margin-top: var(--nl-space-5); align-items: center; }
.fact-rows { margin: var(--nl-space-6) 0 0; }
.fact-rows > div { display: flex; justify-content: space-between; gap: var(--nl-space-5); padding: var(--nl-space-4) 0; border-bottom: 0.1rem solid var(--nl-basmati); }
.fact-rows dt { margin: 0; }
.fact-rows dd { margin: 0; font-weight: 750; text-align: right; }
.callout--basmati { background: var(--nl-basmati); color: var(--nl-espresso); }
.callout--basmati .hint a { color: var(--nl-deep-red); }
@media (max-width: 768px) {
  .size-grid { grid-template-columns: 1fr; }
}
/* ES-32 checkout consent */
.consent { margin-top: var(--nl-space-5); border: 2px solid currentColor; padding: 16px; }
.consent-text p { margin: 0 0 12px; }
.consent-ticks { display: grid; gap: 12px; margin-top: 8px; }
.consent-tick { display: flex; gap: 10px; align-items: flex-start; font-weight: 600; min-height: 44px; }
.consent-tick input { width: 22px; height: 22px; margin-top: 2px; flex: none; accent-color: var(--nl-deep-red); }
.consent-ticks fieldset { display: flex; gap: 16px; margin: 0; padding: 12px; border: 2px solid var(--nl-espresso); }
.consent-ticks fieldset legend { padding: 0 6px; font-weight: 700; }
.consent-ticks fieldset label { display: flex; gap: 8px; align-items: center; min-height: 44px; }
.consent-ticks fieldset input { width: 22px; height: 22px; accent-color: var(--nl-deep-red); }

/* Side basket (4b, 29 Sep 2026): Pennywell BasketDrawer layout and behaviour in House tokens only (square, solid, no see-through). */
.side-basket-open { display: inline-flex; align-items: center; gap: var(--nl-space-2); min-height: 2.75rem; margin-left: auto; padding: 0 var(--nl-space-4); border: 0.1rem solid var(--nl-basmati); border-radius: 0; background: none; color: var(--nl-basmati); font: inherit; font-weight: 750; cursor: pointer; }
.side-basket-open:hover, .side-basket-open:focus-visible { background: var(--nl-basmati); color: var(--nl-espresso); }
.side-basket-open__count { display: inline-grid; min-width: 1.6rem; height: 1.6rem; place-items: center; padding: 0 0.3rem; background: var(--nl-deep-red); color: var(--nl-basmati); font-size: 0.85rem; }
.side-basket { position: fixed; inset: 0; width: 100vw; max-width: none; height: 100dvh; max-height: none; margin: 0; padding: 0; overflow: hidden; border: 0; background: none; color: var(--nl-espresso); }
.side-basket::backdrop { background: none; }
.side-basket__panel { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; width: min(92vw, 520px); height: 100%; margin-left: auto; border-left: 0.2rem solid var(--nl-espresso); background: var(--nl-basmati); box-shadow: var(--nl-shadow-solid); }
.side-basket__header { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--nl-space-5); padding: max(1.5rem, env(safe-area-inset-top)) 1.5rem 1.25rem; border-bottom: 0.1rem solid var(--nl-espresso); }
.side-basket__header h2 { margin: 0 0 0.45rem; font-size: clamp(2.2rem, 6vw, 3.4rem); line-height: 0.95; letter-spacing: -0.035em; }
.side-basket__header h2:focus { outline: 0; }
.side-basket__header h2:focus-visible { outline: var(--nl-focus-width) solid var(--nl-focus); outline-offset: var(--nl-focus-offset); }
.side-basket__header p { margin: 0; font-size: 0.9rem; }
.side-basket__close { display: grid; flex: 0 0 44px; width: 44px; height: 44px; place-items: center; padding: 0; border: 0.1rem solid var(--nl-espresso); border-radius: 0; background: none; color: inherit; font: inherit; font-size: 1.1rem; cursor: pointer; }
.side-basket__close:hover { background: var(--nl-deep-red); color: var(--nl-basmati); }
.side-basket__body { min-height: 0; padding: 0 1.5rem; overflow-y: auto; overscroll-behavior: contain; }
.side-basket__item { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0.5rem 1rem; align-items: start; padding: 1.35rem 0; border-bottom: 0.1rem solid var(--nl-espresso); }
.side-basket__details h3 { margin: 0 0 0.35rem; font-size: 1.35rem; line-height: 1.05; }
.side-basket__details p { margin: 0; font-size: 0.85rem; line-height: 1.45; }
.side-basket__price { font-weight: 750; text-align: right; }
.side-basket__remove { grid-column: 1 / -1; justify-self: start; min-height: 44px; }
.side-basket__empty { padding: 3rem 0; max-width: 36ch; line-height: 1.55; }
.side-basket__footer { padding: 1.2rem 1.5rem max(1.2rem, env(safe-area-inset-bottom)); border-top: 0.15rem solid var(--nl-espresso); }
.side-basket__total { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 1rem; font-weight: 750; }
.side-basket__total strong { font-size: 1.8rem; letter-spacing: -0.025em; }
.side-basket__checkout { width: 100%; }
@media (max-width: 640px) {
  .side-basket__panel { width: 100vw; border-left: 0; }
  .side-basket__header, .side-basket__body, .side-basket__footer { padding-right: 5vw; padding-left: 5vw; }
}

/* David, 3 Oct 2026: final /travel/ carousel and left-side choice panels. */
.travel-hero-section{padding:20px 0 0;background:#1F1512}.offer-carousel--final{display:grid;grid-template:1fr auto / 1fr;min-height:720px;padding:0;overflow:hidden;border:1px solid #F3EAD8;border-radius:20px 20px 0 0;background:#702A2A;color:#F3EAD8;isolation:isolate}.offer-carousel--final .offer-slide{position:relative;grid-area:1/1;min-height:0;overflow:hidden}.offer-carousel--final .offer-slide[hidden]{display:block!important;visibility:hidden;pointer-events:none}.offer-carousel--final picture,.offer-carousel--final .offer-slide__image{position:absolute;inset:0;display:block;width:100%;height:100%}.offer-carousel--final .offer-slide__image{object-fit:cover;border:0}.offer-carousel--final .offer-slide__shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(31,21,18,.96) 0%,rgba(31,21,18,.76) 44%,rgba(31,21,18,.16) 78%,rgba(31,21,18,.06) 100%);pointer-events:none}.offer-carousel--final .offer-slide__copy{position:relative;z-index:1;display:flex;min-height:0;max-width:min(58%,680px);flex-direction:column;align-items:flex-start;padding:34px 42px 142px;color:#F3EAD8}.offer-powered{margin:0 0 26px;font-family:var(--nl-font-mono,monospace);font-size:.74rem;font-weight:700;letter-spacing:.14em}.offer-powered span{font-family:var(--nl-font-display,sans-serif);font-size:1.2rem;letter-spacing:0}.offer-carousel--final h1,.offer-carousel--final h2,.offer-link--country{margin:0;font-family:var(--nl-font-display,sans-serif);font-size:clamp(4.8rem,9vw,9rem);font-weight:700;line-height:.78;letter-spacing:-.025em;text-transform:uppercase}.offer-carousel--final h2{font-size:clamp(4.2rem,8vw,8rem)}.offer-small,.offer-talk{margin:32px 0 0;font-family:var(--nl-font-mono,monospace);font-size:clamp(.72rem,1.4vw,.98rem);font-weight:600;line-height:1.45;letter-spacing:.1em}.offer-talk{margin-top:22px;letter-spacing:.04em;text-transform:none}.offer-talk p{margin:0}.offer-price-head{margin:34px 0 0;font-family:var(--nl-font-display,sans-serif);font-size:clamp(5.5rem,10vw,10rem);font-weight:700;line-height:.78;letter-spacing:-.025em}.offer-secondary-head,.offer-second-line{margin:14px 0 0;font-family:var(--nl-font-display,sans-serif);font-size:clamp(2.9rem,5vw,5.4rem);font-weight:700;line-height:.82;letter-spacing:-.015em}.offer-link{display:inline;margin:12px 0 0;padding:0;border:0;border-bottom:2px solid currentColor;background:none;color:inherit;font:700 .82rem/1.35 var(--nl-font-mono,monospace);letter-spacing:.1em;text-align:left;text-transform:uppercase;cursor:pointer}.offer-link:hover,.offer-link:focus-visible{color:#E3A83B}.offer-link--country{margin:0;border-bottom:2px solid #F3EAD8;font-size:clamp(4.2rem,8vw,8rem);letter-spacing:-.025em}.offer-second-line{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 .28em}.offer-second-line .offer-link{margin:0;font:inherit;letter-spacing:inherit}.hero-search{position:absolute;z-index:4;right:42px;bottom:38px;left:42px}.hero-search .country-form{display:block;max-width:none}.hero-search input{width:100%;min-height:74px;padding:0 30px;border:0;border-radius:12px;background:#F3EAD8;color:#1F1512;font:600 clamp(.9rem,1.6vw,1.1rem) var(--nl-font-mono,monospace);letter-spacing:.12em}.hero-search input::placeholder{color:#1F1512;opacity:1}.offer-carousel--final .carousel-controls{position:absolute;z-index:5;right:42px;bottom:56px;justify-content:flex-end;margin:0;padding:0;border:0}.offer-carousel--final .carousel-controls button,.offer-carousel--final .carousel-dot{border:2px solid #F3EAD8;border-radius:999px;background:#1F1512;color:#F3EAD8}.offer-carousel--final .carousel-dot{min-width:18px;width:18px;min-height:18px;height:18px}.offer-carousel--final .carousel-dot[aria-current=true],.offer-carousel--final .carousel-controls button:hover,.offer-carousel--final .carousel-controls button:focus-visible{background:#F3EAD8;color:#1F1512}.travel-trust{border-bottom:2px solid #1F1512;background:#702A2A;color:#F3EAD8}.travel-trust p{margin:0;padding:22px 0;font-family:var(--nl-font-display,sans-serif);font-size:clamp(1.8rem,4vw,3.8rem);line-height:.85;text-align:center}.travel-regions h2{margin:0 0 28px;font-size:clamp(2.4rem,6vw,5rem);line-height:.92;text-align:center}.travel-regions__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px}.travel-region-card{display:block;min-height:150px;padding:20px;border:2px solid #1F1512;background:#F3EAD8;color:#1F1512;text-decoration:none}.travel-region-card:hover,.travel-region-card:focus-visible{background:#702A2A;color:#F3EAD8}.travel-region-card h3{margin:0 0 32px;font-family:var(--nl-font-display,sans-serif);font-size:2rem;line-height:.88}.travel-region-card p{margin:0;font-family:var(--nl-font-mono,monospace);font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.travel-sidebar-backdrop{position:fixed;z-index:30;inset:0;background:rgba(31,21,18,.62)}.travel-sidebar{position:fixed;z-index:31;top:0;bottom:0;left:0;display:flex;width:min(460px,94vw);transform:translateX(-103%);flex-direction:column;border-right:1px solid #F3EAD8;background:#1F1512;color:#F3EAD8;box-shadow:20px 0 50px rgba(0,0,0,.38);transition:transform .2s ease}.travel-sidebar[data-open="true"]{transform:translateX(0)}.travel-sidebar__top{display:flex;min-height:58px;justify-content:flex-end;padding:16px 18px 0}.travel-sidebar__close{display:grid;width:34px;height:34px;place-items:center;border:1px solid #F3EAD8;border-radius:50%;background:none;color:#F3EAD8;font:1.55rem/1 var(--nl-font-mono,monospace);cursor:pointer}.travel-sidebar h2{margin:0;padding:0 26px 18px;font-family:var(--nl-font-display,sans-serif);font-size:clamp(3rem,7vw,5rem);line-height:.82}.travel-sidebar__list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-content:start;gap:0 14px;min-height:0;padding:0 24px;overflow:auto}.travel-sidebar__list a{padding:5px 0;border-bottom:1px solid rgba(243,234,216,.34);color:#F3EAD8;font:600 .74rem/1.2 var(--nl-font-mono,monospace);text-decoration:none}.travel-sidebar__list a:hover,.travel-sidebar__list a:focus-visible{color:#E3A83B}.travel-sidebar__list--plans{display:grid;grid-template-columns:1fr;gap:10px}.travel-sidebar__plan{display:grid;grid-template-columns:1fr auto;gap:8px 14px;align-items:center;padding:14px;border:0;background:#F3EAD8;color:#702A2A}.travel-sidebar__plan strong{font-family:var(--nl-font-display,sans-serif);font-size:2rem;line-height:.8}.travel-sidebar__plan small{font-family:var(--nl-font-mono,monospace);font-weight:700;letter-spacing:.08em;text-transform:uppercase}.travel-sidebar__plan button{grid-column:2;grid-row:1 / span 2;min-height:40px;padding:0 12px;border:0;background:#702A2A;color:#F3EAD8;font:700 .65rem/1 var(--nl-font-mono,monospace);letter-spacing:.08em;text-transform:uppercase;cursor:pointer}.travel-sidebar__brand{margin-top:auto;padding:24px 26px max(26px,env(safe-area-inset-bottom));border-top:1px solid rgba(243,234,216,.4)}.travel-sidebar__brand img{display:block;width:min(100%,235px);height:auto}.travel-sidebar__brand p{margin:14px 0 0;font:600 .79rem/1.5 var(--nl-font-mono,monospace)}
@media(max-width:720px){.travel-hero-section{padding-top:0}.offer-carousel--final{min-height:680px;border-right:0;border-left:0;border-radius:0}.offer-carousel--final .offer-slide__copy{max-width:100%;padding:25px 26px 132px}.offer-carousel--final .offer-slide__shade{background:linear-gradient(90deg,rgba(31,21,18,.94),rgba(31,21,18,.62) 68%,rgba(31,21,18,.14))}.offer-powered{margin-bottom:20px}.offer-carousel--final h1,.offer-carousel--final h2,.offer-link--country{font-size:54px}.offer-carousel--final h2{font-size:54px}.offer-price-head{margin-top:28px;font-size:64px}.offer-secondary-head,.offer-second-line{font-size:38px}.offer-small,.offer-talk{margin-top:25px;font-size:12px}.hero-search{right:22px;bottom:22px;left:22px}.hero-search input{min-height:62px;padding:0 20px;border-radius:12px;font-size:12px}.offer-carousel--final .carousel-controls{right:24px;bottom:90px}.offer-carousel--final .carousel-controls button{min-width:42px;min-height:42px}.travel-trust p{padding:18px 16px;font-size:2rem}.travel-sidebar__list{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px;padding:0 22px}.travel-sidebar__brand{padding-right:22px;padding-left:22px}}
