/* Shopping layout. This sheet is shared by the home plan comparison. */
.plans-section { background: #f5f5f7; }
.plan-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.plan-card { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; padding: 36px; border: 0; border-radius: 24px; background: #fff; }
.plan-tag { margin-bottom: 12px; color: var(--muted); font-size: 13px; }
.plan-card h3 { font-size: 30px; margin: 0 0 24px; }
.plan-price { font-size: 14px; margin-bottom: 8px; }
.plan-price strong { font-size: 36px; font-weight: 600; letter-spacing: -.03em; white-space: nowrap; }
.plan-price-note { color: var(--muted); font-size: 13px; margin-bottom: 16px; }
.plan-card ul { align-self: stretch; padding: 0; margin: 16px 0 24px; list-style: none; }
.plan-card li { padding: 14px 0; border-bottom: 1px solid #e8e8ed; font-size: 15px; }
.plan-card li:first-child { border-top: 1px solid #e8e8ed; }
.plan-card li strong { font-weight: 500; }
.plan-condition { margin-bottom: 24px; color: #515154; font-size: 13px; line-height: 1.8; }
.plan-condition strong { font-weight: 600; }
.plan-card .button { margin-top: auto; }
.plan-card > p:not([class]) { color: #515154; font-size: 14px; }
.payment-note { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 12px; margin: 24px 0 0; padding-top: 20px; border-top: 1px solid var(--line); color: #515154; font-size: 13px; line-height: 1.8; }
.payment-note strong { font-weight: 600; }

/* Preorder entry: editorial heading plus a real product image. */
.preorder-official { padding: 56px 0; background: #f5f5f7; }
.preorder-hero-grid { display: grid; grid-template-columns: .9fr 1.1fr; align-items: center; gap: 56px; }
.preorder-heading h1 { margin-bottom: 20px; font-size: clamp(38px, 4.5vw, 64px); line-height: 1.12; letter-spacing: -.035em; }
.preorder-heading h1 em { display: block; margin-top: 14px; color: #86868b; font-size: .6em; font-weight: 500; line-height: 1.35; }
.preorder-heading > p:not(.launch-label) { color: var(--muted); max-width: 420px; font-size: 17px; }
.preorder-heading .form-note { font-size: 12px !important; margin-top: 20px; }
.preorder-hero-art { display: flex; justify-content: center; align-items: center; min-width: 0; margin: 0; height: 456px; overflow: hidden; background: transparent; }
.preorder-hero-art img { width: 100%; height: 100%; padding: 0; object-fit: cover; transform: scale(1.35); }

/* Selection keeps product context beside the native form. */
.order-section { background: #fff; }
.order-layout { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 48px; align-items: start; }
.order-intro { position: sticky; top: 96px; }
.order-intro h2 { font-size: 40px; }
.order-intro > p { max-width: 460px; color: var(--muted); font-size: 15px; }
.order-intro .steps-inline { margin: 24px 0; color: #515154; font-size: 13px; line-height: 1.8; }
.selection-art { margin: 32px 0 0; }
.selection-image { display: flex; align-items: center; justify-content: center; height: 340px; overflow: hidden; }
/* The official transparent PNG has top padding; this frames it without changing product pixels. */
.selection-art img { display: block; width: 100%; height: 140%; padding: 0; object-fit: contain; background: transparent; transform: translateY(-15%); }
.selection-art figcaption { font-size: 11px; color: var(--muted); margin-top: 12px; text-align: center; }
#preorderForm { padding: 0 0 0 20px; border: 0; border-radius: 0; }
.draft-tools { margin-bottom: 32px; padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.draft-tools p { margin-top: 0; }
.phone-item { padding: 0 0 32px !important; margin: 8px 0 28px !important; border: 0 !important; border-bottom: 1px solid var(--line) !important; background: #fff; }
.phone-item legend { font-size: 24px; margin-bottom: 24px; }
.phone-summary { padding: 20px; margin: 4px 0 0; border-radius: 14px; color: #515154; background: #f5f5f7; font-size: 13px; line-height: 1.9; }
.optional-fields { margin: 16px 0 32px; border-block: 1px solid var(--line); }
.optional-fields summary { padding: 20px 0; font-size: 15px; font-weight: 500; }
.optional-fields fieldset { padding-top: 16px; }
.order-review { border-radius: 16px; padding: 24px; background: #f5f5f7; }
.order-review dl { display: grid; grid-template-columns: auto 1fr; gap: 8px 20px; margin: 0; font-size: 14px; }
.order-review dt { color: #515154; }
.order-review dd { margin: 0; font-weight: 600; overflow-wrap: anywhere; }
.order-review p { margin-bottom: 0; }
.review-note { grid-column: 1/-1; padding-top: 16px; margin-top: 16px !important; border-top: 1px solid var(--line); font-size: 13px; font-weight: 400; color: #515154; }
.review-phone { margin-top: 20px; padding-top: 20px; border-top: 1px solid var(--line); }
.review-phone strong { font-size: 16px; font-weight: 600; }
.review-phone p { font-size: 14px; margin: 8px 0; }
.review-phone small { display: block; font-size: 12px; color: var(--muted); }
.review-phone a { display: inline-flex; min-height: 44px; align-items: center; color: var(--link); font-size: 13px; }
.preorder-page .line-handoff { grid-column: 2; }

/* Product facts are white and quiet; the photograph has its own black stage. */
.dark-section { color: var(--ink); background: #f5f5f7; }
.product-photo { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; padding: 40px; margin-bottom: 56px; background: transparent; color: var(--ink); }
.product-photo .selection-image { height: 340px; }
.product-photo img { display: block; width: 100%; height: 100%; object-fit: cover; transform: scale(1.35); }
.product-photo h3 { font-size: 36px; margin-bottom: 24px; }
.product-photo p { font-size: 15px; color: var(--muted); max-width: 380px; }
.product-photo a { color: var(--link); font-size: 14px; }
.launch-model-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
.launch-model { min-width: 0; scroll-margin-top: 100px; }
.launch-model h3 { font-size: 29px; }
.launch-model > p { color: var(--muted); font-size: 15px; }
.launch-model .model-size { margin-bottom: 14px; font-size: 13px; color: var(--muted); }
.spec-details { border-block: 1px solid var(--line); margin: 24px 0; }
.spec-details summary { padding: 16px 0; font-size: 14px; }
.spec-list { margin: 0 0 16px; }
.spec-list > div { display: grid; grid-template-columns: 66px 1fr; gap: 16px; padding: 14px 0; border-top: 1px solid var(--line); font-size: 13px; }
.spec-list dt { color: var(--muted); }
.spec-list dd { margin: 0; }
.table-wrap { max-width: 100%; overflow: auto; }
.price-table { margin: 24px 0; }
.price-table table { min-width: 0; width: 100%; border-collapse: collapse; color: var(--ink); background: transparent; }
.price-table caption { text-align: left; font-size: 14px; font-weight: 500; padding-bottom: 16px; }
.price-table th, .price-table td { padding: 16px 8px; text-align: left; white-space: nowrap; border-bottom: 1px solid var(--line); font-size: 12px; font-weight: 400; }
.price-table thead th { color: #515154; background: #e8e8ed; }
.price-table tbody th { font-weight: 600; color: var(--ink); background: #f5f5f7; }
.price-table td:nth-child(4) { color: #0066cc; font-weight: 500; }
.source-note { font-size: 12px; color: var(--muted); margin: 40px 0 0; }
.source-note a { color: var(--link); }

/* Gift photos keep their full composition; the glass protector retains its category icon. */
.gift-section { background: #fff; }
.bundle-title { font-size: 24px; margin: 44px 0 28px; }
.bundle-title small { display: block; margin-top: 12px; color: var(--muted); font-size: 13px; font-weight: 400; letter-spacing: 0; }
.bundle-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 28px; }
.bundle-grid article { min-width: 0; padding: 32px 24px; background: #f5f5f7; border-radius: 22px; }
.gift-icon { display: block; width: 88px; height: 88px; margin: 0 auto 32px; fill: none; stroke: #515154; stroke-width: 1; stroke-linecap: round; stroke-linejoin: round; }
.gift-label { display: block; margin-bottom: 12px; color: var(--muted); font-size: 12px; }
.bundle-grid h3 { font-size: 21px; margin-bottom: 16px; }
.bundle-grid p { font-size: 14px; color: #515154; }
.bundle-grid .gift-value { margin: 20px 0 0; color: var(--muted); font-size: 12px; }
.bonus-grid { grid-template-columns: 1.25fr 1fr; grid-template-rows: 1fr 1fr; gap: 24px; }
.bonus-grid .gemini-gift { grid-row: 1 / 3; display: flex; flex-direction: column; justify-content: center; padding: 40px; background: #eef3fa; }
.gemini-brand { display: flex; align-items: center; gap: 16px; margin: 16px 0 24px; }
.gemini-brand img { display: block; width: 72px; height: 72px; flex: 0 0 auto; object-fit: contain; }
.gemini-brand span { font-size: 24px; font-weight: 500; letter-spacing: -.035em; }
.gift-duration { margin: 12px 0 28px; color: #1d1d1f; font-size: clamp(80px, 11vw, 150px); font-weight: 600; letter-spacing: -.075em; line-height: 1; }
.gift-duration small { margin-left: 12px; color: #515154; font-size: 24px; font-weight: 400; letter-spacing: 0; }
.gemini-gift h3 { font-size: 28px; }
.bonus-grid article:not(.gemini-gift) { position: relative; padding: 28px 28px 28px 128px; }
.bonus-grid article:not(.gemini-gift) .gift-icon { position: absolute; width: 68px; height: 68px; top: 50%; left: 30px; margin: 0; transform: translateY(-50%); }
.gift-notes { margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--line); columns: 2; column-gap: 40px; }
.gift-notes p { break-inside: avoid; font-size: 12px; color: var(--muted); line-height: 1.8; }

.bundle-grid .gift-photo-card { padding: 24px; }
.gift-media { display: block; aspect-ratio: 4 / 3; margin: 0 0 24px; overflow: hidden; border-radius: 14px; background: #fff; }
.gift-media img { display: block; width: 100%; height: 100%; object-fit: contain; }
a.gift-media { cursor: zoom-in; }
a.gift-media:focus-visible { outline: 3px solid var(--link); outline-offset: 4px; }
.gift-media-icon { display: grid; place-items: center; background: #eeeef0; }
.gift-media-icon .gift-icon { position: static; width: 88px; height: 88px; margin: 0; }
.bonus-grid article.gift-photo-card { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); align-items: center; gap: 24px; }
.bonus-grid article.late-gift.gift-photo-card { padding: 24px; }
.bonus-grid .gift-media { aspect-ratio: 1; margin: 0; }
.bonus-grid .gift-media-voucher { background: #f2f3f4; }
.gift-copy { min-width: 0; }

/* The glass close-up needs room to show material and edge detail. */
.bundle-grid.basic-gifts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.basic-gifts article.glass-feature { grid-column: 1 / -1; display: grid; grid-template-columns: 1.45fr 1fr; align-items: center; overflow: hidden; padding: 0; background: #f4f6f8; }
.basic-gifts .glass-feature .gift-media { aspect-ratio: 3 / 2; margin: 0; border-radius: 0; }
.glass-feature-copy { min-width: 0; padding: 36px; }
.basic-gifts .glass-feature-copy h3 { font-size: clamp(28px, 3.4vw, 44px); line-height: 1.15; letter-spacing: -.035em; margin-bottom: 24px; }
.glass-feature-copy p { font-size: 16px; line-height: 1.8; }
.glass-feature-copy .gift-label { margin-bottom: 20px; }
.glass-visual-note { display: block; margin-top: 20px; font-size: 12px; color: var(--muted); }
.basic-gifts > article:not(.glass-feature) .gift-media { aspect-ratio: 2 / 1; }

/* Fulfillment and service appointments. */
.timeline-section { background: #f5f5f7; }
.timeline { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 32px; }
.timeline article { border-top: 1px solid var(--line); padding-top: 24px; }
.timeline span { color: var(--muted); font-size: 12px; }
.timeline h3 { font-size: 23px; margin-top: 28px; }
.timeline p { color: #515154; font-size: 14px; }
.timeline-section .action-row { margin-top: 24px; }
.aftercare-section { background: #fff; }
.aftercare-layout { display: grid; grid-template-columns: .9fr 1.1fr; gap: 56px; align-items: start; }
.aftercare-layout > div > p { color: var(--muted); font-size: 15px; }
#appointmentForm { background: #f5f5f7; }
.duo-section { background: #fafafc; }
.duo-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 56px; align-items: center; }
.duo-grid > img { display: block; width: 100%; }
.duo-grid h2 { margin-top: 16px; }
.duo-grid p { font-size: 15px; color: var(--muted); }

@media(max-width:1024px) {
  .bonus-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: auto; }
  .bonus-grid .gemini-gift { grid-row: auto; grid-column: 1 / -1; }
  .bonus-grid article.gift-photo-card { display: block; }
  .bonus-grid .gift-media { aspect-ratio: 4 / 3; margin-bottom: 24px; }
  .preorder-hero-grid { gap: 32px; }
  .preorder-hero-art { height: 400px; }
  .plan-card { padding: 28px; }
  .order-layout { gap: 32px; grid-template-columns: .85fr 1.15fr; }
  .order-intro h2 { font-size: 32px; }
  .selection-art .selection-image { height: 340px; }
  .order-form .form-grid { grid-template-columns: 1fr; }
  .product-photo { gap: 32px; padding: 32px; }
  .product-photo h3 { font-size: 30px; }
  .launch-model-grid { gap: 28px; }
  .price-table th, .price-table td { padding-inline: 4px; font-size: 11px; }
  .bundle-grid { gap: 16px; }
  .bundle-grid article { padding: 24px; }
  .bonus-grid article:not(.gemini-gift) { padding: 24px 24px 24px 100px; }
  .bonus-grid article:not(.gemini-gift) .gift-icon { width: 56px; height: 56px; left: 24px; }
  .timeline { grid-template-columns: 1fr 1fr; }
  .aftercare-layout, .duo-grid { gap: 32px; }
}
@media(max-width:767px) {
  .bundle-grid.basic-gifts { grid-template-columns: minmax(0, 1fr); }
  .basic-gifts article.glass-feature { display: block; }
  .glass-feature-copy { padding: 28px 24px; }
  .basic-gifts .glass-feature-copy h3 { font-size: 30px; margin-bottom: 20px; }
  .glass-feature-copy h3 br { display: none; }
  .basic-gifts > article:not(.glass-feature) .gift-media { aspect-ratio: 4 / 3; }
  .preorder-official { padding: 40px 0; }
  .preorder-hero-grid { grid-template-columns: 1fr; gap: 28px; }
  .preorder-heading h1 { font-size: clamp(36px, 10vw, 46px); }
  .preorder-heading h1 em { font-size: 26px; margin-top: 10px; }
  .preorder-heading > p:not(.launch-label) { font-size: 16px; }
  .preorder-heading .action-row { gap: 12px 16px; }
  .preorder-heading .button { padding-inline: 20px; font-size: 14px; }
  .preorder-hero-art { height: 340px; }
  .plan-grid { grid-template-columns: 1fr; gap: 20px; }
  .plan-card { padding: 28px 24px; }
  .plan-card h3 { font-size: 28px; margin-bottom: 20px; }
  .plan-price strong { font-size: 34px; }
  .plan-card .button { width: 100%; }
  .order-layout, .aftercare-layout, .duo-grid { grid-template-columns: 1fr; gap: 32px; }
  .order-intro { position: static; }
  .order-intro h2 { font-size: 32px; }
  .selection-art { display: none; }
  #preorderForm { padding: 0; }
  .preorder-page .line-handoff { grid-column: 1; }
  .order-review { padding: 20px; }
  .order-review dl { grid-template-columns: 1fr; gap: 4px; }
  .order-review dt:not(:first-child) { margin-top: 12px; }
  .product-photo { grid-template-columns: 1fr; padding: 28px 24px; gap: 28px; margin-bottom: 40px; }
  .product-photo .selection-image { height: 280px; }
  .product-photo h3 { font-size: 30px; }
  .launch-model-grid { grid-template-columns: 1fr; gap: 48px; }
  .price-table th, .price-table td { font-size: 12px; padding: 14px 6px; }
  .bundle-title { margin-top: 36px; font-size: 23px; line-height: 1.4; }
  .bundle-grid, .bonus-grid { grid-template-columns: 1fr; grid-template-rows: auto; gap: 16px; }
  .bundle-grid article { position: relative; padding: 28px 24px 28px 100px; }
  .gift-icon { position: absolute; top: 30px; left: 24px; width: 52px; height: 52px; margin: 0; }
  .bundle-grid h3 { font-size: 20px; }
  .bonus-grid .gemini-gift { grid-row: auto; padding: 32px; }
  .gemini-brand { gap: 12px; }
  .gemini-brand img { width: 48px; height: 48px; }
  .gemini-brand span { font-size: 20px; }
  .gift-duration { font-size: 112px; margin: 12px 0 28px; }
  .gemini-gift h3 { font-size: 26px; }
  .gift-notes { columns: 1; }
  .timeline { gap: 20px; }
  .timeline h3 { font-size: 20px; }
  .timeline p { font-size: 13px; }
  .duo-grid > img { order: 2; }
}
@media(max-width:420px) {
  .price-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .price-table tbody, .price-table tr, .price-table th, .price-table td { display: block; }
  .price-table tr { padding: 12px 0; border-top: 1px solid var(--line); }
  .price-table tbody th { border: 0; padding: 4px 0 8px; }
  .price-table td { display: flex; justify-content: space-between; gap: 8px; padding: 5px 0; border: 0; font-size: 14px; }
  .price-table td::before { content: attr(data-label); color: var(--muted); }
  .timeline { grid-template-columns: 1fr; gap: 16px; }
  .timeline h3 { margin-top: 16px; }
}
@media print {
  .plan-grid, .bundle-grid { display: block; }
  .plan-card, .bundle-grid article { break-inside: avoid; margin-bottom: 16px; }
  .order-intro { position: static; }
  .selection-art { display: none; }
}
/* Checkout keeps the same restrained light purchase surface. */
.checkout-payment{grid-column:2;scroll-margin-top:96px}
.checkout-payment h3{font-size:1.75rem;letter-spacing:-.03em;margin:0 0 1.5rem;scroll-margin-top:96px}
.checkout-amount{font-size:clamp(2rem,5vw,3rem);font-weight:650;letter-spacing:-.04em;margin:.25rem 0 1.5rem}
.checkout-payment .order-review{background:transparent;padding:0}
.checkout-payment .text-button{margin-top:1rem}
.checkout-contact{margin-top:1.5rem}
.payment-unavailable{padding:1rem;background:#fff7e8;border:1px solid #ebd7b2;border-radius:12px;margin:1.5rem 0;color:#624417}
.payment-unavailable p{margin:.5rem 0 0}
.bank-details{display:grid;grid-template-columns:4rem 1fr;gap:.75rem;margin:1.5rem 0}
.bank-details dd{margin:0;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
#shippingFields{padding:1.5rem 0 0;border:0;margin:1rem 0 0;border-top:1px solid var(--line)}
#shippingFields legend{padding-top:1rem}
#shippingFields .text-button{margin-bottom:1rem}
.phone-summary:empty{display:none}
@media(max-width:767px){.checkout-payment{grid-column:auto}}
