/*
Theme Name: GlobalPlan Preview
Description: Preview-only GlobalPlan storefront theme.
Author: GlobalPlan
Template: hello-elementor
Version: 0.5.3
Text Domain: globalplan-preview
*/

:root {
  --gp-ink: #101b2b;
  --gp-navy: #0c2844;
  --gp-green: #19a96b;
  --gp-mint: #dff7ed;
  --gp-cream: #f6f3ec;
  --gp-line: #dce3e8;
  --gp-muted: #667381;
}

/* Account and device dashboards — live WordPress data in the preview UI. */
body.woocommerce-account.logged-in,
body.page-id-130 { background: #f3f7f5; }
body.woocommerce-account.logged-in .page-header,
body.woocommerce-account.logged-in #content.site-main > h1,
body.woocommerce-account.logged-in #content.site-main > .entry-title { display: none !important; }
body.woocommerce-account.logged-in #content.site-main,
body.woocommerce-account.logged-in main#content { width: 100%; max-width: none !important; margin: 0 !important; padding: 0 !important; }
body.woocommerce-account.logged-in .woocommerce { display: block; width: 100%; }
.woocommerce-account.logged-in .joinchat,
.woocommerce-account.logged-in .ht-ctc-chat,
.woocommerce-account.logged-in .e-contact-buttons,
body.page-id-130 .joinchat,
body.page-id-130 .ht-ctc-chat,
body.page-id-130 .e-contact-buttons { display: none !important; }

.gp-account-page { width: min(1180px,calc(100% - 48px)); margin: 0 auto; padding: 64px 0 96px; }
.gp-account-page-head { max-width: 820px; }
.gp-account-page-head h1 { margin: 8px 0 12px; font-size: clamp(52px,7vw,78px); line-height: .98; letter-spacing: -.055em; }
.gp-account-page-head > p:last-child { margin: 0; color: var(--gp-muted); font-size: 20px; line-height: 1.5; }
.gp-account-shell { margin-top: 34px; display: grid; grid-template-columns: 330px minmax(0,1fr); gap: 26px; align-items: start; }
.gp-account-menu { overflow: hidden; border: 1px solid var(--gp-line); border-radius: 20px; background: #fff; box-shadow: 0 18px 50px rgba(12,40,68,.05); }
.gp-account-identity { min-height: 92px; padding: 22px; display: grid; grid-template-columns: 54px minmax(0,1fr) auto; align-items: center; gap: 14px; border-bottom: 1px solid var(--gp-line); }
.gp-account-identity > span { width: 54px; height: 54px; display: grid; place-items: center; border-radius: 50%; background: var(--gp-mint); color: #08754b; font-size: 18px; font-weight: 900; }
.gp-account-identity > div { min-width: 0; display: grid; gap: 4px; }
.gp-account-identity strong { font-size: 17px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gp-account-identity small { overflow: hidden; color: var(--gp-muted); text-overflow: ellipsis; white-space: nowrap; }
.gp-account-identity > a { padding: 9px 11px; border: 1px solid #f0cccc; border-radius: 9px; color: #c73535; font-size: 11px; font-weight: 800; white-space: nowrap; text-decoration: none !important; }
.gp-account-menu nav { padding: 12px; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.gp-account-menu nav > a { min-height: 54px; padding: 13px 14px; display: flex; align-items: center; justify-content: space-between; gap: 10px; border: 1px solid transparent; border-radius: 11px; color: #40505a; font-size: 13px; font-weight: 800; text-decoration: none !important; }
.gp-account-menu nav > a:hover { background: #f4f8f6; }
.gp-account-menu nav > a.is-active { border-color: #bce6d3; background: #e8f7f0; color: #08754b; }
.gp-account-menu nav > a em { min-width: 25px; padding: 4px 7px; border-radius: 99px; background: #e8efec; color: #475761; font-style: normal; font-size: 10px; text-align: center; }
.gp-account-menu .gp-account-devices-link { grid-column: 1/-1; border-color: #cceadd; background: #f0faf6; color: #08754b; }
.gp-account-content { min-width: 0; }
.gp-account-form-heading { margin-bottom: 24px; }
.gp-account-form-heading h2 { margin: 0 0 8px; font-size: 28px; line-height: 1.2; }
.gp-account-form-heading p { margin: 0; color: var(--gp-muted); line-height: 1.5; }
.gp-account-section-form fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.gp-account-section-form #gp-password-hint { display: block; margin-top: 7px; color: var(--gp-muted); }
.gp-account-dashboard > header h2 { margin: 7px 0 8px; font-size: 42px; line-height: 1.05; letter-spacing: -.04em; }
.gp-account-dashboard > header > p:last-child { margin: 0; color: var(--gp-muted); font-size: 17px; }
.gp-account-stats { margin-top: 24px; grid-template-columns: 1fr 1fr; gap: 14px; }
.gp-account-stats > a { min-height: 190px; padding: 24px; border-radius: 18px; }
.gp-account-stats > a:nth-child(3) { grid-column: 1/-1; min-height: 128px; display: grid; grid-template-columns: minmax(0,1fr) auto; grid-template-rows: auto auto; align-items: center; }
.gp-account-stats > a:nth-child(3) span,
.gp-account-stats > a:nth-child(3) strong { grid-column: 1; }
.gp-account-stats > a:nth-child(3) b { grid-column: 2; grid-row: 1/3; align-self: center; }
.gp-account-stats span { display: flex; align-items: center; gap: 10px; }
.gp-account-stats strong { margin: 25px 0 auto; }
.gp-stat-icon { width: 34px; height: 34px; position: relative; display: inline-grid; place-items: center; border-radius: 9px; background: #e4f6ee; }
.gp-stat-icon:before { content: ''; width: 15px; height: 19px; border: 2px solid #159d66; border-radius: 4px; }
.gp-stat-device:after { content: ''; width: 12px; height: 17px; position: absolute; transform: translate(5px,-3px); border: 2px solid #159d66; border-radius: 4px; background: #f8fffc; }
.gp-stat-order:before { border-radius: 2px; box-shadow: 5px 0 0 -3px #e4f6ee, 7px 0 0 -4px #159d66; }
.gp-stat-security:before { border-radius: 9px 9px 12px 12px; clip-path: polygon(50% 0,100% 18%,88% 75%,50% 100%,12% 75%,0 18%); }
.gp-account-recharge { margin-top: 14px; padding: 22px 24px; border-radius: 18px; background: var(--gp-navy); color: #fff; }
.gp-account-recharge h3 { color: #fff; }
.gp-account-recharge p { color: #c4d3de; }
.gp-account-content > form,
.gp-account-content > .woocommerce-Addresses,
.gp-account-content > .woocommerce-order-details,
.gp-account-content > .woocommerce-customer-details,
.gp-account-content > table,
.gp-account-content > p:not(.woocommerce-info) { padding: 28px; border: 1px solid var(--gp-line); border-radius: 18px; background: #fff; }

/* My Orders mirrors the interactive preview while retaining live WooCommerce actions. */
.gp-account-section-head { margin-bottom: 24px; }
.gp-account-section-head h2 { margin: 7px 0 8px; color: var(--gp-ink); font-size: 42px; line-height: 1.05; letter-spacing: -.04em; }
.gp-account-section-head > p:last-child { margin: 0; color: var(--gp-muted); font-size: 17px; line-height: 1.5; }
.gp-order-list { display: grid; gap: 14px; }
.gp-order-card { overflow: hidden; border: 1px solid var(--gp-line); border-radius: 18px; background: #fff; box-shadow: 0 14px 42px rgba(12,40,68,.045); }
.gp-order-card-main { padding: 24px 26px; display: grid; grid-template-columns: minmax(130px,.9fr) minmax(220px,1.55fr) minmax(150px,1fr) auto; gap: 22px; align-items: center; }
.gp-order-card-main > div:not(.gp-order-total) { min-width: 0; display: grid; gap: 6px; }
.gp-order-number a { color: var(--gp-ink); font-size: 17px; font-weight: 900; text-decoration: none !important; }
.gp-order-card small,
.gp-order-card time { color: var(--gp-muted); font-size: 12px; line-height: 1.4; }
.gp-order-plan strong { overflow-wrap: anywhere; font-size: 15px; line-height: 1.35; }
.gp-order-state span { justify-self: start; padding: 6px 10px; border-radius: 999px; background: #e0f6eb; color: #08754b; font-size: 11px; font-weight: 800; }
.gp-order-status-failed .gp-order-state span,
.gp-order-status-cancelled .gp-order-state span { background: #fff0f0; color: #c73535; }
.gp-order-status-pending .gp-order-state span,
.gp-order-status-on-hold .gp-order-state span { background: #fff5d8; color: #8b6300; }
.gp-order-total { justify-self: end; color: var(--gp-ink); font-size: 21px; font-weight: 900; white-space: nowrap; }
.gp-order-actions { padding: 13px 26px; display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 8px; border-top: 1px solid var(--gp-line); background: #f8fbfa; }
.gp-order-action { min-height: 37px; padding: 9px 14px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid #c7d7d1; border-radius: 9px; background: #fff; color: #08754b; font-size: 12px; font-weight: 800; text-decoration: none !important; }
.gp-order-action-pay { border-color: var(--gp-green); background: var(--gp-green); color: #fff; }
.gp-order-action-cancel { border-color: #efcccc; color: #c73535; }
.gp-order-remove-form { margin: 0; }
.gp-order-action-remove { border-color: #efcccc; background: #fff; color: #c73535; cursor: pointer; }
.gp-order-action-remove:disabled { opacity: .5; cursor: wait; }
.gp-order-card { transition: opacity .18s ease, transform .18s ease; }
.gp-order-card.is-removing { opacity: 0; transform: translateY(-6px); pointer-events: none; }
.gp-order-pagination { margin-top: 18px; display: flex; justify-content: space-between; gap: 12px; }
.gp-order-pagination a { padding: 11px 17px; border: 1px solid var(--gp-line); border-radius: 9px; background: #fff; color: #08754b; font-weight: 800; text-decoration: none !important; }
.gp-orders-empty { padding: 34px; border: 1px solid var(--gp-line); border-radius: 18px; background: #fff; }
.gp-orders-empty h3 { margin: 0 0 8px; font-size: 25px; }
.gp-orders-empty p { margin: 0 0 20px; color: var(--gp-muted); }

body.page-id-130 #content.site-main { padding-top: 60px; }
.gp-live-data-dashboard { width: 100%; }
.gp-device-toolbar { margin-bottom: 24px; padding: 18px 20px; display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 16px; align-items: end; border: 1px solid var(--gp-line); border-radius: 16px; background: #fff; }
.gp-device-toolbar label { display: grid; gap: 8px; }
.gp-device-toolbar label > span { color: #687781; font-size: 10px; font-weight: 900; letter-spacing: .14em; }
.gp-device-toolbar select { width: 100%; min-height: 52px; padding: 10px 42px 10px 14px; border: 1px solid #bfd0ca; border-radius: 10px; background: #fff; color: var(--gp-ink); font: inherit; font-weight: 800; }
.gp-device-toolbar-action,
.gp-manage-device { min-height: 52px; padding: 11px 20px; border: 1px dashed #78bea0; border-radius: 10px; background: #f4fbf8; color: #08754b; font-weight: 850; cursor: pointer; }
.gp-manage-device { border-style: solid; border-color: #bfd0ca; background: #fff; }
.gp-device-card { box-shadow: 0 18px 52px rgba(12,40,68,.07); }
.gp-metric-label { display: flex; align-items: center; gap: 11px; }
.gp-data-icon,
.gp-battery-icon { width: 42px; height: 42px; display: flex; align-items: end; justify-content: center; gap: 3px; padding: 10px; border-radius: 11px; background: rgba(75,211,160,.12); }
.gp-data-icon b { width: 4px; border-radius: 4px; background: #4bd3a0; }
.gp-data-icon b:nth-child(1) { height: 9px; }
.gp-data-icon b:nth-child(2) { height: 15px; }
.gp-data-icon b:nth-child(3) { height: 22px; }
.gp-battery-icon { align-items: center; border: 2px solid #19a96b; border-radius: 8px; width: 38px; height: 24px; padding: 3px; position: relative; }
.gp-battery-icon:after { content: ''; position: absolute; right: -6px; width: 4px; height: 10px; border-radius: 0 2px 2px 0; background: #19a96b; }
.gp-battery-icon b { width: 72%; height: 100%; border-radius: 3px; background: #19a96b; }
.gp-device-status-head { margin-bottom: 18px; display: flex; justify-content: space-between; align-items: end; gap: 20px; }
.gp-device-status-head h3 { margin: 5px 0 0; }
.gp-device-status-head small { color: var(--gp-muted); }
.gp-plan-panels article > p { color: var(--gp-muted); line-height: 1.55; }
.gp-no-device { padding: 42px; border: 1px solid var(--gp-line); border-radius: 18px; background: #fff; text-align: center; }
.gp-no-device h2 { margin: 0 0 9px; font-size: 34px; }
.gp-no-device p { max-width: 560px; margin: 0 auto 22px; color: var(--gp-muted); }
.gp-device-management[hidden] { display: none !important; }
.gp-device-management { margin-top: 24px; padding: 24px; border: 1px solid var(--gp-line); border-radius: 20px; background: #fff; box-shadow: 0 18px 52px rgba(12,40,68,.07); }
.gp-device-management > header { margin-bottom: 18px; display: flex; justify-content: space-between; align-items: center; }
.gp-device-management > header h2 { margin: 5px 0 0; font-size: 30px; }
.gp-device-management > header button { width: 42px; height: 42px; border: 1px solid var(--gp-line); border-radius: 50%; background: #fff; color: var(--gp-ink); font-size: 28px; cursor: pointer; }
.gp-device-management .tuge-device-container { display: block !important; padding: 0 !important; }
.gp-device-management .tuge-sn-list { display: block !important; margin: 0 !important; }
.gp-device-management .tuge-sn-item,
.gp-device-management .tuge-add-sn-form { box-shadow: none !important; }
.gp-device-management .tuge-sn-card-header { background: var(--gp-navy) !important; }
.gp-device-management .tuge-add-sn-form .tuge-sn-card-header { background: #e9f6f1 !important; }

@media (max-width: 900px) {
  .gp-account-page { width: min(100% - 36px,1180px); padding: 48px 0 76px; }
  .gp-account-page-head h1 { font-size: 58px; }
  .gp-account-page-head > p:last-child { font-size: 17px; }
  .gp-account-shell { grid-template-columns: 1fr; gap: 28px; margin-top: 28px; }
  .gp-account-menu { overflow: visible; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
  .gp-account-identity { margin-bottom: 10px; border: 1px solid var(--gp-line); border-radius: 16px; background: #fff; box-shadow: 0 14px 42px rgba(12,40,68,.035); }
  .gp-account-menu nav { padding: 0; grid-template-columns: 1fr 1fr; }
  .gp-account-menu nav > a { border-color: var(--gp-line); background: #fff; }
  .gp-account-content { padding: 0; border: 0; background: transparent; }
  .gp-order-card-main { grid-template-columns: minmax(0,1fr) auto; gap: 14px 18px; }
  .gp-order-plan { grid-column: 1/-1; grid-row: 2; }
  .gp-order-state { grid-column: 1; grid-row: 3; }
  .gp-order-total { grid-column: 2; grid-row: 1; }
  .gp-device-status > div:last-child { grid-template-columns: 1fr 1fr 1fr; }
}

@media (max-width: 560px) {
  .gp-account-page { width: min(100% - 28px,1180px); padding: 34px 0 62px; }
  .gp-account-page-head h1 { font-size: 46px; }
  .gp-account-page-head > p:last-child { font-size: 15px; }
  .gp-account-shell { margin-top: 22px; gap: 25px; }
  .gp-account-identity { padding: 14px; grid-template-columns: 44px minmax(0,1fr) auto; gap: 10px; }
  .gp-account-identity > span { width: 44px; height: 44px; font-size: 15px; }
  .gp-account-identity strong { font-size: 14px; }
  .gp-account-identity small { font-size: 10px; }
  .gp-account-identity > a { padding: 7px 9px; font-size: 10px; }
  .gp-account-menu nav { padding: 10px; gap: 7px; }
  .gp-account-menu nav > a { min-height: 49px; padding: 10px 11px; font-size: 11px; }
  .gp-account-section-head { margin-bottom: 18px; }
  .gp-account-section-head h2 { font-size: 36px; }
  .gp-account-section-head > p:last-child { font-size: 14px; }
  .gp-order-list { gap: 11px; }
  .gp-order-card-main { padding: 18px; gap: 11px 14px; }
  .gp-order-number a { font-size: 15px; }
  .gp-order-plan strong { font-size: 14px; }
  .gp-order-total { font-size: 18px; }
  .gp-order-state span { padding: 5px 8px; font-size: 10px; }
  .gp-order-actions { padding: 11px 18px; justify-content: stretch; }
  .gp-order-action { flex: 1 1 auto; }
  .gp-account-dashboard > header h2 { font-size: 36px; }
  .gp-account-dashboard > header > p:last-child { font-size: 14px; }
  .gp-account-stats { margin-top: 18px; gap: 10px; }
  .gp-account-stats > a { min-height: 150px; padding: 18px; }
  .gp-account-stats > a:nth-child(3) { min-height: 104px; }
  .gp-account-stats span { font-size: 12px; }
  .gp-account-stats strong { font-size: 32px; }
  .gp-account-stats b { font-size: 11px; }
  .gp-account-recharge { align-items: stretch; }
  .gp-account-recharge .gp-button { width: 100%; text-align: center; }
  body.page-id-130 #content.site-main { width: calc(100% - 28px); padding-top: 38px; }
  .gp-data-heading h1 { font-size: 48px; }
  .gp-data-heading > div > p:last-child { font-size: 15px; }
  .gp-device-toolbar { padding: 14px; grid-template-columns: minmax(0,1fr) auto; gap: 10px; }
  .gp-device-toolbar-action { width: 48px; overflow: hidden; padding: 0; font-size: 0; }
  .gp-device-toolbar-action:before { content: '+'; font-size: 25px; }
  .gp-device-card { padding: 18px; }
  .gp-device-title { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: start; gap: 12px; }
  .gp-device-title h2 { font-size: 28px; }
  .gp-device-title p { font-size: 12px; overflow-wrap: anywhere; }
  .gp-manage-device { min-height: 42px; padding: 8px 10px; font-size: 11px; }
  .gp-device-meters { grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 20px; }
  .gp-device-meters article { min-height: 190px; padding: 17px; }
  .gp-device-meters article > strong { font-size: 30px; }
  .gp-device-meters article > small { font-size: 10px; line-height: 1.4; }
  .gp-metric-label { gap: 7px; font-size: 11px; }
  .gp-data-icon { width: 34px; height: 34px; padding: 8px; }
  .gp-battery-icon { width: 32px; height: 20px; }
  .gp-device-status { padding: 20px; }
  .gp-device-status-head { align-items: start; flex-direction: column; gap: 4px; }
  .gp-device-status > div:last-child { grid-template-columns: 1fr; }
  .gp-device-management { padding: 16px; }
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--gp-ink); background: #fff; font-family: Inter, Arial, sans-serif; }
a { color: inherit; text-decoration: none; }
.gp-announcement { background: #0c1116; color: #fff; padding: 10px 20px; text-align: center; font-size: 14px; letter-spacing: .04em; }
.gp-header { min-height: 84px; padding: 0 max(4vw, 28px); display: grid; grid-template-columns: 180px 1fr auto; align-items: center; gap: 28px; border-bottom: 1px solid rgba(15,34,52,.1); background: rgba(255,255,255,.98); position: relative; z-index: 40; }
.gp-brand { display: inline-flex; align-items: center; width: fit-content; line-height: 0; }
.gp-brand-logo { display: block; width: 145px; max-width: 100%; height: auto; }
.gp-nav { display: flex; justify-content: center; gap: 34px; font-size: 14px; font-weight: 700; }
.gp-nav a:hover, .gp-header-actions a:hover { color: var(--gp-green); }
.gp-header-actions { display: flex; align-items: center; gap: 18px; font-size: 14px; font-weight: 700; white-space: nowrap; }
.gp-pill { padding: 11px 17px; border: 1px solid var(--gp-ink); border-radius: 999px; }
.gp-menu { display: none; width: 42px; height: 42px; padding: 0; border: 1px solid #d9e0e3; border-radius: 10px; background: #fff; color: var(--gp-ink); font-size: 25px; line-height: 1; cursor: pointer; }
.gp-mobile-only { display: none; }

/* Keep the Europe quick entry readable at medium desktop widths. */
@media (min-width: 901px) {
  .gp-nav > a { white-space: nowrap; }
}
@media (min-width: 901px) and (max-width: 1200px) {
  .gp-header { padding-left: 24px; padding-right: 24px; grid-template-columns: 160px minmax(0,1fr) auto; gap: 16px; }
  .gp-header .gp-brand-logo { width: 145px; }
  .gp-nav { gap: 16px; font-size: 13px; }
  .gp-header-actions { gap: 12px; font-size: 13px; }
}

.gp-hero { min-height: 650px; position: relative; overflow: hidden; display: flex; align-items: center; padding: 80px max(7vw,44px); color: #fff; background: #03111d; }
.gp-hero-scene { position: absolute; inset: 0; background: url('assets/images/home-hero-integrated-v4.webp') center/cover no-repeat; }
.gp-hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg,rgba(3,17,29,.97) 0%,rgba(3,17,29,.89) 34%,rgba(3,17,29,.46) 60%,rgba(3,17,29,.08) 100%); }
.gp-hero-content { position: relative; z-index: 2; max-width: 630px; }
.gp-kicker { margin: 0 0 16px; font-size: 12px; font-weight: 850; letter-spacing: .18em; color: #7be7b8; }
.gp-kicker-dark { color: var(--gp-green); }
.gp-hero h1 { margin: 0; font-size: clamp(48px,6vw,86px); line-height: .95; letter-spacing: -.055em; color: #fff; }
.gp-hero-text { max-width: 590px; margin: 28px 0; font-size: 19px; line-height: 1.55; color: #e7edf1; }
.gp-buttons { display: flex; gap: 12px; flex-wrap: wrap; }
.gp-button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 14px 22px; border-radius: 8px; font-weight: 800; font-size: 14px; }
.gp-button-primary { background: var(--gp-green); color: #fff; }
.gp-button-secondary { border: 1px solid rgba(255,255,255,.55); color: #fff; backdrop-filter: blur(5px); }
.gp-button-light { background: #fff; color: var(--gp-navy); min-width: 180px; }
.gp-trust { display: flex; gap: 26px; flex-wrap: wrap; margin-top: 30px; font-size: 13px; color: #dfe9e6; }

.gp-section { padding: 110px max(7vw,44px); }
.gp-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 45px; }
.gp-section h2, .gp-support h2 { margin: 0; font-size: clamp(35px,4.4vw,62px); line-height: 1.03; letter-spacing: -.045em; color: var(--gp-ink); }
.gp-section-heading h2 { max-width: 680px; }
.gp-section-heading p { max-width: 510px; margin: 0; color: var(--gp-muted); line-height: 1.6; }
.gp-categories { display: grid; grid-template-columns: 1.25fr 1fr 1fr; gap: 18px; }
/* Homepage coverage shortcuts; keep catalog and checkout layouts unchanged. */
#plans .gp-home-categories { grid-template-columns: repeat(4, minmax(0, 1fr)); }
#plans .gp-home-categories .gp-category { min-width: 0; min-height: 360px; padding: 24px; }
#plans .gp-home-categories h3 { font-size: clamp(24px, 2.15vw, 32px); line-height: 1.12; }
#plans .gp-home-categories p:not(.gp-card-kicker) { min-height: 72px; font-size: 15px; line-height: 1.6; }
#plans .gp-home-categories a { display: flex; align-items: center; min-height: 44px; margin-top: 12px; font-size: 15px; }
#plans .gp-home-categories a:focus-visible { outline: 2px solid #adf2d4; outline-offset: 5px; border-radius: 3px; }
@media (min-width: 601px) and (max-width: 1179px) {
  #plans .gp-home-categories { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #plans .gp-home-categories .gp-category { min-height: 300px; }
  #plans .gp-home-categories h3 { font-size: 30px; }
  #plans .gp-home-categories p:not(.gp-card-kicker) { min-height: 48px; }
}
@media (max-width: 600px) {
  #plans .gp-home-categories { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  #plans .gp-home-categories .gp-category { min-height: 230px; padding: 22px; }
  #plans .gp-home-categories h3 { margin: 6px 0 9px; font-size: 28px; }
  #plans .gp-home-categories p:not(.gp-card-kicker) { min-height: 0; max-width: 340px; }
  #plans .gp-home-categories a { margin-top: 6px; }
  #plans .gp-category-europe .gp-category-image { object-position: center 28%; }
}
.gp-category { min-height: 380px; padding: 34px; border-radius: 18px; display: flex; flex-direction: column; justify-content: flex-end; color: #fff; overflow: hidden; position: relative; background: #0b2942; }
.gp-category-image { position: absolute; z-index: 0; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.gp-category-shade { position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg,rgba(3,16,28,.02) 20%,rgba(3,16,28,.28) 53%,rgba(3,16,28,.96) 100%); }
.gp-category > :not(.gp-category-image):not(.gp-category-shade) { position: relative; z-index: 2; }
.gp-card-kicker { margin: 0; font-size: 11px; letter-spacing: .16em; font-weight: 850; color: #adf2d4; }
.gp-category h3 { margin: 8px 0 12px; font-size: 35px; letter-spacing: -.04em; color: #fff; }
.gp-category p:not(.gp-card-kicker) { margin: 0; color: #e5edee; line-height: 1.5; max-width: 380px; }
.gp-category a { margin-top: 18px; font-weight: 800; }

.gp-how { background: var(--gp-cream); display: grid; grid-template-columns: 1fr 1.15fr; gap: 80px; align-items: center; }
.gp-how > div > p:last-child { color: #68727a; max-width: 450px; line-height: 1.6; }
.gp-how ol { list-style: none; margin: 0; padding: 0; }
.gp-how li { display: flex; gap: 25px; padding: 26px 0; border-bottom: 1px solid #d8d3c8; }
.gp-how li b { color: var(--gp-green); font-size: 13px; }
.gp-how li span { display: flex; flex-direction: column; gap: 7px; color: #707982; line-height: 1.5; }
.gp-how li strong { color: var(--gp-ink); font-size: 18px; }
.gp-support { padding: 75px max(7vw,44px); background: var(--gp-navy); color: #fff; display: flex; align-items: center; justify-content: space-between; gap: 50px; }
.gp-support h2 { color: #fff; }
.gp-support-copy { max-width: 620px; margin: 18px 0 0; color: #cbd7df; line-height: 1.6; }
.gp-support-actions { display: flex; flex-direction: column; align-items: center; gap: 16px; }
.gp-text-link { font-size: 13px; color: #cbd7df; }

.gp-footer { padding: 55px max(7vw,44px) 28px; display: grid; grid-template-columns: 1fr 1fr auto; gap: 20px; align-items: center; border-top: 1px solid var(--gp-line); }
.gp-footer .gp-brand { grid-row: span 2; }
.gp-footer .gp-brand-logo { width: 145px; }
.gp-footer p, .gp-footer small { color: #71808d; margin: 0; }
.gp-footer-links { display: flex; gap: 22px; font-size: 13px; }
.gp-footer small { grid-column: 2/4; font-size: 11px; }
.gp-main { min-height: 55vh; }

/* Keep WooCommerce and Elementor content comfortably aligned below the new header. */
body:not(.home) .site-main, body:not(.home) main#content { max-width: 1320px; margin: 0 auto; padding: 46px max(4vw,22px) 80px; }

/* Product catalogs */
.tax-product_cat .gp-main { background: #f7f9f8; }
.tax-product_cat .site-main { max-width: none !important; padding: 0 0 90px !important; }
.tax-product_cat .site-main > .woocommerce-breadcrumb,
.tax-product_cat .woocommerce-products-header { display: none; }
.gp-catalog-hero { min-height: 390px; padding: 64px max(7vw,44px); display: flex; align-items: center; justify-content: space-between; gap: 70px; background: linear-gradient(115deg,#0a2945,#0f6b66); color: #fff; }
.gp-catalog-hero > div { max-width: 720px; }
.gp-catalog-hero h1 { margin: 0; color: #fff; font-size: clamp(46px,5.5vw,76px); line-height: 1; letter-spacing: -.05em; }
.gp-catalog-hero > div > p:last-child { max-width: 650px; margin: 20px 0 0; color: #dcebe8; line-height: 1.6; }
.gp-catalog-hero figure { flex: 0 0 330px; height: 250px; margin: 0 4vw 0 0; overflow: hidden; position: relative; border: 1px solid rgba(255,255,255,.22); border-radius: 24px; background: #08243b; box-shadow: 0 24px 65px rgba(1,18,31,.28); }
.gp-catalog-hero figure img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gp-catalog-hero figure:after { content: ''; position: absolute; inset: 45% 0 0; background: linear-gradient(180deg,transparent,rgba(3,19,31,.92)); }
.gp-catalog-hero figcaption { position: absolute; z-index: 2; left: 22px; right: 22px; bottom: 18px; color: #fff; font-weight: 800; font-size: 20px; text-shadow: 0 2px 10px rgba(0,0,0,.65); }
.gp-region-hero-caption,
.gp-usa-hero-caption,
.gp-image-hero-caption { display: grid; gap: 5px; font-family: Arial, Helvetica, sans-serif; font-style: normal !important; text-shadow: 0 2px 10px rgba(0,0,0,.72); }
.gp-region-hero-caption small,
.gp-usa-hero-caption small { color: #65f0ba; font-size: 10px; font-style: normal !important; font-weight: 800; line-height: 1.2; letter-spacing: .16em; text-transform: uppercase; }
.gp-region-hero-caption strong,
.gp-usa-hero-caption strong,
.gp-image-hero-caption strong { color: #fff; font-size: 22px; font-style: normal !important; font-weight: 800; line-height: 1.15; letter-spacing: -.01em; }
.gp-region-hero-caption span { color: #e4f0ed; font-size: 12px; font-style: normal !important; font-weight: 500; line-height: 1.3; }
.gp-country-hero-caption { display: grid; gap: 5px; font-family: Arial, Helvetica, sans-serif; font-style: normal !important; text-shadow: 0 2px 10px rgba(0,0,0,.72); }
.gp-country-hero-caption small { color: #65f0ba; font-size: 10px; font-style: normal !important; font-weight: 800; line-height: 1.2; letter-spacing: .16em; text-transform: uppercase; }
.gp-country-hero-caption strong { color: #fff; font-size: 22px; font-style: normal !important; font-weight: 800; line-height: 1.15; letter-spacing: -.01em; }
.gp-country-hero-flag { position: absolute; z-index: 3; top: 18px; right: 18px; width: 58px; height: 44px; padding: 7px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.38); border-radius: 12px; background: rgba(5,30,48,.72); box-shadow: 0 8px 20px rgba(0,0,0,.22); }
.gp-catalog-hero figure .gp-country-hero-flag img { width: 100%; height: 100%; object-fit: cover; border-radius: 5px; }
.gp-order-steps { padding: 34px 20px 24px; display: flex; justify-content: center; align-items: center; gap: 20px; color: #87939d; font-size: 13px; }
.gp-order-steps span { display: flex; align-items: center; gap: 8px; white-space: nowrap; }
.gp-order-steps b { display: grid; place-items: center; width: 25px; height: 25px; border-radius: 50%; background: #dfe5e7; }
.gp-order-steps .is-current { color: var(--gp-ink); font-weight: 800; }
.gp-order-steps .is-current b { background: var(--gp-green); color: #fff; }
.gp-duration-tabs { width: max-content; max-width: calc(100% - 44px); margin: 8px auto 34px; padding: 6px; display: flex; gap: 2px; overflow-x: auto; border-radius: 12px; background: #e8eeec; }
.gp-duration-tabs a { min-width: 142px; padding: 13px 18px; border-radius: 8px; color: #5e6c76; font-weight: 800; text-align: center; white-space: nowrap; }
.gp-duration-tabs a small { display: inline-grid; place-items: center; min-width: 22px; height: 22px; margin-left: 7px; padding: 0 6px; border-radius: 999px; background: rgba(16,27,43,.08); font-size: 10px; }
.gp-duration-tabs a.is-active { background: #fff; color: var(--gp-ink); box-shadow: 0 3px 12px rgba(15,35,48,.1); }
.gp-duration-tabs a.is-active small { background: var(--gp-mint); color: #08754b; }
.gp-plan-header { max-width: 1180px; margin: 70px auto 0; padding: 0 0 24px; display: flex; align-items: end; justify-content: space-between; gap: 28px; border-bottom: 1px solid var(--gp-line); }
.gp-plan-header h2 { margin: 10px 0 0; color: var(--gp-ink); font-size: clamp(38px,4vw,58px); font-weight: 500; line-height: 1.05; letter-spacing: -.045em; }
.gp-plan-header > p { margin: 0; color: var(--gp-muted); }
.gp-plan-coverage-summary { max-width: 790px; margin: 13px 0 0; color: var(--gp-muted); font-size: 14px; line-height: 1.55; }
.gp-plan-coverage-summary strong { color: #08754b; }
.gp-plan-groups { max-width: 1320px; margin: 0 auto; opacity: 1; transform: translateY(0); transition: opacity .16s ease, transform .16s ease; }
.gp-plan-groups.is-switching { opacity: .25; transform: translateY(4px); }
.gp-catalog-picker,
.gp-duration-tabs,
.gp-plan-header,
.gp-plan-groups { transition: opacity .16s ease, transform .16s ease; }
body.gp-catalog-ajax-loading .gp-catalog-picker,
body.gp-catalog-ajax-loading .gp-duration-tabs,
body.gp-catalog-ajax-loading .gp-plan-header,
body.gp-catalog-ajax-loading .gp-plan-groups { opacity: .82; pointer-events: none; }
body.gp-catalog-ajax-loading .gp-catalog-picker { position: relative; }
body.gp-catalog-ajax-loading .gp-catalog-picker::after {
  content: 'Updating plans\2026';
  position: absolute;
  right: 18px;
  bottom: 12px;
  padding: 5px 9px;
  border-radius: 999px;
  background: rgba(255,255,255,.94);
  color: #08754b;
  font-size: 11px;
  font-weight: 800;
  box-shadow: 0 4px 16px rgba(5,35,57,.08);
}
.gp-duration-tabs a { cursor: pointer; transition: color .16s ease, background .16s ease, box-shadow .16s ease; }
.gp-plan-group { padding-top: 52px; }
.gp-plan-group-heading { max-width: 1180px; margin: 0 auto; display: flex; align-items: end; justify-content: space-between; gap: 24px; }
.gp-plan-group-heading span { color: var(--gp-green); font-size: 11px; font-weight: 850; letter-spacing: .16em; }
.gp-plan-group-heading h3 { margin: 12px 0 0; color: var(--gp-ink); font-size: clamp(30px,3.4vw,46px); font-weight: 500; letter-spacing: -.04em; }
.gp-plan-group-heading p { margin: 0; color: var(--gp-muted); }
.tax-product_cat .tuge-country-filter-inline,
.tax-product_cat .tuge-country-filter-loading,
.tax-product_cat .woocommerce-result-count,
.tax-product_cat .woocommerce-ordering { display: none !important; }
.gp-catalog-picker { max-width: 1180px; margin: 0 auto 18px; padding: 22px; display: grid; grid-template-columns: minmax(260px,420px) 1fr; gap: 30px; align-items: end; border: 1px solid var(--gp-line); border-radius: 16px; background: #fff; clear: both; }
.gp-catalog-picker label, .gp-popular > span { display: block; margin-bottom: 9px; color: #65737e; font-size: 11px; font-weight: 850; letter-spacing: .1em; }
.gp-catalog-picker select { width: 100%; min-height: 52px; padding: 10px 42px 10px 14px; border: 1px solid #becac7; border-radius: 9px; background: #fff; color: var(--gp-ink); font: inherit; font-weight: 750; }
.gp-country-select-wrap { position: relative; }
.gp-country-select-flag { position: absolute; z-index: 2; top: 50%; left: 14px; width: 28px; height: 21px; object-fit: cover; transform: translateY(-50%); pointer-events: none; border-radius: 4px; box-shadow: 0 1px 4px rgba(16,27,43,.18); }
.gp-catalog-picker .gp-country-select-wrap select.has-flag { padding-left: 54px; }
.gp-picker-summary { margin: 8px 0 0; color: var(--gp-muted); font-size: 12px; line-height: 1.5; }
.gp-plan-selection-empty {
  grid-column: 1 / -1;
  padding: 20px 22px;
  border: 1px solid #cfe4db;
  border-radius: 13px;
  background: linear-gradient(135deg,#edf8f3,#f8fbfa);
}
.gp-plan-selection-empty strong { display: block; color: var(--gp-ink); font-size: 19px; }
.gp-plan-selection-empty p { margin: 6px 0 0; color: var(--gp-muted); font-size: 13px; line-height: 1.5; }
body.gp-catalog-selection-required .gp-duration-tabs,
body.gp-catalog-selection-required .gp-plan-header,
body.gp-catalog-selection-required .gp-plan-groups,
body.gp-catalog-selection-required.tax-product_cat ul.products,
body.gp-catalog-selection-required .woocommerce-pagination { display: none !important; }
.gp-popular { display: flex; flex-wrap: wrap; gap: 8px; }
.gp-popular > span { width: 100%; }
.gp-popular a { display: inline-flex; align-items: center; gap: 7px; padding: 9px 12px; border: 1px solid #d5dfdc; border-radius: 999px; background: #f7faf9; font-size: 13px; }
.gp-popular-flag { width: 24px; height: 18px; flex: 0 0 auto; object-fit: cover; border-radius: 3px; box-shadow: 0 1px 3px rgba(16,27,43,.16); }
.gp-popular a.is-active { border-color: var(--gp-green); background: var(--gp-mint); color: #08754b; }
.tax-product_cat .woocommerce-notices-wrapper,
.tax-product_cat .woocommerce-result-count,
.tax-product_cat .woocommerce-ordering,
.tax-product_cat .products { max-width: 1320px; margin-left: auto !important; margin-right: auto !important; }
.tax-product_cat .woocommerce-result-count { margin-left: max(4vw,22px) !important; color: var(--gp-muted); }
.tax-product_cat .woocommerce-ordering { margin-right: max(4vw,22px) !important; }
.tax-product_cat ul.products { clear: both; padding: 38px max(4vw,22px) 0 !important; display: grid !important; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }
.tax-product_cat ul.products:before, .tax-product_cat ul.products:after { display: none !important; }
.tax-product_cat ul.products li.product { width: auto !important; float: none !important; margin: 0 !important; padding: 28px !important; display: flex; flex-direction: column; background: #fff; border: 1px solid #dce4e2; border-radius: 16px; transition: transform .2s, box-shadow .2s; }
.tax-product_cat ul.products li.product:hover { transform: translateY(-3px); box-shadow: 0 16px 40px rgba(12,40,68,.09); }
.tax-product_cat .tuge-product-header { display: flex; align-items: center; gap: 14px; }
.tax-product_cat .tuge-product-thumb { width: 50px; height: 38px; overflow: hidden; flex: 0 0 auto; border-radius: 6px; box-shadow: 0 0 0 1px rgba(15,35,48,.12),0 3px 8px rgba(15,35,48,.1); }
.tax-product_cat .tuge-product-thumb img { width: 100%; height: 100%; margin: 0 !important; object-fit: cover; }
.tax-product_cat .woocommerce-loop-product__title { padding: 0 !important; color: #65737e; font-size: 12px !important; line-height: 1.35; letter-spacing: .08em; text-transform: uppercase; }
.tax-product_cat .tuge-product-info { margin-top: 24px; flex: 1; }
.tax-product_cat .tuge-product-row { display: flex; justify-content: space-between; gap: 14px; padding: 16px 0; border-top: 1px solid #e8eceb; }
.tax-product_cat .tuge-product-label { color: #75818a; }
.tax-product_cat .tuge-product-value { color: var(--gp-ink); font-weight: 800; }
.tax-product_cat .tuge-detail-btn { width: 100%; margin: 18px 0 0 !important; padding: 14px 16px !important; border-radius: 8px !important; background: var(--gp-navy) !important; color: #fff !important; text-align: center; font-weight: 800 !important; }
.tax-product_cat .tuge-detail-btn:hover { background: var(--gp-green) !important; }
.tax-product_cat ul.products li.gp-plan-card { min-width: 0; position: relative; overflow: visible; }
.gp-plan-card-link { min-width: 0; height: 100%; display: flex; flex-direction: column; color: var(--gp-ink); }
.gp-plan-badge { position: absolute; z-index: 4; top: -13px; right: 18px; padding: 7px 13px; border-radius: 999px; background: var(--gp-green); color: #fff; font-size: 10px; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.gp-plan-card-top { height: 118px; margin: -10px -10px 20px; overflow: hidden; display: flex; align-items: center; justify-content: center; border-radius: 12px; background: #edf7f3; }
.gp-plan-card-region { position: relative; align-items: stretch; justify-content: stretch; background: #08243b; }
.gp-plan-card--regional .gp-plan-card-region { height: 104px; margin-bottom: 16px; }
.gp-plan-card-region:after { content: ''; position: absolute; inset: 35% 0 0; background: linear-gradient(180deg,transparent,rgba(3,19,31,.92)); }
.gp-region-thumb { width: 100%; height: 100%; object-fit: cover; }
.gp-region-card-caption { position: absolute; z-index: 2; left: 16px; right: 16px; bottom: 12px; display: grid; gap: 2px; color: #fff; text-shadow: 0 2px 10px rgba(0,0,0,.65); }
.gp-region-card-caption strong { overflow: hidden; font-size: 15px; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
.gp-region-card-caption small { color: #dcebe8; font-size: 10px; }
.gp-card-flag { width: 48px !important; height: 36px !important; margin: 0 !important; object-fit: cover; border-radius: 6px; box-shadow: 0 0 0 1px rgba(15,35,48,.12),0 4px 10px rgba(15,35,48,.1); }
.gp-plan-card-country { height: auto; min-height: 72px; margin: -10px -10px 16px; padding: 14px 16px; justify-content: flex-start; gap: 14px; }
.gp-plan-card-country .gp-card-flag { flex: 0 0 auto; width: 64px !important; height: 44px !important; border: 1px solid rgba(10,32,51,.10); border-radius: 8px; }
.gp-card-country-name { overflow: hidden; color: var(--gp-ink); font-size: 16px; font-weight: 800; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.gp-plan-card-country + .gp-plan-label { margin-top: 0; }
.gp-plan-card-usa-head { min-height: 68px; }
.gp-free-pill { margin-left: auto; padding: 7px 10px; border-radius: 999px; background: #dff7ed; color: #08754b; font-size: 12px; font-weight: 850; line-height: 1; white-space: nowrap; }
.gp-plan-label { margin: 17px 0 7px; color: #72808b; font-size: 10px; font-weight: 850; letter-spacing: .17em; text-transform: uppercase; }
.gp-plan-label span { letter-spacing: .08em; }
.gp-plan-card h2 { margin: 0 0 18px !important; padding: 0 !important; color: var(--gp-ink) !important; font-size: 38px !important; line-height: 1 !important; letter-spacing: -.04em !important; text-transform: none !important; }
.gp-card-coverage { margin: 6px 0 8px; padding: 11px 13px; display: grid; grid-template-columns: auto minmax(0,1fr); align-items: center; gap: 14px; border-radius: 10px; background: #f0f6f3; }
.gp-card-coverage span { color: #60756c; font-size: 10px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.gp-card-coverage strong { display: block; overflow: hidden; color: var(--gp-ink); font-size: 13px; line-height: 1.35; text-align: right; text-overflow: ellipsis; white-space: nowrap; }
.gp-view-coverage { align-self: flex-start; margin: 0 0 9px; color: #08754b; font-size: 12px; font-weight: 850; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.gp-view-coverage:hover { color: var(--gp-green); }
.gp-card-row { padding: 15px 0; display: flex; justify-content: space-between; gap: 15px; border-top: 1px solid #e8eceb; }
.gp-card-row > span { color: #75818a; }
.gp-card-row strong { text-align: right; }
.gp-card-price strong { font-size: 22px; }
.gp-card-price del { color: #9aa5ad; font-size: .72em; font-weight: 650; text-decoration-color: #9aa5ad; text-decoration-thickness: 1.5px; }
.gp-card-price ins { color: var(--gp-ink); font-weight: 850; text-decoration: none; }
.gp-plan-card--free .gp-card-price strong { color: #08754b; font-size: 24px; }
.gp-select-plan { width: 100%; margin-top: auto; padding: 14px; display: block; border-radius: 8px; background: var(--gp-navy); color: #fff; font-weight: 850; text-align: center; }
.gp-plan-card-link:hover .gp-select-plan { background: var(--gp-green); }
.gp-plan-card--free .gp-select-plan { background: var(--gp-green); }

body.gp-coverage-open { overflow: hidden; }
.gp-coverage-modal[hidden] { display: none !important; }
.gp-coverage-modal { position: fixed; inset: 0; z-index: 1200; padding: 22px; display: grid; place-items: center; opacity: 0; transition: opacity .18s ease; }
.gp-coverage-modal.is-open { opacity: 1; }
.gp-coverage-backdrop { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; background: rgba(7,18,28,.72); -webkit-backdrop-filter: blur(7px); backdrop-filter: blur(7px); cursor: pointer; }
.gp-coverage-dialog { position: relative; width: min(760px,100%); max-height: min(820px,88dvh); overflow: auto; padding: 0; border-radius: 24px; background: #fff; box-shadow: 0 30px 90px rgba(2,17,30,.34); transform: translateY(12px) scale(.985); transition: transform .2s ease; }
.gp-coverage-modal.is-open .gp-coverage-dialog { transform: none; }
.gp-coverage-dialog-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; }
.gp-coverage-dialog-head .gp-eyebrow { margin: 0 0 8px; color: var(--gp-green); font-size: 11px; font-weight: 850; letter-spacing: .15em; }
.gp-coverage-dialog h2 { margin: 0; color: #fff; font-size: clamp(32px,5vw,48px); font-weight: 600; letter-spacing: -.04em; }
.gp-coverage-close { position: absolute; top: 18px; right: 18px; z-index: 4; width: 46px; height: 46px; display: grid; place-items: center; border: 1px solid rgba(214,224,228,.9); border-radius: 50%; background: rgba(255,255,255,.96); color: var(--gp-ink); font: 400 32px/1 Arial,sans-serif; cursor: pointer; box-shadow: 0 8px 24px rgba(2,17,30,.14); }
.gp-coverage-visual { position: relative; min-height: 285px; overflow: hidden; background: #06273b; }
.gp-coverage-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.gp-coverage-visual-shade { position: absolute; inset: 0; background: linear-gradient(180deg,rgba(3,26,40,.08) 18%,rgba(2,24,38,.86) 100%); }
.gp-coverage-visual-copy { position: relative; z-index: 2; min-height: 285px; padding: 42px 76px 34px 34px; display: flex; flex-direction: column; justify-content: flex-end; color: #fff; }
.gp-coverage-visual-copy p { margin: 0 0 9px; color: #72f2c3; font-size: 12px; font-weight: 850; letter-spacing: .15em; }
.gp-coverage-count { margin: 9px 0 0; color: rgba(255,255,255,.82); font-size: 15px; }
.gp-coverage-body { padding: 28px 34px 34px; }
.gp-coverage-dialog-head h3 { margin: 0 0 20px; color: var(--gp-ink); font-size: 28px; line-height: 1.15; font-weight: 600; letter-spacing: -.02em; }
.gp-coverage-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; }
.gp-coverage-grid span { padding: 11px 12px; border: 1px solid #dce6e2; border-radius: 9px; background: #f2f8f5; color: var(--gp-ink); font-size: 13px; font-weight: 700; }

/* WooCommerce account */
.woocommerce-account .woocommerce { display: grid; grid-template-columns: 245px minmax(0,1fr); gap: 34px; }
.woocommerce-account .woocommerce-MyAccount-navigation { width: auto; float: none; }
.woocommerce-account .woocommerce-MyAccount-navigation ul { margin: 0; padding: 12px; list-style: none; border: 1px solid var(--gp-line); border-radius: 16px; background: #fff; }
.woocommerce-account .woocommerce-MyAccount-navigation li a { display: block; padding: 13px 14px; border-radius: 9px; font-weight: 700; }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { background: var(--gp-mint); color: #08754b; }
.woocommerce-account .woocommerce-MyAccount-content { width: auto; float: none; padding: 30px; border: 1px solid var(--gp-line); border-radius: 16px; background: #fff; }

/* Isolated preview fallback for My Data. Real TUGE output replaces it when enabled. */
.page-id-130 .site-main { max-width: 1180px !important; }
.gp-data-login { max-width: 720px; margin: 40px auto; padding: 46px; border: 1px solid var(--gp-line); border-radius: 20px; background: #fff; }
.gp-data-login h1, .gp-data-heading h1 { margin: 0; font-size: clamp(44px,6vw,72px); letter-spacing: -.05em; line-height: 1; }
.gp-data-login > p:not(.gp-kicker), .gp-data-heading > div > p:last-child { color: var(--gp-muted); line-height: 1.6; }
.gp-data-heading { display: flex; justify-content: space-between; align-items: end; gap: 30px; margin-bottom: 28px; }
.gp-preview-note { margin-bottom: 22px; padding: 16px 18px; display: flex; gap: 14px; align-items: center; border-radius: 12px; background: #fff7dd; color: #705b18; font-size: 13px; }
.gp-preview-note span { color: #806d2e; }
.gp-device-card { padding: 34px; border: 1px solid var(--gp-line); border-radius: 20px; background: #fff; box-shadow: 0 18px 50px rgba(12,40,68,.06); }
.gp-device-title { display: flex; justify-content: space-between; gap: 25px; align-items: center; padding-bottom: 24px; border-bottom: 1px solid var(--gp-line); }
.gp-device-title h2 { margin: 8px 0 4px; font-size: 36px; letter-spacing: -.04em; }
.gp-device-title p { margin: 0; color: var(--gp-muted); }
.gp-device-title > a { padding: 11px 15px; border: 1px solid #c8d7d2; border-radius: 9px; color: #08754b; font-weight: 800; }
.gp-online { color: #087f53; font-size: 13px; font-weight: 800; }
.gp-device-meters { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin: 28px 0 18px; }
.gp-device-meters article { min-height: 210px; padding: 28px; border-radius: 18px; display: flex; flex-direction: column; }
.gp-device-meters article > span { color: #b8c9d7; }
.gp-device-meters article > strong { margin-top: 15px; font-size: 42px; line-height: 1; }
.gp-device-meters article > small { margin-top: 7px; color: #b8c9d7; }
.gp-data-meter { background: var(--gp-navy); color: #fff; }
.gp-battery-meter { background: #edf8f3; }
.gp-battery-meter > span, .gp-battery-meter > small { color: #5c756b !important; }
.gp-progress { height: 12px; margin-top: 25px; overflow: hidden; border-radius: 999px; background: #8da4b5; }
.gp-progress i { display: block; height: 100%; background: #45cc98; }
.gp-battery { height: 17px; margin: 28px 8px 14px 0; padding: 3px; position: relative; border: 3px solid var(--gp-green); border-radius: 5px; }
.gp-battery:after { content: ''; position: absolute; width: 6px; height: 9px; right: -8px; top: 1px; border-radius: 0 3px 3px 0; background: var(--gp-green); }
.gp-battery i { display: block; height: 100%; border-radius: 2px; background: var(--gp-green); }
.gp-device-status { padding: 28px; border: 1px solid var(--gp-line); border-radius: 16px; }
.gp-device-status h3 { margin: 0 0 18px; font-size: 24px; }
.gp-device-status > div { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; }
.gp-device-status article { padding: 18px; display: flex; flex-direction: column; gap: 7px; border: 1px solid var(--gp-line); border-radius: 12px; }
.gp-device-status span { color: var(--gp-muted); font-size: 13px; }
.gp-plan-panels { display: grid; grid-template-columns: 1.3fr 1fr; gap: 18px; margin-top: 18px; }
.gp-plan-panels article { padding: 28px; position: relative; border: 1px solid var(--gp-line); border-radius: 16px; }
.gp-plan-panels article > span { color: #657581; font-size: 11px; font-weight: 850; letter-spacing: .14em; }
.gp-plan-panels article > b { position: absolute; right: 24px; top: 22px; padding: 7px 12px; border-radius: 999px; background: var(--gp-mint); color: #08754b; font-size: 12px; }
.gp-plan-panels h3 { margin: 24px 0; font-size: 25px; }
.gp-plan-panels dl { margin: 0 0 22px; }
.gp-plan-panels dl div { display: flex; justify-content: space-between; padding: 8px 0; }
.gp-plan-panels dt { color: var(--gp-muted); }
.gp-plan-panels dd { margin: 0; font-weight: 800; }
.gp-plan-panels a { color: #08754b; font-weight: 800; }
.gp-upcoming-plan-list { display: grid; gap: 0; margin: 24px 0 18px; }
.gp-upcoming-plan-item { padding: 14px 0; border-top: 1px solid var(--gp-line); }
.gp-upcoming-plan-item:first-child { padding-top: 0; border-top: 0; }
.gp-upcoming-plan-item h3 { margin: 0 0 5px; font-size: 19px; line-height: 1.3; }
.gp-upcoming-plan-item small { color: var(--gp-muted); font-size: 13px; }
.gp-upcoming-plan-note { margin: 0; }

/* Single plan and login-gated ordering */
.single-product .site-main { max-width: none !important; padding: 0 !important; background: #f7f9f8; }
.single-product .woocommerce-breadcrumb { display: none; }
.gp-single-wrap { max-width: 1240px; margin: 0 auto; padding: 38px max(4vw,22px) 90px; }
.gp-back-link { display: inline-block; margin-bottom: 18px; color: #08754b; font-size: 13px; font-weight: 800; }
.gp-single-wrap > .gp-order-steps { padding: 8px 0 30px; }
.gp-product-detail { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap: 24px; }
.gp-product-summary-card, .gp-product-order { margin: 0 !important; padding: 38px !important; float: none !important; width: auto !important; border: 1px solid var(--gp-line); border-radius: 20px; background: #fff; }
.gp-product-summary-card { background: linear-gradient(145deg,#0c2844,#105d62); color: #fff; }
.gp-product-identity { display: flex; align-items: center; gap: 14px; color: #a9efd2; font-size: 11px; font-weight: 850; letter-spacing: .16em; }
.gp-product-identity img { width: 64px; height: 48px; object-fit: cover; border-radius: 7px; box-shadow: 0 0 0 1px rgba(255,255,255,.35); }
.gp-plan-icon { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: var(--gp-green); color: #fff; font-size: 24px; font-weight: 900; }
.gp-product-summary-card h1 { margin: 34px 0; color: #fff; font-size: clamp(34px,4vw,54px); line-height: 1.06; letter-spacing: -.045em; }
.gp-product-facts { border-top: 1px solid rgba(255,255,255,.2); }
.gp-product-facts > div { padding: 18px 0; display: flex; justify-content: space-between; gap: 20px; border-bottom: 1px solid rgba(255,255,255,.15); }
.gp-product-facts span { color: #c6d7df; }
.gp-product-facts strong { font-size: 19px; text-align: right; }
.gp-product-facts .amount { color: #fff; }
.gp-product-order h2 { margin: 0 0 25px; font-size: 38px; letter-spacing: -.04em; }
.gp-coverage-box { margin-bottom: 20px; padding: 18px; border-radius: 12px; background: #edf8f3; }
.gp-coverage-box span { display: block; margin-bottom: 7px; color: #5d746a; font-size: 11px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.gp-coverage-box strong { display: block; line-height: 1.55; }
.gp-activation-note { margin-bottom: 22px; padding: 18px; border-left: 4px solid var(--gp-green); background: #f6f8f7; }
.gp-activation-note p { margin: 8px 0 0; color: var(--gp-muted); font-size: 13px; line-height: 1.55; }
.gp-product-order .woocommerce-product-details__short-description { color: var(--gp-muted); line-height: 1.6; }
.gp-product-order form.cart { margin: 25px 0 0 !important; display: grid; gap: 12px; }
.gp-product-order form.cart .quantity { display: none !important; }
.gp-product-order form.cart button, .gp-product-order .wc-buy-now-btn { width: 100% !important; min-height: 54px; margin: 0 !important; border: 0 !important; border-radius: 9px !important; background: var(--gp-green) !important; color: #fff !important; font-weight: 850 !important; }
.gp-signin-to-order { padding: 22px; border: 1px solid #cfe0da; border-radius: 14px; background: #f5fbf8; }
.gp-signin-to-order strong { font-size: 20px; }
.gp-signin-to-order p { margin: 8px 0 18px; color: var(--gp-muted); line-height: 1.5; }
.gp-signin-to-order .gp-button { width: 100%; }
.gp-secure-line { margin-top: 20px; color: #62747d; font-size: 12px; text-align: center; }
.gp-product-order .product-activation-date { display: none !important; }
.gp-product-order .tuge-activation-date-wrapper { margin: 22px 0 14px !important; padding: 22px !important; border: 1px solid #d5e2dd !important; border-radius: 14px !important; background: #f7faf9 !important; }
.gp-product-order .tuge-activation-date-wrapper h3 { margin: 0 0 18px !important; color: var(--gp-ink) !important; font-size: 20px !important; }
.gp-product-order .tuge-timezone-row,
.gp-product-order .tuge-activation-date-field { display: grid !important; grid-template-columns: 125px minmax(0,1fr); align-items: center !important; gap: 12px !important; }
.gp-product-order .tuge-field-label { min-width: 0 !important; color: #46545f !important; font-size: 12px !important; }
.gp-product-order .tuge-timezone-select,
.gp-product-order .tuge-activation-date-input { width: 100% !important; max-width: none !important; min-height: 49px; padding: 10px 12px !important; border: 1px solid #b9cac4 !important; border-radius: 8px !important; color: var(--gp-ink); background: #fff !important; font: inherit !important; }
.gp-product-order .tuge-activation-date-input:focus,
.gp-product-order .tuge-timezone-select:focus { border-color: var(--gp-green) !important; box-shadow: 0 0 0 3px rgba(25,169,107,.12) !important; outline: 0; }
.gp-product-order .tuge-activation-hint { max-width: none !important; margin: 4px 0 0 !important; padding: 0 !important; }
.single-product .related, .single-product .upsells { max-width: 1240px; margin: 55px auto 0; }

/* Date-only, device-first product wizard. TUGE still receives the complete
   UTC/timezone payload through hidden fields. */
.single-product .gp-single-wrap { max-width: 900px; }
.single-product .gp-product-wizard-page { max-width: 780px; margin: 0 auto; grid-template-columns: 1fr; gap: 0; }
.single-product .gp-product-summary-compact { padding: 26px 30px !important; border-radius: 22px 22px 0 0; }
.single-product .gp-product-summary-compact h1 { margin: 22px 0 24px; font-size: clamp(30px,5vw,44px); }
.single-product .gp-product-summary-compact .gp-product-facts { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); }
.single-product .gp-product-summary-compact .gp-product-facts > div { padding: 14px 18px; display: grid; gap: 6px; border-bottom: 0; border-right: 1px solid rgba(255,255,255,.16); }
.single-product .gp-product-summary-compact .gp-product-facts > div:first-child { padding-left: 0; }
.single-product .gp-product-summary-compact .gp-product-facts > div:last-child { padding-right: 0; border-right: 0; }
.single-product .gp-product-summary-compact .gp-product-facts strong { text-align: left; }
.single-product .gp-product-order { padding: 30px !important; border-top: 0; border-radius: 0 0 22px 22px; }
.single-product .gp-product-order .gp-coverage-box { margin: 0 0 20px; }
.single-product .gp-product-order form.cart { margin-top: 0 !important; }
.single-product .gp-product-order form.cart > .single_add_to_cart_button { display: none !important; }
.single-product .wc-buy-now-btn,
.single-product [name="wc-quick-buy-now"],
.single-product [data-wc-buy-now="true"],
.single-product .ppc-button-wrapper,
.single-product .paypal-button-container,
.single-product .wc-stripe-payment-request-wrapper,
.single-product .wcpay-payment-request-wrapper,
.single-product #wc-stripe-payment-request-wrapper,
.single-product #wc-stripe-payment-request-button,
.single-product .wc-stripe-product-checkout-container,
.single-product #wc-stripe-product-checkout-container,
.single-product .wc-stripe-express-checkout-container,
.single-product #wc-stripe-express-checkout-element,
.single-product #wc-stripe-express-checkout-button,
.single-product #wc-stripe-express-checkout-button-separator,
.single-product .wcpay-express-checkout-wrapper,
.single-product .wc-block-components-express-payment,
.single-product [id*="stripe"][id*="express-checkout"],
.single-product [class*="stripe"][class*="express-checkout"] { display: none !important; }
.gp-product-wizard-step[hidden] { display: none !important; }
.gp-product-wizard-step h2 { margin: 4px 0 24px; font-size: clamp(32px,5vw,46px); line-height: 1.08; letter-spacing: -.04em; }
.gp-wizard-count { margin: 0 0 10px; color: var(--gp-green); font-size: 12px; font-weight: 900; letter-spacing: .16em; }
.gp-date-only-field { display: grid; gap: 10px; padding: 22px; border-radius: 16px; background: #f4f7f6; color: var(--gp-ink); font-weight: 800; }
.gp-date-only-field input { width: 100%; min-height: 58px; padding: 12px 15px; border: 1px solid #b9cac4; border-radius: 10px; background: #fff; color: var(--gp-ink); font: inherit; font-size: 18px; font-weight: 750; }
.gp-date-only-field input:focus { border-color: var(--gp-green); box-shadow: 0 0 0 3px rgba(25,169,107,.12); outline: 0; }
/* English display over the original native date control. The real input stays
   focusable/clickable and keeps its value, min/max constraints and mobile picker. */
.gp-date-only-field .gp-date-display { position: relative; display: block; min-width: 0; min-height: 58px; border: 1px solid #b9cac4; border-radius: 10px; background: #fff; }
.gp-date-only-field .gp-date-display-text { display: block; padding: 14px 42px 14px 15px; color: var(--gp-ink); font-size: 18px; font-weight: 750; line-height: 28px; text-align: left; pointer-events: none; }
.gp-date-only-field .gp-date-display::after { content: '▾'; position: absolute; top: 50%; right: 16px; transform: translateY(-50%); color: var(--gp-muted); pointer-events: none; }
.gp-date-only-field .gp-date-display input[type="date"] { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; min-height: 0; margin: 0; padding: 0; opacity: 0; cursor: pointer; }
.gp-date-only-field .gp-date-display input[type="date"]::-webkit-calendar-picker-indicator { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; padding: 0; cursor: pointer; }
.gp-date-only-field .gp-date-display:focus-within { border-color: var(--gp-green); box-shadow: 0 0 0 3px rgba(25,169,107,.12); }
.gp-wizard-primary,
.gp-wizard-back { min-height: 54px; padding: 13px 22px; border-radius: 10px; font: inherit; font-weight: 850; cursor: pointer; }
.gp-wizard-primary { width: 100%; margin-top: 12px; border: 0; background: var(--gp-green); color: #fff; }
.gp-wizard-back { border: 1px solid #c8d6d1; background: #fff; color: #40505c; }
.gp-product-device-list { display: grid; gap: 10px; }
.gp-product-device-option { position: relative; padding: 16px; display: grid; grid-template-columns: auto 48px minmax(0,1fr) auto; align-items: center; gap: 13px; border: 1px solid #d5e0dd; border-radius: 14px; background: #fff; cursor: pointer; }
.gp-product-device-option.is-selected { border: 2px solid var(--gp-green); background: #effaf5; }
.gp-product-device-option input { width: 18px; height: 18px; accent-color: var(--gp-green); }
.gp-product-device-option > span:nth-of-type(2) { display: grid; gap: 3px; }
.gp-product-device-option strong { color: var(--gp-ink); font-size: 16px; }
.gp-product-device-option small { color: var(--gp-muted); font-size: 12px; }
.gp-product-device-option em { padding: 6px 10px; border-radius: 999px; background: #ddf6eb; color: #08754b; font-size: 11px; font-style: normal; }
.gp-device-model { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: var(--gp-navy); color: #fff; font-size: 10px; font-weight: 850; }
.gp-bind-during-order { display: inline-block; margin: 18px 0; padding: 0; border: 0; background: transparent; color: #08754b; font: inherit; font-weight: 850; cursor: pointer; }
.gp-bind-during-order:hover { color: var(--gp-green); }
.gp-wizard-actions { display: grid; grid-template-columns: minmax(120px,.34fr) minmax(0,1fr); gap: 10px; align-items: stretch; }
.gp-wizard-actions .gp-wizard-primary { margin-top: 0; }
.gp-wizard-primary:disabled { opacity: .45; cursor: not-allowed; }
.gp-wizard-submit.is-loading { opacity: .65; cursor: wait; }
.gp-no-device { margin-bottom: 16px; padding: 20px; border-radius: 14px; background: #f4f7f6; }
.gp-no-device p { margin: 7px 0 16px; color: var(--gp-muted); }
.single-product .gp-activation-note { margin: 22px 0 0; }
.single-product .gp-secure-line { margin-top: 14px; }
.single-product .woocommerce-tabs,
.single-product .product .description_tab { display: none !important; }

/* Catalog plans open as a fast three-step dialog instead of leaving the page. */
body.gp-plan-modal-open,
body.gp-order-bind-open { overflow: hidden; }
.gp-plan-modal[hidden],
.gp-order-bind-modal[hidden] { display: none !important; }
.gp-plan-modal { position: fixed; inset: 0; z-index: 1100; padding: 28px; display: grid; place-items: center; opacity: 0; transition: opacity .2s ease; }
.gp-plan-modal.is-open { opacity: 1; }
.gp-plan-modal-backdrop { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; background: rgba(7,18,28,.7); -webkit-backdrop-filter: blur(7px); backdrop-filter: blur(7px); cursor: pointer; }
.gp-plan-modal-dialog { position: relative; width: min(760px,100%); max-height: min(900px,92vh); overflow: hidden; border: 1px solid rgba(255,255,255,.62); border-radius: 25px; background: #fff; box-shadow: 0 32px 90px rgba(2,17,30,.32); transform: translateY(14px) scale(.985); transition: transform .22s ease; }
.gp-plan-modal.is-open .gp-plan-modal-dialog { transform: none; }
.gp-plan-modal-content { max-height: min(900px,92vh); overflow: auto; overscroll-behavior: contain; scrollbar-gutter: stable; }
.gp-plan-modal-close { position: absolute; z-index: 4; top: 18px; right: 18px; width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid #d6e0e4; border-radius: 50%; background: rgba(255,255,255,.96); color: var(--gp-ink); font: 400 34px/1 Arial,sans-serif; cursor: pointer; box-shadow: 0 8px 24px rgba(8,33,51,.08); }
.gp-plan-modal .gp-single-wrap { width: 100%; max-width: none; margin: 0; padding: 0; }
.gp-plan-modal .gp-back-link { display: none !important; }
.gp-plan-modal .gp-product-wizard-page { width: 100%; max-width: none; margin: 0; }
.gp-plan-modal .gp-product-summary-compact,
.gp-plan-modal .gp-product-order > .gp-coverage-box,
.gp-plan-modal .gp-product-order > .gp-activation-note,
.gp-plan-modal .gp-product-order > .gp-secure-line { display: none !important; }
.gp-plan-modal .gp-product-order { padding: 32px 38px 34px !important; border: 0; border-radius: 0; box-shadow: none; }
.gp-plan-modal .gp-product-wizard-step h2 { padding-right: 48px; font-size: clamp(30px,4.5vw,42px); }
.gp-wizard-plan-summary { margin-bottom: 22px; padding: 22px 24px; display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px 20px; border-radius: 16px; background: #edf8f3; }
.gp-wizard-plan-summary span { grid-column: 1/-1; color: #527266; font-size: 12px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.gp-wizard-plan-summary strong { color: var(--gp-ink); font-size: 21px; line-height: 1.25; }
.gp-wizard-plan-summary b { align-self: end; color: var(--gp-ink); font-size: 28px; line-height: 1; }
.gp-wizard-plan-summary b .woocommerce-Price-amount { color: inherit; }
.gp-plan-modal .gp-product-order form.cart .gp-bind-during-order { width: auto !important; min-height: auto !important; margin: 20px 0 !important; padding: 0 !important; border: 0 !important; border-radius: 0 !important; background: transparent !important; color: #08754b !important; text-align: left; }
.gp-plan-modal .gp-product-order form.cart .gp-wizard-back { width: auto !important; min-height: 54px !important; margin: 0 !important; border: 1px solid #c8d6d1 !important; border-radius: 10px !important; background: #fff !important; color: #40505c !important; }
.gp-plan-modal .gp-product-order form.cart .gp-wizard-submit { min-height: 54px !important; margin: 0 !important; }
.gp-plan-card.is-opening { opacity: .62; pointer-events: none; }

/* A nested binding dialog keeps customers inside step two. */
.gp-order-bind-modal { position: fixed; inset: 0; z-index: 1250; padding: 24px; display: grid; place-items: center; opacity: 0; transition: opacity .18s ease; }
.gp-order-bind-modal.is-open { opacity: 1; }
.gp-order-bind-backdrop { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; background: rgba(7,18,28,.65); -webkit-backdrop-filter: blur(7px); backdrop-filter: blur(7px); cursor: pointer; }
.gp-order-bind-dialog { position: relative; width: min(560px,100%); max-height: 88vh; overflow: auto; border-radius: 22px; background: #fff; box-shadow: 0 28px 80px rgba(2,17,30,.34); transform: translateY(12px) scale(.985); transition: transform .2s ease; }
.gp-order-bind-modal.is-open .gp-order-bind-dialog { transform: none; }
.gp-order-bind-head { padding: 24px 72px 20px 26px; border-bottom: 1px solid var(--gp-line); }
.gp-order-bind-head .gp-kicker { margin: 0 0 8px; }
.gp-order-bind-head h2 { margin: 0; font-size: 34px; line-height: 1.08; letter-spacing: -.035em; }
.gp-order-bind-close { position: absolute; top: 18px; right: 18px; width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid #d6e0e4; border-radius: 50%; background: #fff; color: var(--gp-ink); font: 400 30px/1 Arial,sans-serif; cursor: pointer; }
.gp-order-bind-form { padding: 24px 26px 28px; display: grid; gap: 17px; }
.gp-order-bind-form label:not(.gp-order-bind-check) { display: grid; gap: 7px; color: var(--gp-ink); font-weight: 800; }
.gp-order-bind-form input[type="text"] { width: 100%; min-height: 52px; padding: 12px 14px; border: 1px solid #b9cac4; border-radius: 9px; background: #fff; color: var(--gp-ink); font: inherit; }
.gp-order-bind-form input[type="text"]:focus { border-color: var(--gp-green); outline: 0; box-shadow: 0 0 0 3px rgba(25,169,107,.12); }
.gp-order-bind-check { display: flex; align-items: center; gap: 9px; color: #52616d; font-size: 14px; }
.gp-order-bind-check input { width: 18px; height: 18px; accent-color: var(--gp-green); }
.gp-order-bind-actions { display: grid; grid-template-columns: .42fr 1fr; gap: 10px; }
.gp-order-bind-actions button { min-height: 50px; padding: 11px 16px; border-radius: 9px; font: inherit; font-weight: 850; cursor: pointer; }
.gp-order-bind-actions button:first-child { border: 1px solid #c8d6d1; background: #fff; color: #40505c; }
.gp-order-bind-actions button[type="submit"] { border: 0; background: var(--gp-green); color: #fff; }
.gp-order-bind-actions button:disabled { opacity: .55; cursor: wait; }
.gp-order-bind-message { min-height: 20px; margin: 0; color: #08754b; font-size: 13px; }
.gp-order-bind-message.is-error { color: #c73535; }

@media (max-width: 620px) {
  .gp-plan-modal { padding: 10px; align-items: center; }
  .gp-plan-modal-dialog { max-height: calc(100dvh - 20px); border-radius: 20px; }
  .gp-plan-modal-content { max-height: calc(100dvh - 20px); }
  .gp-plan-modal-close { top: 13px; right: 13px; width: 40px; height: 40px; font-size: 29px; }
  .gp-plan-modal .gp-product-order { padding: 22px 20px 24px !important; }
  .gp-plan-modal .gp-product-wizard-step h2 { margin-bottom: 20px; padding-right: 34px; font-size: 31px; }
  .gp-wizard-plan-summary { padding: 19px 20px; }
  .gp-wizard-plan-summary strong { font-size: 18px; }
  .gp-wizard-plan-summary b { font-size: 24px; }
  .gp-date-only-field { padding: 16px; }
  .gp-product-device-option { grid-template-columns: auto 42px minmax(0,1fr); padding: 13px; gap: 10px; }
  .gp-product-device-option em { grid-column: 3; justify-self: start; }
  .gp-device-model { width: 42px; height: 42px; }
  .gp-wizard-actions { grid-template-columns: .38fr 1fr; }
  .gp-order-bind-modal { padding: 12px; }
  .gp-order-bind-dialog { width: 100%; max-height: calc(100dvh - 24px); border-radius: 20px; }
  .gp-order-bind-head { padding: 22px 64px 18px 21px; }
  .gp-order-bind-head h2 { font-size: 29px; }
  .gp-order-bind-close { top: 15px; right: 15px; }
  .gp-order-bind-form { padding: 21px; }
}

.woocommerce-account input.input-text { min-height: 48px; padding: 10px 12px; border: 1px solid #bdcbc6; border-radius: 8px; }
.woocommerce-account button.button { min-height: 46px; padding: 11px 20px !important; border-radius: 8px !important; background: var(--gp-green) !important; color: #fff !important; }
.woocommerce-account .form-row label { margin-bottom: 7px; font-weight: 700; }
.woocommerce-account .form-row { margin-bottom: 16px; }
.woocommerce-account .form-row small { display: block; margin-top: 7px; color: var(--gp-muted); font-size: 12px; }
.gp-register-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }

body.woocommerce-account:not(.logged-in) #content.site-main,
body.woocommerce-account:not(.logged-in) main#content { max-width: none !important; margin: 0 !important; padding: 0 !important; }
body.woocommerce-account:not(.logged-in) #content.site-main > h1,
body.woocommerce-account:not(.logged-in) #content.site-main > .entry-title,
body.woocommerce-account:not(.logged-in) #content.site-main > .page-header { display: none !important; }
.woocommerce-account:not(.logged-in) .woocommerce { display: block; width: 100%; }
.woocommerce-account:not(.logged-in) .woocommerce-notices-wrapper { width: min(1180px,calc(100% - 44px)); margin: 22px auto 0; }
.woocommerce-account:not(.logged-in) .woocommerce-error,
.woocommerce-account:not(.logged-in) .woocommerce-message { margin: 0 !important; border-radius: 10px; }
.gp-auth-page { min-height: 780px; padding: 70px max(6vw,44px) 82px; display: grid; grid-template-columns: minmax(340px,.9fr) minmax(520px,1.1fr); gap: clamp(48px,7vw,110px); align-items: start; background: linear-gradient(132deg,#0b2945 0 42%,#f4f7f6 42% 100%); }
.gp-auth-intro-panel { max-width: 520px; padding-top: 40px; color: #fff; }
.gp-auth-intro-panel .gp-kicker { color: #74e7b6; }
.gp-auth-intro-panel h1 { max-width: 500px; margin: 0; font-size: clamp(48px,5.2vw,76px); line-height: .99; letter-spacing: -.055em; }
.gp-auth-intro-copy { max-width: 500px; margin: 28px 0 0; color: rgba(255,255,255,.76); font-size: 18px; line-height: 1.65; }
.gp-auth-benefits { margin: 42px 0 0; padding: 0; display: grid; gap: 0; list-style: none; }
.gp-auth-benefits li { padding: 19px 0; display: grid; grid-template-columns: 38px 1fr; gap: 14px; border-top: 1px solid rgba(255,255,255,.16); }
.gp-auth-benefits li > span { color: #74e7b6; font-size: 12px; font-weight: 850; letter-spacing: .12em; }
.gp-auth-benefits strong, .gp-auth-benefits small { display: block; }
.gp-auth-benefits strong { font-size: 16px; }
.gp-auth-benefits small { margin-top: 5px; color: rgba(255,255,255,.62); font-size: 13px; line-height: 1.45; }
.gp-auth-card { width: 100%; max-width: 700px; justify-self: end; padding: 18px 34px 38px; border: 1px solid #e1e8e5; border-radius: 22px; background: #fff; box-shadow: 0 24px 70px rgba(6,31,51,.13); }
.gp-auth-tabs { margin: -2px -18px 34px; padding: 6px; display: grid; grid-template-columns: 1fr 1fr; gap: 6px; border-radius: 14px; background: #edf3f0; }
.gp-auth-tabs button { min-height: 54px; padding: 10px 16px; border: 0; border-radius: 10px; color: #53626e; background: transparent; font: inherit; font-size: 15px; font-weight: 800; cursor: pointer; }
.gp-auth-tabs button.is-active { color: var(--gp-ink); background: #fff; box-shadow: 0 4px 15px rgba(18,43,61,.08); }
.gp-auth-pane[hidden] { display: none !important; }
.gp-auth-pane { animation: gp-auth-in .22s ease both; }
@keyframes gp-auth-in { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: none; } }
.gp-auth-pane-heading { margin-bottom: 27px; }
.gp-auth-pane-heading .gp-kicker { margin-bottom: 11px; }
.gp-auth-pane-heading h2 { margin: 0; color: var(--gp-ink); font-size: clamp(32px,3vw,44px) !important; line-height: 1.05; letter-spacing: -.045em; }
.gp-auth-pane-heading > p:last-child { max-width: 560px; margin: 12px 0 0; color: var(--gp-muted); font-size: 15px; line-height: 1.55; }
.gp-auth-card .woocommerce-form-login,
.gp-auth-card .woocommerce-form-register { max-width: none; margin: 0 !important; padding: 0 !important; border: 0 !important; }
.gp-auth-card .form-row { margin: 0 0 17px !important; padding: 0 !important; }
.gp-auth-card .gp-sn-field { margin-bottom: 17px !important; }
.gp-auth-card .form-row label { display: block; margin: 0 0 7px; color: #172437; font-size: 13px; font-weight: 800; }
.gp-auth-card .optional { color: #81909a; font-weight: 500; }
.gp-auth-card input.input-text,
.gp-auth-card #user_sn { width: 100% !important; min-height: 52px; padding: 12px 14px !important; border: 1px solid #bdcbc6 !important; border-radius: 9px !important; color: var(--gp-ink); background: #fff; font: inherit; box-shadow: none !important; }
.gp-auth-card input.input-text:focus,
.gp-auth-card #user_sn:focus { border-color: var(--gp-green) !important; outline: 0; box-shadow: 0 0 0 3px rgba(25,169,107,.12) !important; }
.gp-auth-card .password-input { width: 100%; }
.gp-auth-card .show-password-input { top: 0 !important; right: 0 !important; min-width: 52px; min-height: 52px; }
.gp-auth-options { margin: 1px 0 22px; display: flex; align-items: center; justify-content: space-between; gap: 18px; color: #52616d; font-size: 13px; }
.gp-auth-options label { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; }
.gp-auth-options input { width: 17px; height: 17px; accent-color: var(--gp-green); }
.gp-auth-options a { color: #087c51; font-weight: 750; }
.gp-auth-card button[type="submit"] { width: 100%; min-height: 54px; margin: 0 !important; border: 0 !important; border-radius: 9px !important; color: #fff !important; background: var(--gp-green) !important; font-size: 15px !important; font-weight: 850 !important; }
.gp-auth-card button[type="submit"]:hover { background: #128d59 !important; }
.gp-auth-card .woocommerce-privacy-policy-text { margin: 5px 0 14px; color: #71808a; font-size: 12px; line-height: 1.55; }
.gp-auth-card .woocommerce-privacy-policy-text a,
.gp-auth-agreement a { color: #087c51; text-decoration: underline; text-underline-offset: 2px; }
.gp-auth-card #user_sn + br { display: none; }
.gp-sn-help { margin: -8px 0 15px; color: #71808a; font-size: 12px; line-height: 1.5; }
.gp-auth-agreement { margin: 8px 0 20px; display: grid; grid-template-columns: 18px 1fr; align-items: start; gap: 10px; color: #53626e; font-size: 13px; line-height: 1.5; cursor: pointer; }
.gp-auth-agreement input { width: 17px; height: 17px; margin: 2px 0 0; accent-color: var(--gp-green); }
.gp-auth-help { margin: 0 0 18px; color: var(--gp-muted); font-size: 13px; }
.woocommerce-account:not(.logged-in) .joinchat,
.woocommerce-account:not(.logged-in) .ht-ctc-chat,
.woocommerce-account:not(.logged-in) .e-contact-buttons { display: none !important; }
.woocommerce-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout a { color: #c73535; }
.gp-account-dashboard > header h2 { margin: 0; font-size: 46px; letter-spacing: -.045em; }
.gp-account-dashboard > header > p:last-child { color: var(--gp-muted); }
.gp-account-stats { margin-top: 28px; display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; }
.gp-account-stats > a { min-height: 210px; padding: 24px; display: flex; flex-direction: column; border: 1px solid var(--gp-line); border-radius: 16px; background: #fff; }
.gp-account-stats span { color: var(--gp-muted); }
.gp-account-stats strong { margin: 28px 0 auto; font-size: 37px; line-height: 1; }
.gp-account-stats b { margin-top: 24px; color: #08754b; }
.gp-account-recharge { margin-top: 18px; padding: 24px; display: flex; justify-content: space-between; align-items: center; gap: 24px; border-radius: 16px; background: #edf8f3; }
.gp-account-recharge h3 { margin: 0 0 6px; font-size: 24px; }
.gp-account-recharge p { margin: 0; color: var(--gp-muted); }
.woocommerce-account table.shop_table { border: 1px solid var(--gp-line) !important; border-radius: 14px !important; overflow: hidden; }
.woocommerce-account table.shop_table th, .woocommerce-account table.shop_table td { padding: 15px !important; }
.gp-checkout-device { margin: 24px 0; padding: 24px; border: 1px solid var(--gp-line); border-radius: 16px; background: #f7faf9; }
.gp-checkout-device h3 { margin: 0 0 20px; font-size: 27px; }
.gp-checkout-device select, .gp-checkout-device input { min-height: 50px; padding: 10px 12px; border: 1px solid #bdcbc6; border-radius: 8px; background: #fff; }
.gp-checkout-device a { color: #08754b; font-weight: 800; }

/* Unified recharge checkout. The payment and TUGE fields remain native; only
   their presentation is brought into the GlobalPlan visual system. */
.woocommerce-checkout { background: #f3f7f5; }
.woocommerce-checkout .page-header { display: none; }
.woocommerce-checkout .gp-main { min-height: 70vh; }
.woocommerce-checkout #content.site-main { width: min(1180px, calc(100% - 48px)); max-width: none; margin: 0 auto; padding: 58px 0 96px; }
.woocommerce-checkout .page-content,
.woocommerce-checkout .page-content > .elementor,
.woocommerce-checkout .page-content > .elementor > .e-con,
.woocommerce-checkout .page-content > .elementor > .e-con > .e-con-inner,
.woocommerce-checkout .elementor-widget-text-editor { width: 100%; max-width: none; padding: 0; }
.gp-checkout-intro { max-width: 760px; margin: 0 auto 10px; text-align: center; }
.gp-checkout-intro h1 { margin: 8px 0 12px; color: var(--gp-ink); font-size: clamp(42px,6vw,68px); line-height: 1; letter-spacing: -.05em; }
.gp-checkout-intro > p:last-child { max-width: 680px; margin: 0 auto; color: var(--gp-muted); font-size: 17px; line-height: 1.55; }
.gp-checkout-steps { margin-bottom: 24px; padding-bottom: 12px; }
.gp-order-steps .is-complete { color: #08754b; font-weight: 800; }
.gp-order-steps .is-complete b { background: var(--gp-mint); color: #08754b; }
.woocommerce-checkout .woocommerce-form-coupon-toggle { max-width: 740px; margin: 0 auto 20px; }
.woocommerce-checkout .woocommerce-info { padding: 15px 18px; border: 1px solid #d9e4e0; border-top: 0; border-radius: 12px; background: #fff; color: var(--gp-muted); }
.woocommerce-checkout .woocommerce-info:before { color: var(--gp-green); }
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info { padding: 18px 22px !important; }
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info:before { display: none !important; content: none !important; }
.woocommerce-checkout .woocommerce-form-coupon-toggle a { color: #08754b; font-weight: 800; }
/* Keep Woo's inline display:none and slideToggle in control of visibility. */
.woocommerce-checkout form.checkout_coupon { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 12px; width: 100%; max-width: 620px; box-sizing: border-box; margin: -8px auto 22px !important; padding: 20px !important; border: 1px solid var(--gp-line) !important; border-radius: 14px !important; background: #fff; }
.woocommerce-checkout form.checkout_coupon::before,
.woocommerce-checkout form.checkout_coupon::after,
.woocommerce-checkout form.checkout_coupon > .clear,
.woocommerce-checkout form.checkout_coupon br { display: none; }
.woocommerce-checkout form.checkout_coupon .form-row { float: none; clear: none; width: auto !important; min-width: 0; margin: 0 !important; padding: 0 !important; }
.woocommerce-checkout form.checkout_coupon .form-row-first { grid-column: 1; }
.woocommerce-checkout form.checkout_coupon .form-row-last { grid-column: 2; }
.woocommerce-checkout form.checkout_coupon #coupon_code { display: block; box-sizing: border-box; width: 100%; min-width: 0; height: 48px; min-height: 48px; margin: 0; padding: 11px 13px; border: 1px solid #bccbc6; border-radius: 9px; background: #fff; color: var(--gp-ink); font: inherit; font-size: 16px; line-height: 24px; }
.woocommerce-checkout form.checkout_coupon button[name="apply_coupon"] { display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; width: 100%; height: 48px; min-height: 48px; margin: 0; padding: 0 20px; border: 1px solid var(--gp-navy); border-radius: 9px; background: var(--gp-navy); color: #fff; box-shadow: none; font: inherit; font-weight: 700; line-height: 1.25; white-space: nowrap; cursor: pointer; }
.woocommerce-checkout form.checkout_coupon button[name="apply_coupon"]:hover { background: #123c60; border-color: #123c60; }
.woocommerce-checkout form.checkout_coupon #coupon_code:focus,
.woocommerce-checkout form.checkout_coupon button[name="apply_coupon"]:focus-visible { outline: 2px solid #08754b; outline-offset: 2px; }
.woocommerce-checkout form.checkout_coupon button[name="apply_coupon"]:disabled { opacity: .6; cursor: wait; }
.woocommerce-checkout form.checkout_coupon > .woocommerce-error,
.woocommerce-checkout form.checkout_coupon > .woocommerce-message,
.woocommerce-checkout form.checkout_coupon > .woocommerce-info { grid-column: 1 / -1; margin: 0 !important; overflow-wrap: anywhere; }
@media (max-width: 480px) {
  .woocommerce-checkout form.checkout_coupon { grid-template-columns: minmax(0, 1fr); padding: 16px !important; }
  .woocommerce-checkout form.checkout_coupon .form-row-last { grid-column: 1; }
}
.woocommerce-checkout form.checkout { display: grid; grid-template-columns: minmax(0,.9fr) minmax(420px,1.1fr); grid-template-rows: auto 1fr; gap: 0 24px; align-items: start; }
.woocommerce-checkout form.checkout > #customer_details { grid-column: 1; grid-row: 1 / span 2; width: 100%; margin: 0; padding: 30px; border: 1px solid var(--gp-line); border-radius: 20px; background: #fff; box-shadow: 0 16px 45px rgba(12,40,68,.055); }
.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2 { width: 100%; float: none; }
.woocommerce-checkout #customer_details .col-2:empty,
.woocommerce-checkout .woocommerce-shipping-fields:empty,
.woocommerce-checkout .woocommerce-additional-fields:has(.woocommerce-additional-fields__field-wrapper:empty) { display: none; }
.woocommerce-checkout .woocommerce-additional-fields:not(:has(.form-row)) { display: none !important; }
.woocommerce-checkout .woocommerce-billing-fields h3 { margin: 0 0 7px; font-size: 27px; }
.woocommerce-checkout .woocommerce-billing-fields h3:after { content: 'Your receipt and the bound device for this recharge.'; display: block; margin-top: 7px; color: var(--gp-muted); font-size: 13px; font-weight: 400; line-height: 1.45; }
.woocommerce-checkout .form-row { margin: 22px 0 0 !important; }
.woocommerce-checkout .form-row label { margin-bottom: 8px; display: block; color: #33404c; font-size: 13px; font-weight: 800; }
.woocommerce-checkout .input-text,
.woocommerce-checkout select { width: 100%; min-height: 52px; padding: 11px 13px; border: 1px solid #bccbc6; border-radius: 9px; background: #fff; color: var(--gp-ink); font: inherit; }
.woocommerce-checkout #billing_hotspot_field { margin-top: 26px !important; padding-top: 26px; border-top: 1px solid var(--gp-line); }
.woocommerce-checkout #billing_hotspot_field label:after { content: 'Choose which device receives this plan.'; display: block; margin-top: 5px; color: var(--gp-muted); font-size: 12px; font-weight: 400; }
.woocommerce-checkout #order_review_heading { grid-column: 2; grid-row: 1; margin: 0; padding: 26px 30px 12px; border: 1px solid var(--gp-line); border-bottom: 0; border-radius: 20px 20px 0 0; background: #fff; font-size: 27px; }
.woocommerce-checkout #order_review { grid-column: 2; grid-row: 2; padding: 0 30px 30px; border: 1px solid var(--gp-line); border-top: 0; border-radius: 0 0 20px 20px; background: #fff; box-shadow: 0 16px 45px rgba(12,40,68,.055); }
.woocommerce-checkout table.shop_table { margin: 0 0 22px !important; border: 0 !important; border-radius: 0 !important; border-collapse: collapse !important; }
.woocommerce-checkout table.shop_table th,
.woocommerce-checkout table.shop_table td { padding: 16px 8px !important; border-color: #e2e9e6 !important; }
.woocommerce-checkout table.shop_table thead th { color: var(--gp-muted); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }
.woocommerce-checkout .gp-checkout-plan-name { display: block; color: var(--gp-ink); font-size: 15px; font-weight: 850; }
.woocommerce-checkout td.product-name small { display: block; margin-top: 5px; color: var(--gp-muted); font-size: 12px; }
.woocommerce-checkout td.product-name .product-quantity { color: var(--gp-muted); font-size: 12px; }
.woocommerce-checkout dl.variation { margin: 9px 0 0; color: var(--gp-muted); font-size: 11px; }
.woocommerce-checkout dl.variation dt,
.woocommerce-checkout dl.variation dd,
.woocommerce-checkout dl.variation p { margin: 0; padding: 0; }
.woocommerce-checkout #payment { border-radius: 14px !important; background: #f1f6f4 !important; }
.gp-payment-heading { padding: 22px 22px 4px; }
.gp-payment-heading .gp-kicker { margin: 0 0 6px; font-size: 11px; }
.gp-payment-heading h3 { margin: 0; color: var(--gp-ink); font-size: 23px; }
.gp-payment-heading > p:last-child { margin: 7px 0 0; color: var(--gp-muted); font-size: 13px; }
.woocommerce-checkout #payment ul.payment_methods { padding: 14px 22px 22px !important; display: grid; gap: 10px; border-color: #dce6e2 !important; }
.woocommerce-checkout #payment ul.payment_methods li { padding: 15px !important; border: 1px solid #d7e2de; border-radius: 11px; background: #fff; }
.woocommerce-checkout #payment ul.payment_methods li:last-child { border-bottom: 1px solid #d7e2de; }
.woocommerce-checkout #payment ul.payment_methods > li > label { display: inline-flex; align-items: center; gap: 9px; color: var(--gp-ink); font-weight: 800; cursor: pointer; }
.woocommerce-checkout #payment ul.payment_methods input[type="radio"] { width: 18px; height: 18px; accent-color: var(--gp-green); }
.woocommerce-checkout #payment .payment_method_stripe img,
.woocommerce-checkout #payment .payment_method_ppcp-gateway img { width: auto; max-height: 26px; }
.woocommerce-checkout #payment div.payment_box { background: #fff !important; color: var(--gp-muted) !important; }
.woocommerce-checkout #payment div.payment_box:before { border-bottom-color: #fff !important; }
.woocommerce-checkout #payment .place-order { margin: 0 !important; padding: 22px !important; }
.woocommerce-checkout #place_order { width: 100%; min-height: 54px; border-radius: 9px !important; background: var(--gp-green) !important; color: #fff !important; font-weight: 850 !important; }
.woocommerce-checkout #place_order:hover { background: #108857 !important; }
.woocommerce-checkout #payment .woocommerce-error,
.woocommerce-checkout #payment .woocommerce-info { margin: 0 !important; padding: 18px !important; border: 1px solid #d7e2de; border-radius: 10px; background: #fff; font-size: 14px; line-height: 1.55; }
.woocommerce-checkout .ppc-button-wrapper { margin-top: 16px; }
.tax-product_cat .e-contact-buttons,
.single-product .e-contact-buttons,
.woocommerce-checkout .e-contact-buttons { display: none !important; }

/* Live TUGE device screen, presented in the preview site's visual system. */
body.page-id-130 { background: #f3f7f5; }
body.page-id-130 .page-header { display: none; }
body.page-id-130 #content.site-main { width: min(1180px, calc(100% - 48px)); max-width: none; margin: 0 auto; padding: 72px 0 96px; }
body.page-id-130 .page-content { width: 100%; }
.gp-live-data-intro { display: flex; align-items: end; justify-content: space-between; gap: 28px; margin: 0 0 34px; }
.gp-live-data-intro h1 { margin: 7px 0 9px; color: var(--gp-ink); font-size: clamp(48px, 6vw, 76px); line-height: .98; letter-spacing: -.045em; }
.gp-live-data-intro p:not(.gp-kicker) { max-width: 700px; margin: 0; color: var(--gp-muted); font-size: 20px; line-height: 1.55; }
.gp-live-data-intro .gp-button { flex: 0 0 auto; }
body.page-id-130 .tuge-device-container { max-width: none !important; margin: 0 !important; font-family: inherit !important; }
body.page-id-130 .tuge-sn-list { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px !important; margin-bottom: 24px !important; }
body.page-id-130 .tuge-sn-item,
body.page-id-130 .tuge-add-sn-form { overflow: hidden; margin: 0 !important; border: 1px solid #d7e2de !important; border-radius: 22px !important; background: #fff !important; box-shadow: 0 16px 40px rgba(12, 43, 65, .06) !important; }
body.page-id-130 .tuge-sn-card-header { min-height: 92px; padding: 22px 26px !important; background: var(--gp-navy) !important; color: #fff !important; }
body.page-id-130 .tuge-sn-card-title { color: inherit !important; font-size: 21px !important; font-weight: 800 !important; }
body.page-id-130 .tuge-sn-subtitle { color: rgba(255,255,255,.7) !important; font-size: 14px !important; }
body.page-id-130 .tuge-sn-badge { border: 0 !important; background: #dff6ed !important; color: #08754b !important; }
body.page-id-130 .tuge-sn-card-body { padding: 24px 26px 26px !important; }
body.page-id-130 .tuge-device-summary { margin-bottom: 20px !important; }
body.page-id-130 .tuge-sn-actions { align-items: center !important; gap: 16px !important; padding-top: 20px !important; border-top: 1px solid #e3ebe8 !important; }
body.page-id-130 .tuge-btn { min-height: 45px !important; padding: 11px 18px !important; border-radius: 10px !important; font-weight: 800 !important; }
body.page-id-130 .tuge-btn-primary,
body.page-id-130 .tuge-btn-query-orders { border-color: var(--gp-green) !important; background: var(--gp-green) !important; color: #fff !important; }
body.page-id-130 .tuge-btn-danger { border-color: #e6b2b2 !important; color: #bd3030 !important; }
body.page-id-130 .tuge-orders-result { padding: 0 26px 26px !important; border-top: 0 !important; background: #fff !important; }
body.page-id-130 .tuge-orders-head { padding: 22px 0 14px !important; border-top: 1px solid #e3ebe8 !important; }
body.page-id-130 .tuge-orders-section { padding: 19px !important; border: 1px solid #dfe8e5 !important; border-radius: 14px !important; background: #f7faf9 !important; }
body.page-id-130 .tuge-add-sn-form { margin-top: 24px !important; }
body.page-id-130 .tuge-add-sn-form .tuge-sn-card-header { background: #e9f6f1 !important; color: var(--gp-ink) !important; }
body.page-id-130 .tuge-form-control { min-height: 50px !important; border: 1px solid #bdcbc6 !important; border-radius: 9px !important; }

@media (max-width: 720px) {
  body.page-id-130 #content.site-main { width: min(100% - 32px, 1180px); padding: 48px 0 72px; }
  .gp-live-data-intro { align-items: stretch; flex-direction: column; margin-bottom: 26px; }
  .gp-live-data-intro h1 { font-size: 54px; }
  .gp-live-data-intro p:not(.gp-kicker) { font-size: 17px; }
  .gp-live-data-intro .gp-button { width: 100%; text-align: center; }
  body.page-id-130 .tuge-sn-list { grid-template-columns: 1fr; }
  body.page-id-130 .tuge-sn-actions { align-items: stretch !important; flex-direction: column !important; }
  body.page-id-130 .tuge-sn-actions-right { width: 100%; }
  body.page-id-130 .tuge-sn-actions-right .tuge-btn { flex: 1; }
}
.gp-field-note { margin: 8px 0 0; color: var(--gp-muted); font-size: 12px; line-height: 1.55; }

@media (max-width: 900px) {
  .gp-header { min-height: 70px; padding: 0 16px; grid-template-columns: minmax(0,1fr) auto auto; gap: 10px; }
  .gp-brand { min-width: 0; }
  .gp-brand-logo { width: 124px; }
  .gp-footer .gp-brand-logo { width: 124px; }
  .gp-menu { display: grid; place-items: center; }
  .gp-nav { display: none; position: absolute; z-index: 50; left: 0; right: 0; top: 100%; padding: 10px 18px 16px; background: #fff; flex-direction: column; gap: 0; border-top: 1px solid var(--gp-line); box-shadow: 0 18px 35px rgba(8,28,42,.16); }
  .gp-nav.is-open { display: flex; }
  .gp-nav a { padding: 14px 4px; border-bottom: 1px solid #edf0f1; }
  .gp-mobile-only { display: block; }
  .gp-header-actions > a:first-child { display: none; }
  .gp-pill { padding: 9px 12px; }
  .gp-hero { min-height: 0; padding: 0 22px 54px; display: block; }
  .gp-hero-scene {
    position: relative;
    inset: auto;
    width: calc(100% + 44px);
    margin: 0 -22px;
    aspect-ratio: 16/9;
    background-size: 185% auto;
    background-position: 76% 52%;
  }
  .gp-hero-scene:after { content: ''; position: absolute; inset: 55% 0 0; background: linear-gradient(0deg,#03111d,rgba(3,17,29,0)); }
  .gp-hero-shade { display: none; }
  .gp-hero-content { width: 100%; max-width: 100%; padding-top: 34px; }
  .gp-buttons { display: grid; grid-template-columns: 1fr; }
  .gp-section { padding: 75px 22px; }
  .gp-section-heading { display: block; }
  .gp-section-heading p { margin-top: 16px; }
  .gp-categories { grid-template-columns: 1fr; }
  .gp-category { min-height: 320px; }
  .gp-how { grid-template-columns: 1fr; gap: 28px; }
  .gp-support { padding: 55px 22px; display: block; }
  .gp-support-actions { margin-top: 30px; align-items: flex-start; }
  .gp-footer { grid-template-columns: 1fr; padding: 45px 22px; }
  .gp-footer .gp-brand { grid-row: auto; }
  .gp-footer small { grid-column: auto; }
  .gp-catalog-hero { min-height: auto; padding: 42px 22px; display: grid; gap: 28px; }
  .gp-catalog-hero figure { width: 100%; height: 220px; margin: 0; flex-basis: auto; }
  .gp-order-steps { justify-content: flex-start; overflow-x: auto; }
  .gp-duration-tabs { width: calc(100% - 36px); max-width: none; justify-content: flex-start; }
  .gp-duration-tabs a { min-width: 118px; padding: 12px 10px; }
  .gp-catalog-picker { margin-left: 18px; margin-right: 18px; grid-template-columns: 1fr; }
  .gp-coverage-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .tax-product_cat ul.products { grid-template-columns: repeat(2,minmax(0,1fr)); padding-left: 18px !important; padding-right: 18px !important; }
  .woocommerce-account .woocommerce { grid-template-columns: 1fr; }
  .gp-data-heading { display: block; }
  .gp-data-heading .gp-button { margin-top: 22px; }
  .gp-device-status > div, .gp-plan-panels { grid-template-columns: 1fr; }
  .gp-product-detail { grid-template-columns: 1fr; }
  .gp-single-wrap > .gp-order-steps { justify-content: flex-start; }
  .gp-auth-page { min-height: 0; padding: 46px 28px 66px; grid-template-columns: 1fr; gap: 30px; background: #f4f7f6; }
  .gp-auth-intro-panel { max-width: none; padding: 34px; border-radius: 20px; background: linear-gradient(135deg,#0b2945,#0d3b4c); }
  .gp-auth-intro-panel h1 { max-width: 680px; font-size: clamp(43px,8vw,64px); }
  .gp-auth-intro-copy { max-width: 680px; }
  .gp-auth-benefits { grid-template-columns: repeat(3,1fr); gap: 14px; }
  .gp-auth-benefits li { padding: 16px 0 0; grid-template-columns: 30px 1fr; }
  .gp-auth-card { max-width: none; justify-self: stretch; }
  .gp-account-stats { grid-template-columns: 1fr 1fr; }
  .gp-account-recharge { align-items: flex-start; flex-direction: column; }
  .woocommerce-checkout form.checkout { grid-template-columns: 1fr; grid-template-rows: auto; gap: 20px; }
  .woocommerce-checkout form.checkout > #customer_details,
  .woocommerce-checkout #order_review_heading,
  .woocommerce-checkout #order_review { grid-column: 1; grid-row: auto; }
  .woocommerce-checkout #order_review_heading { margin-bottom: -20px; }
}

@media (max-width: 560px) {
  .gp-announcement { padding: 9px 12px; font-size: 13px; }
  .gp-brand-logo { width: 100px; }
  .gp-footer .gp-brand-logo { width: 100px; }
  .gp-header-actions { font-size: 11px; }
  .gp-pill { padding: 8px 10px; }
  .gp-hero { padding: 0 20px 52px; }
  .gp-hero-scene {
    width: calc(100% + 40px);
    margin: 0 -20px;
    aspect-ratio: 16/9;
    background-size: 195% auto;
    background-position: 76% 52%;
  }
  .gp-hero h1 { font-size: 44px; overflow-wrap: anywhere; }
  .gp-hero-text { margin: 22px 0; font-size: 16px; }
  .gp-trust { display: grid; grid-template-columns: 1fr; gap: 9px; margin-top: 24px; }
  .gp-section h2, .gp-support h2 { font-size: 36px; }
  .gp-category h3 { font-size: 31px; }
  .gp-footer-links { flex-wrap: wrap; }
  .gp-auth-page { padding: 22px 14px 50px; gap: 16px; }
  .gp-auth-intro-panel { padding: 18px 20px 20px; border-radius: 15px; }
  .gp-auth-intro-panel .gp-kicker { margin-bottom: 8px; font-size: 9px; }
  .gp-auth-intro-panel h1 { max-width: 320px; font-size: 29px; line-height: 1.04; letter-spacing: -.04em; }
  .gp-auth-intro-copy { display: none; }
  .gp-auth-benefits { display: none; }
  .gp-auth-card { padding: 12px 18px 27px; border-radius: 16px; }
  .gp-auth-tabs { margin: 0 -7px 20px; }
  .gp-auth-tabs button { min-height: 44px; padding: 7px; font-size: 13px; }
  .gp-auth-pane-heading { margin-bottom: 20px; }
  .gp-auth-pane-heading h2 { font-size: 28px !important; }
  .gp-auth-pane-heading > p:last-child { font-size: 13px; }
  .gp-register-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
  .gp-auth-card .form-row { margin-bottom: 13px !important; }
  .gp-auth-card .form-row label { margin-bottom: 5px; font-size: 12px; }
  .gp-auth-card input.input-text, .gp-auth-card #user_sn { min-height: 48px; padding: 10px 12px !important; }
  .gp-auth-card .show-password-input { min-height: 48px; }
  .gp-auth-options { align-items: flex-start; flex-direction: column; gap: 12px; }
  .gp-catalog-hero h1 { font-size: 44px; }
  .gp-region-hero-caption strong { font-size: 19px; }
.gp-coverage-modal { padding: 10px; }
.gp-coverage-dialog { max-height: calc(100dvh - 20px); padding: 0; border-radius: 20px; }
.gp-coverage-visual,.gp-coverage-visual-copy { min-height: 220px; }
.gp-coverage-visual-copy { padding: 56px 62px 24px 20px; }
.gp-coverage-dialog h2 { font-size: 32px; }
.gp-coverage-body { padding: 22px 18px 24px; }
.gp-coverage-dialog-head h3 { margin-bottom: 16px; font-size: 24px; }
.gp-coverage-grid { grid-template-columns: 1fr 1fr; gap: 7px; }
.gp-coverage-grid span { padding: 10px; font-size: 12px; }
  .gp-order-steps i { display: none; }
  .gp-order-steps { width: 100%; padding: 24px 18px 18px; display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; overflow: visible; }
  .gp-order-steps span { min-width: 0; align-items: flex-start; white-space: normal; font-size: 10px; line-height: 1.3; }
  .gp-order-steps b { width: 23px; height: 23px; flex: 0 0 23px; }
  .gp-duration-tabs { width: calc(100% - 36px); padding: 5px; display: grid; grid-template-columns: 1fr 1fr; gap: 5px; overflow: visible; }
  .gp-duration-tabs a { min-width: 0; padding: 11px 7px; font-size: 13px; }
  .gp-duration-tabs a small { margin-left: 4px; }
  .gp-plan-header { width: calc(100% - 36px); margin-top: 50px; padding-bottom: 20px; display: block; }
  .gp-plan-header h2 { font-size: 36px; }
  .gp-plan-header > p { margin-top: 11px; font-size: 13px; }
  .gp-plan-group { padding-top: 44px; }
  .gp-plan-group-heading { width: calc(100% - 36px); display: block; }
  .gp-plan-group-heading h3 { font-size: 32px; }
  .gp-plan-group-heading p { margin-top: 9px; font-size: 13px; }
  .tax-product_cat ul.products { grid-template-columns: minmax(0, 1fr); }
  .tax-product_cat ul.products li.product { padding: 18px !important; border-radius: 14px; }
  .gp-plan-card-top { height: 124px; margin: 0 0 18px; }
  .gp-card-flag { width: 40px !important; height: 30px !important; }
	.gp-plan-card-country { height: auto; min-height: 68px; margin: 0 0 14px; padding: 12px 14px; }
	.gp-plan-card-country .gp-card-flag { width: 64px !important; height: 44px !important; }
	.gp-plan-card--regional .gp-plan-card-region { height: 112px; margin-bottom: 14px; }
	.gp-plan-card-usa-head { min-height: 64px; display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 8px 10px; }
	.gp-plan-card-usa-head .gp-card-flag { width: 48px !important; height: 34px !important; }
	.gp-plan-card-usa-head .gp-card-country-name { min-width: 0; white-space: normal; }
	.gp-plan-card-usa-head .gp-free-pill { grid-column: 2; justify-self: start; margin-left: 0; padding: 6px 9px; font-size: 11px; }
  .gp-card-country-name { font-size: 16px; }
  .gp-plan-card-country + .gp-plan-label { margin-top: 0; }
  .gp-plan-label { margin: 13px 0 4px; font-size: 9px; }
  .gp-plan-card h2 { margin-bottom: 14px !important; font-size: 34px !important; }
  .gp-card-coverage { margin: 8px 0; padding: 9px 10px; gap: 12px; }
  .gp-card-coverage strong { font-size: 13px; }
  .gp-card-row { padding: 11px 0; }
  .gp-card-row > span { font-size: 13px; }
  .gp-card-price strong { font-size: 22px; }
  .gp-select-plan { min-height: 46px; margin-top: 8px; padding: 12px; }
  .woocommerce-account .woocommerce-MyAccount-content { padding: 22px; }
  .gp-data-login { padding: 30px 24px; }
  .gp-preview-note { align-items: flex-start; flex-direction: column; }
  .gp-device-card { padding: 22px; }
  .gp-device-title { align-items: flex-start; flex-direction: column; }
  .gp-device-title h2 { font-size: 31px; }
  .gp-device-meters { grid-template-columns: 1fr; }
  .gp-device-meters article { min-height: 185px; }
  .gp-product-summary-card, .gp-product-order { padding: 25px !important; }
  .gp-product-order h2 { font-size: 32px; }
  .gp-product-order .tuge-timezone-row,
  .gp-product-order .tuge-activation-date-field { grid-template-columns: 1fr; gap: 7px !important; }
  .single-product .gp-single-wrap { padding: 24px 14px 60px; }
  .single-product .gp-back-link { margin-left: 5px; }
  .single-product .gp-product-summary-compact { padding: 22px !important; border-radius: 18px 18px 0 0; }
  .single-product .gp-product-summary-compact .gp-product-identity img { width: 48px; height: 36px; }
  .single-product .gp-product-summary-compact h1 { margin: 18px 0 20px; font-size: 34px; }
  .single-product .gp-product-summary-compact .gp-product-facts { grid-template-columns: 1fr; }
  .single-product .gp-product-summary-compact .gp-product-facts > div { padding: 11px 0; display: flex; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.14); }
  .single-product .gp-product-summary-compact .gp-product-facts > div:last-child { border-bottom: 0; }
  .single-product .gp-product-summary-compact .gp-product-facts strong { text-align: right; }
  .single-product .gp-product-order { padding: 22px !important; border-radius: 0 0 18px 18px; }
  .gp-product-wizard-step h2 { font-size: 34px; }
  .gp-date-only-field { padding: 16px; }
  .gp-product-device-option { grid-template-columns: auto 42px minmax(0,1fr); gap: 10px; }
  .gp-product-device-option em { grid-column: 3; justify-self: start; }
  .gp-device-model { width: 42px; height: 42px; }
  .gp-wizard-actions { grid-template-columns: 1fr; }
  .gp-wizard-actions .gp-wizard-primary,
  .gp-wizard-actions .gp-wizard-back { width: 100%; }
  .gp-account-stats { grid-template-columns: 1fr; }
  .gp-account-stats > a { min-height: 175px; }
  .woocommerce-checkout #content.site-main { width: calc(100% - 28px); padding: 30px 0 64px; }
  .gp-checkout-intro { text-align: left; }
  .gp-checkout-intro h1 { font-size: 36px; line-height: 1.04; letter-spacing: -.04em; }
  .gp-checkout-intro > p:last-child { font-size: 15px; }
  .woocommerce-checkout form.checkout > #customer_details,
  .woocommerce-checkout #order_review { padding: 18px; }
  .woocommerce-checkout #order_review_heading { padding: 20px 18px 8px; }
  .woocommerce-checkout .gp-checkout-steps {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 8px !important;
    margin: 20px 0 18px;
    padding: 0 !important;
  }
  .woocommerce-checkout .gp-checkout-steps > span {
    display: grid !important;
    grid-template-columns: 1fr !important;
    justify-items: center;
    align-content: start;
    gap: 6px;
    min-width: 0;
    text-align: center;
    font-size: 11px;
    line-height: 1.25;
  }
  .woocommerce-checkout .gp-checkout-steps > span b { grid-row: auto; }
  .woocommerce-checkout .gp-checkout-steps > i { display: none !important; }
  .woocommerce-checkout .form-row { margin-top: 16px !important; }
  .woocommerce-checkout .input-text,
  .woocommerce-checkout select { min-height: 48px; }
  .woocommerce-checkout #billing_hotspot_field { margin-top: 20px !important; padding-top: 20px; }
  .woocommerce-checkout table.shop_table th,
  .woocommerce-checkout table.shop_table td { padding: 13px 6px !important; }
  .woocommerce-checkout .gp-payment-heading { padding: 18px 16px 4px; }
  .woocommerce-checkout #payment ul.payment_methods { padding: 12px 16px 18px !important; }
  .woocommerce-checkout #payment .place-order { padding: 18px 16px !important; }
}

/* Woo renders .payment_methods only when payment is required. A zero-total
   claim has no gateway list but still needs its native place-order button. */
.woocommerce-checkout #payment:has(.payment_methods):not(:has(.wc_payment_method)) .place-order { display: none; }

/* Wallet visibility belongs to the gateway. Do not force its hidden/loading
   containers, attribution inputs, or OR separator to display. */
.woocommerce-checkout .woocommerce-notices-wrapper > .woocommerce-message { display: none !important; }
.woocommerce-checkout .gp-checkout-express { width: 100%; min-width: 0; }
.woocommerce-checkout .gp-checkout-express.is-ready { margin: 4px 0 20px; }
.woocommerce-checkout .gp-checkout-express.is-checking { margin: 4px 0 16px; }
.woocommerce-checkout .gp-checkout-express-status { margin: 0; padding: 10px 12px; border-radius: 8px; background: #f1f7f4; color: var(--gp-muted); font-size: 13px; line-height: 1.5; }
.woocommerce-checkout .gp-checkout-express-status[hidden] { display: none; }
.woocommerce-checkout .gp-checkout-express-title { margin: 0 0 12px; font-size: 16px; font-weight: 700; color: var(--gp-ink); }
.woocommerce-checkout .gp-checkout-express-title[hidden] { display: none; }
.woocommerce-checkout .gp-checkout-express #wc-stripe-express-checkout-element { width: 100%; margin-top: 0 !important; }
.woocommerce-checkout .gp-checkout-express #wc-stripe-express-checkout-button-separator { margin: 14px 0 0 !important; color: var(--gp-muted); font-size: 12px; text-align: center; }

.woocommerce-checkout #content.site-main { padding-top: 42px; }
.gp-checkout-intro { max-width: 820px; margin-bottom: 4px; }
.gp-checkout-intro h1 { font-size: clamp(42px, 5.2vw, 62px); }
.gp-checkout-steps { max-width: 720px; margin: 8px auto 22px; padding: 22px 0 10px; }
.woocommerce-checkout .woocommerce-form-coupon-toggle { max-width: 620px; margin-bottom: 24px; }
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info { padding: 15px 20px !important; text-align: center; }
.woocommerce-checkout form.checkout { grid-template-columns: minmax(0, .82fr) minmax(430px, 1.18fr); gap: 24px; }
.woocommerce-checkout form.checkout > #customer_details { padding: 26px; border-radius: 18px; }
.woocommerce-checkout .woocommerce-billing-fields h3,
.woocommerce-checkout #order_review_heading { font-size: 25px; }
.woocommerce-checkout .woocommerce-billing-fields h3:after { content: 'Confirm the email receipt and the device receiving this recharge.'; }
.woocommerce-checkout .form-row { margin-top: 18px !important; }
.woocommerce-checkout #billing_hotspot_field { margin-top: 20px !important; padding-top: 20px; }
.woocommerce-checkout #order_review_heading { padding: 24px 26px 10px; border-radius: 18px 18px 0 0; }
.woocommerce-checkout #order_review { padding: 0 26px 26px; border-radius: 0 0 18px 18px; }
.woocommerce-checkout table.shop_table th,
.woocommerce-checkout table.shop_table td { padding: 14px 7px !important; }
.woocommerce-checkout #payment { overflow: hidden; }
.gp-payment-heading { padding: 20px 20px 2px; }
.woocommerce-checkout #payment ul.payment_methods { padding: 12px 20px 18px !important; gap: 8px; }
.woocommerce-checkout #payment ul.payment_methods li { padding: 13px 14px !important; }
.woocommerce-checkout #payment div.payment_box { margin: 11px 0 0 !important; padding: 13px !important; font-size: 13px; line-height: 1.45; }
.woocommerce-checkout #payment .place-order { padding: 18px 20px 20px !important; }
.woocommerce-checkout #payment .woocommerce-privacy-policy-text { color: var(--gp-muted); font-size: 12px; line-height: 1.5; }

/* Native fieldsets must not add a second framed card around Stripe Elements. */
.woocommerce-checkout #payment fieldset { min-width: 0; width: 100%; margin: 0; padding: 0; border: 0; box-shadow: none; background: transparent; }
.woocommerce-checkout #payment div.payment_box { padding: 0 !important; }
.woocommerce-checkout #payment div.payment_box:before { display: none; }
.woocommerce-checkout #payment .woocommerce-SavedPaymentMethods-saveNew { display: flex; align-items: flex-start; gap: 9px; margin-top: 14px !important; }
.woocommerce-checkout #payment .woocommerce-SavedPaymentMethods-saveNew input { flex: 0 0 auto; margin: 3px 0 0; width: 16px; height: 16px; }
.woocommerce-checkout #payment .woocommerce-SavedPaymentMethods-saveNew label { display: block; margin: 0; color: var(--gp-muted); font-size: 12px; font-weight: 400; line-height: 1.5; }
.woocommerce-checkout #payment ul.payment_methods > li > input[type="radio"] { vertical-align: middle; margin: 0 8px 0 0; }
.woocommerce-checkout #payment ul.payment_methods > li > label { font-size: 15px; line-height: 1.45; vertical-align: middle; }
.woocommerce-checkout .gp-payment-heading { padding: 0 0 12px; }
.woocommerce-checkout .gp-payment-heading h3 { font-size: 20px; }
.woocommerce-checkout #order_review_heading { margin-bottom: -24px; }
.woocommerce-checkout table.shop_table th,
.woocommerce-checkout table.shop_table td { border: 0 !important; background: transparent !important; text-align: left; }
.woocommerce-checkout table.shop_table tr { border-bottom: 1px solid var(--gp-line); }
.woocommerce-checkout table.shop_table tr:last-child { border-bottom: 0; }
.woocommerce-checkout table.shop_table th:last-child,
.woocommerce-checkout table.shop_table td:last-child { text-align: right; }
.woocommerce-checkout table.shop_table .order-total { color: var(--gp-ink); font-size: 18px; }
.woocommerce-checkout .gp-checkout-steps > :not(span) { display: none !important; }
.woocommerce-checkout .gp-checkout-steps { display: grid !important; grid-template-columns: repeat(3,minmax(0,1fr)) !important; gap: 12px; }
.woocommerce-checkout .gp-checkout-steps > span { grid-row: 1; justify-content: center; }
.woocommerce-checkout .gp-checkout-steps > span:nth-of-type(1) { grid-column: 1; }
.woocommerce-checkout .gp-checkout-steps > span:nth-of-type(2) { grid-column: 2; }
.woocommerce-checkout .gp-checkout-steps > span:nth-of-type(3) { grid-column: 3; }

@media (max-width: 760px) {
  .woocommerce-checkout { overflow-x: hidden; }
  .woocommerce-checkout #content.site-main { width: calc(100% - 24px); padding-top: 24px; }
  .gp-checkout-intro h1 { font-size: 30px; line-height: 1.15; }
  .gp-checkout-intro > p:last-child { font-size: 14px; line-height: 1.45; }
  .woocommerce-checkout .gp-checkout-steps { margin: 16px 0; }
  .woocommerce-checkout .woocommerce-form-coupon-toggle { margin-bottom: 16px; }
  .woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info { padding: 13px 14px !important; font-size: 13px; }
  .woocommerce-checkout form.checkout {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: auto !important;
    gap: 16px;
  }
  .woocommerce-checkout form.checkout > #customer_details,
  .woocommerce-checkout #order_review_heading,
  .woocommerce-checkout #order_review {
    grid-column: 1 !important;
    grid-row: auto !important;
    max-width: 100%;
  }
  .woocommerce-checkout form.checkout > #customer_details,
  .woocommerce-checkout #order_review { padding: 16px; }
  .woocommerce-checkout #order_review_heading { padding: 18px 16px 7px; margin-bottom: -16px; }
  .woocommerce-checkout .woocommerce-billing-fields h3,
  .woocommerce-checkout #order_review_heading { font-size: 23px; }
  .woocommerce-checkout .input-text,
  .woocommerce-checkout select { min-height: 46px; }
  .woocommerce-checkout table.shop_table th,
  .woocommerce-checkout table.shop_table td { padding: 12px 5px !important; }
  .gp-payment-heading h3 { font-size: 21px; }
  .woocommerce-checkout #payment ul.payment_methods li { padding: 12px !important; }
  .woocommerce-checkout #payment .place-order { padding: 16px !important; }
  .woocommerce-checkout #place_order { min-height: 50px; }
  .woocommerce-checkout form.checkout,
  .woocommerce-checkout form.checkout > #customer_details,
  .woocommerce-checkout #order_review,
  .woocommerce-checkout #payment { width: 100%; min-width: 0; }
  .woocommerce-checkout table.shop_table { width: 100%; table-layout: fixed; }
  .woocommerce-checkout table.shop_table th:first-child,
  .woocommerce-checkout table.shop_table td:first-child { width: 66%; overflow-wrap: anywhere; }
  .woocommerce-checkout #payment ul.payment_methods > li > label { max-width: calc(100% - 30px); flex-wrap: wrap; }
  .woocommerce-checkout #payment ul.payment_methods { padding: 12px !important; }
  .woocommerce-checkout .gp-payment-heading { padding: 0 0 10px; }
  .woocommerce-checkout #order_review_heading { margin-bottom: -16px; }
  .woocommerce-checkout #billing_hotspot_field { margin-top: 16px !important; padding-top: 16px; }
  .woocommerce-checkout .gp-footer { padding-top: 30px; padding-bottom: 30px; }
}

/* Keep the live dashboards ahead of earlier compatibility rules. */
.gp-account-page .gp-account-stats { margin-top: 24px; grid-template-columns: 1fr 1fr; gap: 14px; }
.gp-account-page .gp-account-stats > a { min-height: 190px; padding: 24px; border-radius: 18px; }
.gp-account-page .gp-account-stats > a:nth-child(3) { grid-column: 1/-1; min-height: 128px; display: grid; grid-template-columns: minmax(0,1fr) auto; grid-template-rows: auto auto; align-items: center; }
.gp-account-page .gp-account-stats > a:nth-child(3) span,
.gp-account-page .gp-account-stats > a:nth-child(3) strong { grid-column: 1; }
.gp-account-page .gp-account-stats > a:nth-child(3) b { grid-column: 2; grid-row: 1/3; align-self: center; }
.gp-account-page .gp-account-recharge { margin-top: 14px; padding: 22px 24px; border-radius: 18px; background: var(--gp-navy); color: #fff; }
.gp-account-page .gp-account-recharge h3 { color: #fff; }
.gp-account-page .gp-account-recharge p { color: #c4d3de; }

@media (max-width: 560px) {
  .gp-account-page .gp-account-stats { grid-template-columns: 1fr 1fr; gap: 10px; }
  .gp-account-page .gp-account-stats > a { min-height: 150px; padding: 18px; }
  .gp-account-page .gp-account-stats > a:nth-child(3) { min-height: 104px; }
  .gp-live-data-dashboard .gp-device-meters { grid-template-columns: 1fr 1fr; }
  .gp-live-data-dashboard .gp-device-meters article { min-height: 190px; padding: 17px; }
}

/* Instant navigation inside the customer account. */
.gp-account-content {
  transition: opacity .16s ease, transform .16s ease;
}
.gp-account-content.is-leaving {
  opacity: 0;
  transform: translateY(5px);
}
.gp-account-content.is-entering {
  animation: gpAccountEnter .2s ease both;
}
.gp-account-page.is-account-loading .gp-account-menu nav a {
  pointer-events: none;
}
.gp-account-page.is-account-loading .gp-account-content {
  cursor: progress;
}
.gp-account-ajax-status {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}
.gp-account-device-panel .gp-live-data-dashboard,
.gp-account-device-panel .gp-data-dashboard {
  width: 100%;
  margin: 0;
  padding: 0;
}
.gp-account-device-panel .gp-data-heading {
  margin-top: 0;
}
@keyframes gpAccountEnter {
  from { opacity: 0; transform: translateY(7px); }
  to { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  .gp-account-content { transition: none; }
  .gp-account-content.is-entering { animation: none; }
}

/* Device actions open immediately in a modal instead of extending the page. */
body.gp-device-modal-open { overflow: hidden; }
.gp-device-management,
.gp-device-management[hidden] {
  position: fixed;
  inset: 0;
  z-index: 1000;
  margin: 0;
  padding: 22px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  opacity: 0;
  visibility: hidden;
  transition: opacity .18s ease, visibility .18s ease;
}
.gp-device-management[hidden] { display: none !important; }
.gp-device-management.is-open {
  opacity: 1;
  visibility: visible;
}
.gp-device-management-backdrop {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  appearance: none !important;
  border-radius: 0 !important;
  background: rgba(5, 20, 33, .68) !important;
  box-shadow: none !important;
  color: transparent !important;
  font-size: 0 !important;
  backdrop-filter: blur(5px);
  cursor: default;
}
.gp-device-management-backdrop:hover,
.gp-device-management-backdrop:focus,
.gp-device-management-backdrop:active { background: rgba(5, 20, 33, .68) !important; }
.gp-device-management-dialog {
  position: relative;
  z-index: 1;
  width: min(680px, 100%);
  max-height: min(86vh, 760px);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  overflow: hidden;
  border: 1px solid var(--gp-line);
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 30px 90px rgba(3, 22, 37, .28);
  transform: translateY(12px) scale(.985);
  transition: transform .18s ease;
}
.gp-device-management.is-open .gp-device-management-dialog {
  transform: translateY(0) scale(1);
}
.gp-device-management-dialog > header {
  margin: 0;
  padding: 22px 24px 17px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid var(--gp-line);
}
.gp-device-management-dialog > header h2 {
  margin: 4px 0 0;
  font-size: 28px;
}
.gp-device-management-close {
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  padding: 0;
  border: 1px solid var(--gp-line);
  border-radius: 50%;
  background: #fff;
  color: var(--gp-ink);
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
}
.gp-device-management-body {
  min-height: 0;
  padding: 20px 24px 25px;
  overflow: auto;
  overscroll-behavior: contain;
}
.gp-device-management-body .tuge-device-container {
  display: block !important;
  padding: 0 !important;
}
.gp-device-management[data-mode="rename"] .tuge-device-container,
.gp-device-management[data-mode="remove"] .tuge-device-container { display: none !important; }
.gp-manage-device-wrap {
  position: relative;
  flex: 0 0 auto;
}
.gp-manage-menu[hidden] { display: none !important; }
.gp-manage-menu-title { display: none; }
.gp-manage-menu {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  z-index: 30;
  width: 190px;
  padding: 8px;
  border: 1px solid var(--gp-line);
  border-radius: 13px;
  background: #fff;
  box-shadow: 0 16px 42px rgba(6, 29, 47, .16);
}
.gp-manage-menu button {
  width: 100%;
  padding: 12px 13px;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: var(--gp-green-dark, #08754b);
  font: inherit;
  font-weight: 800;
  text-align: left;
  cursor: pointer;
}
.gp-manage-menu button:hover,
.gp-manage-menu button:focus-visible { background: #eef8f4; outline: none; }
.gp-manage-menu button.is-danger { color: #c93636; }
.gp-manage-menu button.is-danger:hover,
.gp-manage-menu button.is-danger:focus-visible { background: #fff2f2; }
.gp-device-management[data-mode="rename"] .gp-device-management-dialog,
.gp-device-management[data-mode="remove"] .gp-device-management-dialog { width: min(520px, 100%); }
.gp-device-management[data-mode="add"] .tuge-add-sn-form {
  margin: 0 !important;
  overflow: visible !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.gp-device-management[data-mode="add"] .tuge-add-sn-form .tuge-sn-card-header { display: none !important; }
.gp-device-management[data-mode="add"] .tuge-add-sn-form .tuge-sn-card-body { padding: 2px 0 0 !important; }
.gp-device-management-custom[hidden] { display: none !important; }
.gp-device-quick-form label {
  display: block;
  margin-bottom: 9px;
  color: var(--gp-ink);
  font-size: 15px;
  font-weight: 850;
}
.gp-device-quick-form input {
  width: 100%;
  min-height: 54px;
  padding: 0 15px;
  border: 1px solid #b9ccc5;
  border-radius: 11px;
  background: #fff;
  color: var(--gp-ink);
  font: inherit;
  font-weight: 700;
}
.gp-device-quick-form input:focus {
  border-color: var(--gp-green);
  outline: 3px solid rgba(25, 174, 111, .14);
}
.gp-device-form-note,
.gp-device-remove-confirm > p {
  margin: 10px 0 0;
  color: var(--gp-muted);
  line-height: 1.55;
}
.gp-device-form-message {
  min-height: 22px;
  margin: 10px 0 0;
  color: #b72d2d;
  font-size: 14px;
  font-weight: 700;
}
.gp-device-form-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 15px;
}
.gp-device-form-actions .gp-button { min-width: 130px; }
.gp-button-danger {
  border: 1px solid #d94a4a;
  background: #d33b3b;
  color: #fff;
}
.gp-button-danger:hover { background: #b92f2f; }
.gp-device-warning {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #fff0f0;
  color: #c93636;
  font-size: 25px;
  font-weight: 900;
}
.gp-device-remove-confirm h3 {
  margin: 16px 0 0;
  color: var(--gp-ink);
  font-size: 24px;
}
.gp-live-data-dashboard .gp-data-heading { margin-bottom: 20px; }
.gp-live-data-dashboard .gp-device-toolbar { margin-bottom: 16px; }
.gp-live-data-dashboard .gp-device-card { padding: 24px; }
.gp-live-data-dashboard .gp-device-meters { margin-top: 20px; }
.gp-live-data-dashboard .gp-device-meters article { min-height: 178px; }

@media (max-width: 900px) {
  body.page-id-130 #content.site-main { padding-top: 26px; }
  .gp-device-toolbar-action {
    width: auto;
    min-width: 128px;
    padding: 0 14px;
    overflow: visible;
    font-size: 13px;
    white-space: nowrap;
  }
  .gp-device-toolbar-action:before { margin-right: 7px; }
  .gp-live-data-dashboard .gp-device-card { padding: 18px; }
  .gp-live-data-dashboard .gp-device-meters article { min-height: 168px; }
}

@media (max-width: 560px) {
  .gp-device-management,
  .gp-device-management[hidden] {
    padding: 18px;
    place-items: center;
  }
  .gp-device-management-dialog {
    width: min(100%, 560px);
    max-height: 86dvh;
    border-width: 1px;
    border-radius: 20px;
    transform: translateY(12px) scale(.985);
  }
  .gp-device-management-dialog > header { padding: 18px 18px 14px; }
  .gp-device-management-dialog > header h2 { font-size: 25px; }
  .gp-device-management-body { padding: 15px 16px max(22px, env(safe-area-inset-bottom)); }
  body.gp-manage-menu-open { overflow: hidden; }
  body.gp-manage-menu-open:before {
    content: '';
    position: fixed;
    inset: 0;
    z-index: 999;
    background: rgba(5, 20, 33, .68);
    backdrop-filter: blur(4px);
  }
  .gp-manage-menu {
    position: fixed;
    top: 50%;
    left: 50%;
    right: auto;
    z-index: 1001;
    width: min(320px, calc(100vw - 36px));
    padding: 14px;
    border-radius: 18px;
    transform: translate(-50%, -50%);
  }
  .gp-manage-menu-title {
    display: block;
    padding: 7px 12px 12px;
    border-bottom: 1px solid var(--gp-line);
    color: var(--gp-ink);
    font-size: 18px;
    font-weight: 850;
  }
  .gp-manage-menu button { min-height: 54px; padding: 14px 12px; font-size: 16px; }
  .gp-device-form-actions { flex-direction: column-reverse; }
  .gp-device-form-actions .gp-button { width: 100%; }
  .gp-device-toolbar { grid-template-columns: minmax(0, 1fr) auto; }
  .gp-device-toolbar-action { min-width: 118px; padding: 0 11px; font-size: 12px; }
  .gp-live-data-dashboard .gp-data-heading h1 { font-size: 45px; }
  .gp-live-data-dashboard .gp-device-title {
    padding-bottom: 18px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    flex-direction: initial;
  }
  .gp-live-data-dashboard .gp-manage-device-wrap {
    align-self: center;
    justify-self: end;
  }
  .gp-live-data-dashboard .gp-manage-device { white-space: nowrap; }
}

/* My Data — polished live-data states matching the preview visual language. */
.gp-live-data-dashboard .gp-button,
.gp-live-data-dashboard .gp-device-toolbar-action,
.gp-live-data-dashboard .gp-manage-device { text-decoration: none !important; }
.gp-live-data-dashboard .gp-online {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: #087f53;
  line-height: 1.35;
}
.gp-live-data-dashboard .gp-online:before {
  content: '';
  width: 9px;
  height: 9px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: var(--gp-green);
  box-shadow: 0 0 0 4px rgba(25,169,107,.09);
}
.gp-live-data-dashboard .gp-online.is-offline,
.gp-live-data-dashboard .gp-online.is-unavailable { color: #6f7d86; }
.gp-live-data-dashboard .gp-online.is-offline:before,
.gp-live-data-dashboard .gp-online.is-unavailable:before {
  background: #94a3ad;
  box-shadow: 0 0 0 4px rgba(148,163,173,.12);
}
.gp-live-data-dashboard .gp-online.is-error { color: #c73737; }
.gp-live-data-dashboard .gp-online.is-error:before {
  background: #d84a4a;
  box-shadow: 0 0 0 4px rgba(216,74,74,.1);
}
.gp-live-data-dashboard .gp-battery-meter.is-unavailable > strong {
  max-width: 210px;
  color: var(--gp-ink);
  font-size: clamp(22px,3vw,30px);
  line-height: 1.08;
  letter-spacing: -.025em;
}
.gp-live-data-dashboard .gp-battery-meter.is-unavailable .gp-battery,
.gp-live-data-dashboard .gp-battery-meter.is-unavailable .gp-battery:after {
  border-color: #8fcab1;
  background-color: transparent;
}
.gp-live-data-dashboard .gp-battery-meter.is-unavailable .gp-battery:after { background: #8fcab1; }
.gp-live-data-dashboard .gp-battery-meter.is-unavailable .gp-battery-icon {
  border-color: #169963;
}
.gp-live-data-dashboard .gp-battery-meter.is-unavailable .gp-battery-icon:after { background: #169963; }
.gp-live-data-dashboard .gp-battery-meter.is-unavailable .gp-battery-icon b { width: 0; }

@media (max-width: 900px) {
  .gp-live-data-dashboard .gp-data-heading {
    display: grid;
    grid-template-columns: 1fr;
    align-items: stretch;
    gap: 20px;
  }
  .gp-live-data-dashboard .gp-data-heading .gp-button {
    width: 100%;
    min-height: 52px;
    margin-top: 0;
  }
}

@media (max-width: 560px) {
  .gp-live-data-dashboard .gp-device-card { border-radius: 18px; }
  .gp-live-data-dashboard .gp-device-meters article { min-height: 178px; }
  .gp-live-data-dashboard .gp-battery-meter.is-unavailable > strong { font-size: 20px; }
}

/* My Data: aligned controls and compact, coordinated refresh states. */
.gp-live-data-dashboard .gp-device-toolbar-action {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 52px; line-height: 1.2; padding: 0 14px; white-space: nowrap;
}
.gp-live-data-dashboard .gp-device-toolbar-action:before {
  content: ''; display: block; width: 14px; height: 14px; flex: 0 0 14px; margin: 0;
  background: linear-gradient(currentColor,currentColor) center/2px 100% no-repeat, linear-gradient(currentColor,currentColor) center/100% 2px no-repeat;
}
.gp-device-sync-bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: -3px 0 12px; }
.gp-device-sync-bar p { margin: 0; color: var(--gp-muted); font-size: 12px; line-height: 1.4; }
.gp-device-refresh { flex: 0 0 auto; min-height: 36px; padding: 7px 11px; border: 1px solid #bfd0ca; border-radius: 8px; background: #fff; color: #08754b; font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; }
.gp-device-refresh:disabled { opacity: .55; cursor: wait; }
.gp-live-data-dashboard.is-data-refreshing .gp-device-meters,
.gp-live-data-dashboard.is-data-refreshing .gp-plan-panels { opacity: .65; }
.gp-live-data-dashboard .gp-device-status { padding: 20px; }
.gp-live-data-dashboard .gp-device-status-head { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 14px; }
.gp-live-data-dashboard .gp-device-status-head h3 { margin: 4px 0 0; font-size: 21px; }
.gp-live-data-dashboard .gp-device-status-head .gp-kicker { margin: 0; font-size: 10px; }
.gp-live-data-dashboard .gp-device-status-head small { max-width: 230px; font-size: 12px; line-height: 1.5; }
.gp-live-data-dashboard .gp-device-status > div:last-child { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.gp-live-data-dashboard .gp-device-status article { min-width: 0; padding: 12px; gap: 6px; }
.gp-live-data-dashboard .gp-plan-panels article { padding: 22px; }
.gp-live-data-dashboard .gp-plan-panels h3 { margin: 18px 0; font-size: 23px; line-height: 1.3; }
.gp-live-data-dashboard .gp-plan-panels dl div { gap: 16px; }
.gp-live-data-dashboard .gp-plan-panels dd { text-align: right; max-width: 65%; overflow-wrap: anywhere; }
.gp-live-data-dashboard .gp-plan-panels .gp-upcoming-plan-note { margin: 16px 0 0; font-size: 13px; }
.gp-live-data-dashboard .gp-battery-meter > small { font-size: 12px; line-height: 1.5; }
@media (max-width: 560px) {
  .gp-live-data-dashboard .gp-device-toolbar-action { min-width: 110px; padding: 0 10px; font-size: 12px; }
  .gp-live-data-dashboard .gp-device-status { padding: 16px; }
  .gp-live-data-dashboard .gp-device-status-head { align-items: flex-start; flex-direction: column; gap: 8px; }
  .gp-live-data-dashboard .gp-device-status-head small { max-width: none; }
  .gp-live-data-dashboard .gp-device-status > div:last-child { gap: 7px; }
  .gp-live-data-dashboard .gp-device-status article { padding: 10px 8px; }
  .gp-live-data-dashboard .gp-device-status article span { font-size: 11px; line-height: 1.4; }
  .gp-live-data-dashboard .gp-device-status article strong { font-size: 13px; overflow-wrap: anywhere; }
  .gp-live-data-dashboard .gp-plan-panels article { padding: 18px; }
  .gp-live-data-dashboard .gp-plan-panels article > b { top: 15px; right: 16px; }
  .gp-live-data-dashboard .gp-plan-panels h3 { font-size: 21px; }
  .gp-live-data-dashboard .gp-plan-panels dl { font-size: 13px; }
}

/* Account order removal confirmation. */
body.gp-order-dialog-open { overflow: hidden; }
.gp-order-remove-dialog {
  position: fixed;
  inset: 0;
  z-index: 10020;
  display: grid;
  place-items: center;
  padding: 24px;
  opacity: 0;
  transition: opacity .16s ease;
}
.gp-order-remove-dialog.is-open { opacity: 1; }
.gp-order-remove-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(6, 21, 35, .72);
  backdrop-filter: blur(5px);
}
.gp-order-remove-panel {
  position: relative;
  width: min(500px, 100%);
  padding: 34px;
  border: 1px solid var(--gp-line);
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 28px 80px rgba(6, 21, 35, .28);
  color: var(--gp-ink);
  transform: translateY(12px) scale(.985);
  transition: transform .16s ease;
}
.gp-order-remove-dialog.is-open .gp-order-remove-panel { transform: none; }
.gp-order-remove-close {
  position: absolute;
  top: 18px;
  right: 18px;
  width: 42px;
  height: 42px;
  border: 1px solid var(--gp-line);
  border-radius: 50%;
  background: #fff;
  color: var(--gp-ink);
  font-size: 30px;
  line-height: 1;
  cursor: pointer;
}
.gp-order-remove-icon {
  width: 52px;
  height: 52px;
  display: grid;
  place-items: center;
  margin-bottom: 22px;
  border-radius: 50%;
  background: #fff0f0;
  color: #cc3737;
  font-size: 26px;
  font-weight: 900;
}
.gp-order-remove-panel .gp-kicker { margin: 0 0 9px; }
.gp-order-remove-panel h2 {
  margin: 0;
  font-size: clamp(30px, 5vw, 42px);
  line-height: 1.08;
  letter-spacing: -.03em;
}
.gp-order-remove-panel > p:not(.gp-kicker) {
  margin: 16px 0 0;
  color: var(--gp-muted);
  font-size: 17px;
  line-height: 1.6;
}
.gp-order-remove-actions {
  display: flex;
  justify-content: flex-end;
  gap: 12px;
  margin-top: 28px;
}
.gp-order-remove-actions .gp-button {
  min-width: 145px;
  min-height: 52px;
  border-radius: 10px;
  cursor: pointer;
}
.gp-order-remove-cancel {
  border: 1px solid #bdcbc6;
  background: #fff;
  color: var(--gp-ink);
}

@media (max-width: 560px) {
  .gp-order-remove-dialog { padding: 18px; }
  .gp-order-remove-panel { padding: 28px 22px 22px; border-radius: 20px; }
  .gp-order-remove-close { top: 14px; right: 14px; }
  .gp-order-remove-actions { flex-direction: column-reverse; }
  .gp-order-remove-actions .gp-button { width: 100%; }
}

/* Account order detail page. */
.gp-view-order { color: var(--gp-ink); }
.gp-view-order-back {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 20px;
  color: #087f53;
  font-size: 14px;
  font-weight: 850;
  text-decoration: none !important;
}
.gp-view-order-head {
  padding: 30px;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 28px;
  border-radius: 20px 20px 0 0;
  background: var(--gp-navy);
  color: #fff;
}
.gp-view-order-head .gp-kicker { color: #5ce3b1; }
.gp-view-order-head h2 {
  margin: 7px 0 9px;
  color: #fff;
  font-size: clamp(36px, 5vw, 54px);
  line-height: 1;
  letter-spacing: -.045em;
}
.gp-view-order-head > div:first-child > p:last-child {
  max-width: 620px;
  margin: 0;
  color: #c9d7e0;
  line-height: 1.5;
}
.gp-view-order-status { flex: 0 0 auto; display: grid; justify-items: end; gap: 10px; }
.gp-view-order-status span {
  padding: 7px 12px;
  border-radius: 999px;
  background: #dff7ed;
  color: #08754b;
  font-size: 12px;
  font-weight: 850;
}
.gp-view-order-status strong { color: #fff; font-size: 28px; }
.gp-view-order-status-failed .gp-view-order-status span,
.gp-view-order-status-cancelled .gp-view-order-status span { background: #fff0f0; color: #c73535; }
.gp-view-order-status-pending .gp-view-order-status span,
.gp-view-order-status-on-hold .gp-view-order-status span { background: #fff4cf; color: #7b5900; }
.gp-view-order-summary {
  margin-bottom: 18px;
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  border: 1px solid var(--gp-line);
  border-top: 0;
  border-radius: 0 0 20px 20px;
  background: #fff;
}
.gp-view-order-summary article { min-width: 0; padding: 19px 22px; display: grid; gap: 7px; }
.gp-view-order-summary article + article { border-left: 1px solid var(--gp-line); }
.gp-view-order-summary small,
.gp-view-order-card small { color: var(--gp-muted); font-size: 11px; font-weight: 750; letter-spacing: .02em; }
.gp-view-order-summary strong { overflow-wrap: anywhere; font-size: 14px; line-height: 1.4; }
.gp-view-order-layout { display: grid; grid-template-columns: minmax(0,1.65fr) minmax(250px,.75fr); gap: 18px; align-items: start; }
.gp-view-order-primary,
.gp-view-order-side { display: grid; gap: 18px; }
.gp-view-order-card {
  padding: 26px;
  border: 1px solid var(--gp-line);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 14px 42px rgba(12,40,68,.04);
}
.gp-view-order-card-head { display: flex; justify-content: space-between; align-items: start; gap: 20px; }
.gp-view-order-card h3 { margin: 6px 0 0; color: var(--gp-ink); font-size: 25px; line-height: 1.2; }
.gp-view-order-quantity { padding: 7px 10px; border-radius: 999px; background: #eef6f2; color: #08754b; font-size: 11px; font-weight: 850; white-space: nowrap; }
.gp-view-order-plan-price { flex: 0 0 auto; display: grid; justify-items: end; gap: 10px; }
.gp-view-order-plan-price > strong { color: var(--gp-ink); font-size: 22px; white-space: nowrap; }
.gp-view-order-plan-facts { margin: 22px 0; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.gp-view-order-plan-facts span { min-width: 0; padding: 14px; display: grid; gap: 5px; border-radius: 12px; background: #f0f7f4; }
.gp-view-order-plan-facts strong { overflow-wrap: anywhere; font-size: 14px; }
.gp-view-order-items { border-top: 1px solid var(--gp-line); }
.gp-view-order-item { padding: 17px 0; display: flex; justify-content: space-between; gap: 22px; border-bottom: 1px solid var(--gp-line); }
.gp-view-order-item > div { display: grid; gap: 5px; }
.gp-view-order-item b { white-space: nowrap; }
.gp-view-order-totals { margin: 12px 0 0; }
.gp-view-order-totals > div { padding: 7px 0; display: flex; justify-content: space-between; gap: 20px; }
.gp-view-order-totals dt { color: var(--gp-muted); }
.gp-view-order-totals dd { margin: 0; font-weight: 800; text-align: right; }
.gp-view-order-totals > div:last-child { margin-top: 5px; padding-top: 14px; border-top: 1px solid var(--gp-line); color: var(--gp-ink); font-size: 18px; }
.gp-view-order-delivery-grid { margin-top: 20px; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.gp-view-order-delivery-grid > div { padding: 16px; display: grid; gap: 6px; border-radius: 12px; background: #f0f7f4; }
.gp-view-order-delivery-grid strong { overflow-wrap: anywhere; }
.gp-view-order-activation > p,
.gp-view-order-help > p:not(.gp-kicker) { margin: 18px 0 0; color: var(--gp-muted); font-size: 13px; line-height: 1.55; }
.gp-view-order-billing address { margin: 18px 0; color: var(--gp-muted); font-style: normal; line-height: 1.6; }
.gp-view-order-billing > a,
.gp-view-order-help > a { display: block; margin-top: 9px; color: #087f53; font-size: 13px; font-weight: 800; overflow-wrap: anywhere; text-decoration: none !important; }
.gp-view-order-help { background: #eaf8f2; }
.gp-view-order-actions {
  margin-top: 18px;
  padding: 18px;
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  border: 1px solid var(--gp-line);
  border-radius: 16px;
  background: #fff;
}
.gp-view-order-action { min-width: 120px; text-align: center; text-decoration: none !important; }
.gp-view-order-action-pay { background: var(--gp-green); color: #fff; }
.gp-view-order-action-cancel { border: 1px solid #efcccc; background: #fff; color: #c73535; }

@media (max-width: 900px) {
  .gp-view-order-layout { grid-template-columns: 1fr; }
  .gp-view-order-side { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 560px) {
  .gp-view-order-back { margin-bottom: 14px; }
  .gp-view-order-head { padding: 23px 20px; display: grid; align-items: start; }
  .gp-view-order-head h2 { font-size: 36px; }
  .gp-view-order-head > div:first-child > p:last-child { font-size: 13px; }
  .gp-view-order-status { width: 100%; grid-template-columns: auto 1fr; justify-items: start; align-items: center; }
  .gp-view-order-status strong { justify-self: end; font-size: 23px; }
  .gp-view-order-summary { grid-template-columns: 1fr 1fr; }
  .gp-view-order-summary article { padding: 15px; }
  .gp-view-order-card { padding: 20px; }
  .gp-view-order-card h3 { font-size: 21px; }
  .gp-view-order-card-head { align-items: start; }
  .gp-view-order-plan-price > strong { font-size: 18px; }
  .gp-view-order-plan-facts { grid-template-columns: 1fr; }
  .gp-view-order-item { gap: 12px; font-size: 13px; }
  .gp-view-order-delivery-grid,
  .gp-view-order-side { grid-template-columns: 1fr; }
  .gp-view-order-actions { flex-direction: column; }
  .gp-view-order-action { width: 100%; }
}

/* Recharge confirmation */
.woocommerce-order-received .site-main,
.woocommerce-order-received main { background: #f3f7f5; }
.woocommerce-order-received .woocommerce { width: 100%; max-width: none; }
.gp-thankyou { width: min(1180px, calc(100% - 48px)); margin: 0 auto; padding: 64px 0 88px; color: var(--gp-ink); }
.gp-thankyou-hero {
  padding: 38px;
  display: grid;
  grid-template-columns: 74px minmax(0,1fr) auto;
  gap: 25px;
  align-items: center;
  border-radius: 24px;
  background: linear-gradient(135deg,#0b2f50 0%,#0a4651 62%,#0b665b 100%);
  color: #fff;
  box-shadow: 0 22px 55px rgba(11,47,80,.16);
}
.gp-thankyou-hero.is-pending { background: linear-gradient(135deg,#0b2f50,#35576f); }
.gp-order-receipt .gp-thankyou-hero.is-neutral { background: linear-gradient(135deg,#23364c,#465664); }
.gp-order-receipt .gp-thankyou-hero.is-warning { background: linear-gradient(135deg,#452e35,#624638); }
.gp-order-receipt .is-warning .gp-kicker { color: #ffe3a4; }
.gp-order-receipt .gp-thankyou-check { font-size: 34px; font-weight: 700; }
.gp-order-receipt .is-pending .gp-thankyou-check,
.gp-order-receipt .is-neutral .gp-thankyou-check { background: #e0eaf0; }
.gp-order-receipt .is-warning .gp-thankyou-check { background: #ffe3a4; color: #452e35; }
.gp-order-receipt .gp-thankyou-hero-copy { min-width: 0; overflow-wrap: anywhere; }
.gp-thankyou-check { width: 68px; height: 68px; display: grid; place-items: center; border-radius: 50%; background: #55ddb0; color: #08334b; }
.gp-thankyou-check svg { width: 34px; height: 34px; }
.gp-thankyou-hero .gp-kicker { margin: 0 0 8px; color: #62efbd; }
.gp-thankyou-hero h1 { margin: 0; color: #fff; font-size: clamp(38px,5vw,64px); line-height: 1.02; letter-spacing: -.035em; }
.gp-thankyou-hero-copy > p:last-child { max-width: 680px; margin: 14px 0 0; color: rgba(255,255,255,.82); font-size: 16px; line-height: 1.55; }
.gp-thankyou-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.gp-thankyou-hero .gp-thankyou-actions { max-width: 230px; display: grid; }
.gp-thankyou-button { min-height: 50px; padding: 13px 20px; display: inline-flex; align-items: center; justify-content: center; border-radius: 12px; font-size: 14px; font-weight: 800; line-height: 1.2; text-align: center; text-decoration: none !important; transition: transform .16s ease,box-shadow .16s ease,background .16s ease; }
.gp-thankyou-button:hover { transform: translateY(-1px); }
.gp-thankyou-button-primary { background: var(--gp-green); color: #fff !important; box-shadow: 0 10px 24px rgba(20,174,112,.22); }
.gp-thankyou-button-secondary { border: 1px solid rgba(255,255,255,.45); background: rgba(255,255,255,.08); color: #fff !important; }
.gp-thankyou-summary { margin: 18px 0; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border: 1px solid var(--gp-line); border-radius: 18px; background: #fff; overflow: hidden; }
.gp-thankyou-summary article { min-width: 0; padding: 18px 22px; display: grid; gap: 5px; }
.gp-thankyou-summary article + article { border-left: 1px solid var(--gp-line); }
.gp-thankyou-summary span,
.gp-thankyou-facts dt { color: var(--gp-muted); font-size: 11px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.gp-thankyou-summary strong { overflow-wrap: anywhere; font-size: 15px; }
.gp-thankyou-layout { display: grid; grid-template-columns: minmax(0,1.65fr) minmax(280px,.75fr); gap: 18px; align-items: stretch; }
.gp-thankyou-card { padding: 30px; border: 1px solid var(--gp-line); border-radius: 20px; background: #fff; box-shadow: 0 15px 45px rgba(12,40,68,.04); }
.gp-thankyou-card-head { display: flex; align-items: start; justify-content: space-between; gap: 20px; }
.gp-thankyou-card .gp-kicker { margin: 0 0 8px; }
.gp-thankyou-card h2 { margin: 0; color: var(--gp-ink); font-size: 28px; line-height: 1.2; }
.gp-thankyou-qty { padding: 7px 11px; border-radius: 99px; background: #e6f7f0; color: #087f53; font-size: 12px; font-weight: 800; white-space: nowrap; }
.gp-thankyou-facts { margin: 24px 0 0; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.gp-thankyou-facts > div { min-width: 0; padding: 16px; display: grid; gap: 7px; border-radius: 13px; background: #f0f7f4; }
.gp-thankyou-facts dd { margin: 0; overflow-wrap: anywhere; font-size: 14px; font-weight: 800; }
.gp-thankyou-note { margin-top: 20px; padding: 17px 19px; border-left: 4px solid var(--gp-green); background: #f6f8f7; }
.gp-thankyou-note strong { display: block; margin-bottom: 6px; }
.gp-thankyou-note p { margin: 0; color: var(--gp-muted); font-size: 13px; line-height: 1.55; }
.gp-thankyou-next { display: flex; flex-direction: column; align-items: flex-start; }
.gp-thankyou-next > p:not(.gp-kicker) { margin: 14px 0 24px; color: var(--gp-muted); font-size: 14px; line-height: 1.6; }
.gp-thankyou-next .gp-thankyou-button { width: 100%; }
.gp-thankyou-text-link { margin-top: 16px; color: #087f53; font-size: 13px; font-weight: 800; text-decoration: none !important; }
.gp-thankyou-receipt { margin: 18px 0 0; color: var(--gp-muted); font-size: 13px; text-align: center; }
.gp-thankyou-gateway-message { margin-top: 14px; color: var(--gp-muted); text-align: center; }
.gp-thankyou-gateway-message:empty { display: none; }
.gp-free-claim-rule { margin: 12px 0 16px; padding: 11px 13px; border-radius: 10px; background: #eef8f3; color: #335d4a; font-size: 13px; line-height: 1.5; }
.gp-free-claim-policy { margin: -6px 0 16px; color: #52685e; font-size: 13px; line-height: 1.55; }
.gp-free-claim-policy summary { width: fit-content; min-height: 32px; padding: 5px 0; color: #087f53; font-weight: 700; cursor: pointer; }
.gp-free-claim-policy summary:focus-visible { outline: 2px solid #087f53; outline-offset: 3px; border-radius: 3px; }
.gp-free-claim-policy p { margin: 8px 0 0; font-size: inherit; line-height: inherit; }
/* My Data typography only: never alter the reading or its measurement unit. */
.gp-live-data-dashboard .gp-device-meters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.gp-live-data-dashboard .gp-device-meters article { min-width: 0; }
.gp-live-data-dashboard .gp-device-meters .gp-metric-label { min-height: 42px; }
.gp-live-data-dashboard .gp-device-meters article > .gp-metric-value { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 5px; row-gap: 2px; min-height: 48px; font-size: clamp(28px, 4vw, 48px); font-variant-numeric: tabular-nums; letter-spacing: -.035em; }
.gp-live-data-dashboard .gp-metric-number { white-space: nowrap; line-height: 1.05; }
.gp-live-data-dashboard .gp-metric-number.is-long { font-size: .78em; }
.gp-live-data-dashboard .gp-device-meters article > .gp-unlimited-value { font-size: clamp(20px, 2.4vw, 34px); line-height: 1.2; letter-spacing: -.025em; overflow-wrap: anywhere; }
.gp-live-data-dashboard .gp-data-meter .gp-progress[hidden] { display: none !important; }
.gp-live-data-dashboard .gp-metric-unit { font-size: clamp(14px, .42em, 20px); font-weight: 650; line-height: 1.1; letter-spacing: 0; white-space: nowrap; opacity: .85; }
.gp-live-data-dashboard .gp-device-meters article > small { overflow-wrap: anywhere; }
@media (max-width: 380px) {
  .gp-live-data-dashboard .gp-device-meters { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .gp-live-data-dashboard .gp-device-meters article { min-height: 160px; }
  .gp-live-data-dashboard .gp-device-meters article > .gp-unlimited-value { font-size: 28px; }
}
.gp-free-claim-status { margin: 12px 0; color: #335d4a; font-size: 13px; line-height: 1.5; }
.gp-free-claim-status.is-blocked { color: #9b4526; }
.gp-free-claim-retry { margin-bottom: 12px; padding: 6px 0; border: 0; background: transparent; color: #087f53; font-size: 13px; text-decoration: underline; cursor: pointer; }
.gp-product-order form.cart .gp-free-claim-retry { width: auto !important; min-height: 32px; margin: 0 0 12px !important; background: transparent !important; color: #087f53 !important; font-weight: 600 !important; }
.gp-product-order form.cart .gp-free-claim-retry[hidden] { display: none !important; }
.gp-free-claim-details { margin-top: 20px; }
.gp-free-claim-details .gp-kicker { color: #087f53; }
.gp-free-claim-received .gp-thankyou-check { font-size: 36px; }
.gp-thankyou-gateway-message > * { margin: 0; }
.gp-thankyou-failed { padding-top: 30px; }
.gp-thankyou-alert { padding: 34px; border: 1px solid #f0cccc; border-radius: 20px; background: #fff; }
.gp-thankyou-alert h1 { margin: 8px 0 12px; }
.gp-thankyou-alert > p:not(.gp-kicker) { color: var(--gp-muted); }
.gp-thankyou-alert .gp-thankyou-actions { margin-top: 22px; }
.gp-thankyou-alert .gp-thankyou-button-secondary { border-color: var(--gp-line); color: var(--gp-ink) !important; }

@media (max-width: 820px) {
  .gp-thankyou { width: min(100% - 32px,680px); padding: 34px 0 64px; }
  .gp-thankyou-hero { padding: 28px; grid-template-columns: 58px minmax(0,1fr); }
  .gp-thankyou-check { width: 54px; height: 54px; }
  .gp-thankyou-check svg { width: 28px; height: 28px; }
  .gp-thankyou-hero h1 { font-size: clamp(36px,8vw,52px); }
  .gp-thankyou-hero .gp-thankyou-actions { max-width: none; grid-column: 1 / -1; grid-template-columns: 1fr 1fr; }
  .gp-thankyou-layout { grid-template-columns: 1fr; }
  .gp-thankyou-summary { grid-template-columns: 1fr 1fr; }
  .gp-thankyou-summary article:nth-child(3) { border-left: 0; border-top: 1px solid var(--gp-line); }
  .gp-thankyou-summary article:nth-child(4) { border-top: 1px solid var(--gp-line); }
  .gp-thankyou-facts { grid-template-columns: 1fr; }
}

@media (max-width: 520px) {
  .gp-thankyou { width: calc(100% - 24px); padding-top: 22px; }
  .gp-thankyou-hero { padding: 24px 20px; display: block; border-radius: 20px; }
  .gp-thankyou-check { margin-bottom: 20px; }
  .gp-thankyou-hero h1 { font-size: 39px; }
  .gp-thankyou-hero-copy > p:last-child { font-size: 14px; }
  .gp-thankyou-hero .gp-thankyou-actions { margin-top: 24px; display: grid; grid-template-columns: 1fr; }
  .gp-thankyou-summary article { padding: 15px; }
  .gp-thankyou-summary strong { font-size: 13px; }
  .gp-thankyou-card { padding: 22px 19px; }
  .gp-thankyou-card h2 { font-size: 23px; }
  .gp-thankyou-note { padding: 15px; }
  .gp-thankyou-failed { padding-top: 12px; }
  .gp-thankyou-alert { padding: 24px 20px; }
  .gp-thankyou-alert .gp-thankyou-actions { display: grid; }
}

/* Automatic timezone labels; display only, never a timezone picker. */
.gp-auto-timezone { display: block; margin: 9px 0 0; color: var(--gp-muted); font-size: 12px; font-weight: 400; line-height: 1.5; overflow-wrap: anywhere; }
.gp-live-data-dashboard .gp-plan-date { display: inline; font-size: inherit; font-weight: inherit; letter-spacing: normal; text-transform: none; }
.gp-live-data-dashboard .gp-plan-timezone { display: block; margin-top: 4px; color: var(--gp-muted); font-size: 12px; font-weight: 400; line-height: 1.5; letter-spacing: normal; text-transform: none; overflow-wrap: anywhere; }
.gp-live-data-dashboard .gp-plan-available { color: var(--gp-muted); font-size: 14px; line-height: 1.6; overflow-wrap: anywhere; }
@media (max-width: 520px) {
  .gp-live-data-dashboard .gp-plan-panels dl div:has(.gp-plan-timezone) { flex-wrap: wrap; gap: 6px; }
  .gp-live-data-dashboard .gp-plan-panels dd:has(.gp-plan-timezone) { width: 100%; max-width: 100%; text-align: left; }
}

/* iOS destination picker: keep the flag separate from native select text. */
.gp-catalog-picker .gp-country-select-wrap select {
  -webkit-appearance: none;
  appearance: none;
  display: block;
  box-sizing: border-box;
  min-height: 52px;
  padding: 12px 44px 12px 14px;
  font-size: 16px;
  line-height: 1.4;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23101b2b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  background-size: 18px 18px;
}
.gp-catalog-picker .gp-country-select-wrap select.has-flag { padding-left: 56px; }
.gp-catalog-picker .gp-country-select-flag { object-fit: contain; }

/* Immediate filter feedback beside the picker, without locking the next selection. */
.gp-catalog-status{display:flex;align-items:center;gap:7px;min-height:20px;margin-top:6px;font-size:12px;line-height:20px;color:#08754b;font-weight:600}
.gp-catalog-status:not(:empty)::before{content:"";width:12px;height:12px;flex:0 0 12px;border:2px solid #cceadd;border-top-color:#08754b;border-radius:50%;animation:gp-catalog-spin .7s linear infinite}
body.gp-catalog-ajax-loading .gp-catalog-picker{opacity:1;pointer-events:auto}
body.gp-catalog-ajax-loading .gp-catalog-picker::after{content:none}
@keyframes gp-catalog-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.gp-catalog-status:not(:empty)::before{animation:none}}

/* Do not show the previous country flag while a new selection is loading. */
body.gp-catalog-ajax-loading .gp-country-select-flag{visibility:hidden}
