.regional-pricing { max-width: 1160px; margin: 22px auto; padding: clamp(16px, 3vw, 28px); border: 1px solid #e2e8f0; border-radius: 14px; background: #f8fafc; color: #182438; }
.regional-pricing h2, .regional-pricing h3 { margin: 0 0 8px; color: #153a63; }
.regional-pricing p { margin: 0 0 12px; }
.regional-controls, .regional-results { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 14px; }
.regional-pricing label { display: block; font-weight: 600; }
.regional-pricing [hidden] { display: none !important; }
.regional-pricing input:not([type=checkbox]), .regional-pricing select { display: block; width: 100%; margin: 4px 0 10px; min-height: 42px; padding: 7px 10px; background: #fff; color: #182438; border: 1px solid #adb9c7; border-radius: 7px; }
.regional-card { min-width: 0; padding: 16px; background: #fff; border: 1px solid #e2e8f0; border-radius: 10px; }
.regional-price { color: #a43c00; font-weight: 800; }
.regional-pricing .regional-action { display: inline-block; background: #ad4107; color: #fff; padding: 7px 12px; border: 0; border-radius: 6px; margin: 4px 5px 4px 0; line-height: 1.5; min-height: 36px; cursor: pointer; }
.regional-pricing .regional-action:disabled { opacity: .55; }

.regional-public { background: #fff; border: 0; scroll-margin-top: 90px; }
.regional-public h2 { text-align: center; color: #171717; font-size: clamp(22px, 3vw, 32px); }
.regional-public .regional-location { padding: 0 3px; min-height: 0; margin: 0; color: #405ce5; font: inherit; text-transform: none; letter-spacing: normal; border: 0; background: none; }
.regional-location [data-location-label] { text-decoration: underline; text-underline-offset: 4px; }
.regional-dialog { position: fixed; inset: 0; width: min(512px, calc(100% - 32px)); height: fit-content; max-height: calc(100% - 32px); box-sizing: border-box; overflow-x: hidden; overflow-y: auto; margin: auto; border: 0; border-radius: 12px; padding: 24px; color: #242424; box-shadow: 0 18px 60px #0002; }
.regional-dialog::backdrop { background: rgb(0 0 0 / .53); backdrop-filter: blur(2px); }
.regional-dialog h3 { color: #252525; font-size: 20px; margin: 3px 36px 12px 0; }
.regional-dialog p { font-size: 14px; line-height: 1.6; }
.regional-dialog .regional-controls { display: block; margin-top: 20px; }
.regional-dialog .regional-address-field + .regional-address-field { margin-top: 12px; }
.regional-dialog .regional-address-field input { height: 46px; margin: 5px 0 0; border-color: #d5d5d5; box-shadow: none; font-size: 16px; }
.regional-dialog .regional-address-field input:disabled { background: #f6f7fa; }
.regional-address-matches { max-height: min(168px, 24dvh); overflow-y: auto; margin-top: 4px; border: 1px solid #d5d5d5; border-radius: 8px; background: #fff; }
.regional-address-matches button { display: block; width: 100%; margin: 0; padding: 6px 12px; min-height: 40px; border: 0; text-align: left; text-transform: none; letter-spacing: normal; font-size: 15px; font-weight: 500; color: #242424; background: #fff; }
.regional-address-matches button:hover, .regional-address-matches button:focus-visible { background: #edf1ff; color: #242568; }
.regional-address-matches p { padding: 9px 12px; margin: 0; }
.regional-dialog .regional-dialog-close { position: absolute; right: 11px; top: 9px; margin: 0; padding: 0 8px; min-height: 32px; color: #666; background: transparent; border: 0; font-size: 25px !important; line-height: 1; }
.regional-dialog .regional-confirm { width: 100%; min-height: 48px; margin: 16px 0 0; border: 0; border-radius: 8px; background: #405ce5; color: #fff; text-transform: none; font-size: 15px; }
.regional-dialog .regional-confirm:disabled { opacity: .5; }

.fpt-plan { display:flex; flex-direction:column; width:100%; min-width:0; height:100%; overflow:hidden; border:1px solid #e0e3ef; border-radius:16px; background:#fff; color:#20214e; box-shadow:0 8px 22px #1b23500e; }
.fpt-plan-image { position:relative; display:block; aspect-ratio: 2 / 1; overflow:hidden; background:#eef1ff; }
.fpt-plan-image img { display:block; width:100%; height:100%; object-fit:cover; }
.fpt-plan-body { display:flex; flex:1; flex-direction:column; align-items:flex-start; padding:18px; }
.fpt-plan-body h3 { margin:0 0 7px; color:#21235c; font-size:21px; line-height:1.25; }
.fpt-plan-body h3 a { color:inherit; }
.fpt-plan-image-badge { position:absolute; top:0; left:0; max-width:100%; box-sizing:border-box; overflow-wrap:anywhere; background:#ed4638; color:#fff; font-size:12px; line-height:1.35; font-weight:800; padding:5px 9px; border-radius:0 0 8px 0; }
.fpt-plan-subtitle { color:#565979; font-size:13px; margin:0 0 8px; }
.fpt-plan-promotion { background:#fff2db; color:#803300; border-radius:8px; padding:7px 10px; font-size:13px; font-weight:700; white-space:pre-line; overflow-wrap:anywhere; }
.fpt-plan-price { color:#20215f; font-size:23px; font-weight:800; line-height:1.3; margin:0; }
.fpt-plan-note { color:#5c6074; font-size:12px; }
.fpt-plan-speed { width:100%; display:flex; justify-content:space-between; gap:6px; margin:12px 0 8px; padding:8px 10px; background:#f1f3fd; border-radius:8px; font-size:13px; }
.fpt-plan-features { list-style:none; margin:6px 0 12px; padding:0; width:100%; max-height:130px; overflow:auto; scrollbar-width:thin; }
.fpt-plan-features li { position:relative; padding-left:19px; margin:0 0 6px; color:#353650; font-size:13px; line-height:1.45; }
.fpt-plan-features li::before { content:'✓'; position:absolute; left:0; color:#405ce5; font-weight:800; }
.fpt-plan-actions { display:grid; grid-template-columns:1fr 1fr; gap:7px; width:100%; margin-top:auto; padding-top:10px; }
.fpt-plan-actions a { padding:8px 4px; border:1px solid #405ce5; border-radius:8px; color:#334bd0; text-align:center; font-weight:700; font-size:13px; }
.fpt-plan-actions a:first-child { color:#fff; background:#405ce5; }
.fpt-plan-actions a:hover { filter:brightness(.9); }
.regional-pricing textarea { width:100%; resize:vertical; padding:7px; margin:4px 0 8px; }
.regional-pricing details summary { color:#303daa; font-weight:700; cursor:pointer; }

.fpt-plan-image { aspect-ratio: 1.38; }
.fpt-plan-body { padding: 15px; }
.fpt-plan-price { color:#405ce5; }
.fpt-plan-price small, .fpt-detail-unit { color:#424242; font-size:12px; margin-left:4px; font-weight:600; }
.fpt-plan-speed { display:block; color:#343434; background:#f6f6f6; border:1px solid #e4e4e4; box-sizing:border-box; }
.fpt-plan-speed strong { display:flex; flex-wrap:wrap; gap:8px; margin-top:4px; }
.fpt-plan-features li::before { color:#008b43; }
.fpt-plan-actions { grid-template-columns:1fr; gap:4px; }
.fpt-plan-actions a + a { background:#f2f2f2; border-color:#f2f2f2; }

.fpt-detail-section { padding:clamp(16px,3vw,28px); margin-bottom:24px; border:1px solid #e2e8f0; border-radius:16px; background:#fff; }
.fpt-detail-section h2 { margin:0 0 16px; color:#153a63; font-size:21px; }
.fpt-detail-section li + li { margin-top:8px; }
.fpt-included-list { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,145px),1fr)); gap:12px; list-style:none; margin:0; padding:0; }
.fpt-detail-section .fpt-included-list li { display:grid; justify-items:center; align-content:center; gap:8px; padding:14px; margin:0; text-align:center; background:#f7f8fc; border-radius:10px; }
.fpt-included-list img { width:100%; height:86px; object-fit:contain; }
.fpt-detail-section details { padding:10px 0; border-top:1px solid #e2e8f0; }
.fpt-detail-section summary { cursor:pointer; font-weight:700; }
.fpt-detail-section details p { margin:8px 0 0; }
