/* ═══════════════════════════════════════
   ALP Smart Quote Calculator
   alp-calculator.css v1.0.0
   sharingbasics.com
═══════════════════════════════════════ */

.alp-calc-wrap {
  max-width: 860px;
  margin: 0 auto;
  padding: 28px 0 48px;
  font-family: 'DM Sans', sans-serif;
  color: #1a1a1a;
}

/* ── PAGE HEADER ── */
.alp-page-hdr { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:28px; }
.alp-ph-left  { display:flex; align-items:center; gap:12px; }
.alp-brand    { font-family:'Playfair Display',serif; font-size:15px; color:#1a1a1a; }
.alp-brand-sub{ font-size:9px; letter-spacing:0.18em; text-transform:uppercase; color:#aaa; margin-top:2px; }
.alp-ph-right  { text-align:right; }
.alp-calc-title    { font-family:'Playfair Display',serif; font-size:26px; color:#1a1a1a; line-height:1.1; margin:0; }
.alp-calc-subtitle { font-size:9px; letter-spacing:0.2em; text-transform:uppercase; color:#c9a84c; font-weight:600; margin-top:4px; }

/* ── MODE TABS ── */
.alp-mode-label { font-size:9px; letter-spacing:0.2em; text-transform:uppercase; color:#aaa; font-weight:600; margin-bottom:10px; display:flex; align-items:center; gap:8px; }
.alp-mode-label::before { content:''; width:20px; height:1px; background:#c9a84c; display:block; }
.alp-mode-tabs { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:20px; }
.alp-mtab { padding:16px 18px; border:2px solid #ddd; border-radius:10px; background:#fff; cursor:pointer; text-align:left; font-family:'DM Sans',sans-serif; transition:all 0.15s; position:relative; }
.alp-mtab:hover { border-color:#c9a84c; }
.alp-mtab.alp-on { border-color:#c9a84c; background:#c9a84c; }
.alp-mtab-name { font-size:14px; font-weight:700; color:#1a1a1a; margin-bottom:3px; }
.alp-mtab-sub  { font-size:11px; color:#888; line-height:1.4; }
.alp-mtab.alp-on .alp-mtab-sub { color:rgba(26,26,26,0.6); }
.alp-mtab-tick { display:none; position:absolute; top:12px; right:14px; width:20px; height:20px; background:#1a1a1a; border-radius:50%; color:#c9a84c; font-size:12px; font-weight:700; align-items:center; justify-content:center; }
.alp-mtab.alp-on .alp-mtab-tick { display:flex; }

/* ── STEP CARDS ── */
.alp-scard { background:#fff; border:1px solid #e0dbd4; border-radius:14px; margin-bottom:12px; overflow:hidden; }
.alp-scard-hdr { padding:14px 22px; background:#faf9f7; border-bottom:1px solid #eee; display:flex; align-items:center; justify-content:space-between; }
.alp-snum { font-size:9px; letter-spacing:0.2em; text-transform:uppercase; color:#c9a84c; font-weight:600; display:flex; align-items:center; gap:8px; }
.alp-snum::before { content:''; width:20px; height:1px; background:#c9a84c; display:block; }
.alp-step-sel { font-size:10px; color:#16a34a; font-weight:600; display:none; align-items:center; gap:5px; }
.alp-step-sel.alp-show { display:flex; }
.alp-scard-body { padding:18px 22px; }

/* ── SOFTWARE GRID ── */
.alp-sw-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:10px; }
.alp-sw-btn  { display:flex; flex-direction:column; align-items:center; gap:7px; padding:14px 8px; border:2px solid #e0dbd4; border-radius:10px; background:#faf9f7; cursor:pointer; font-family:'DM Sans',sans-serif; transition:all 0.15s; position:relative; }
.alp-sw-btn:hover { border-color:#c9a84c; }
.alp-sw-btn.alp-on { border-color:#c9a84c; background:#c9a84c; }
.alp-sw-btn.alp-on .alp-sw-lbl { color:#1a1a1a; font-weight:700; }
.alp-sw-btn.alp-on::after { content:'✓'; position:absolute; top:5px; right:7px; font-size:9px; font-weight:700; color:#1a1a1a; }
.alp-aico { width:36px; height:36px; border-radius:7px; display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:700; }
.alp-ps{background:#001e36;color:#31a8ff;} .alp-ae{background:#00005b;color:#9999ff;}
.alp-id{background:#49021f;color:#ff3366;} .alp-pr{background:#00005b;color:#9999ff;}
.alp-ai{background:#ff7c00;color:#330000;} .alp-ex{background:#470137;color:#ff61f6;}
.alp-ac{background:#700000;color:#ff4444;} .alp-ff{background:#0d0d1a;color:#a259ff;}
.alp-an{background:#0d1a00;color:#9bff3a;} .alp-dw{background:#003d4c;color:#4af1f2;}
.alp-sw-lbl { font-size:10px; color:#888; text-align:center; line-height:1.3; }

/* ── DELIVERY FORMAT ── */
.alp-fmt-label { font-size:9px; letter-spacing:0.14em; text-transform:uppercase; color:#aaa; font-weight:600; margin-bottom:8px; }
.alp-fmt-grid  { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-bottom:16px; }
.alp-fmt-btn   { padding:13px 14px; border:2px solid #e0dbd4; border-radius:10px; background:#faf9f7; cursor:pointer; font-family:'DM Sans',sans-serif; text-align:left; transition:all 0.15s; position:relative; }
.alp-fmt-btn:hover { border-color:#c9a84c; }
.alp-fmt-btn.alp-on { border-color:#c9a84c; background:#c9a84c; }
.alp-fmt-btn.alp-on .alp-fmt-main { color:#1a1a1a; }
.alp-fmt-btn.alp-on .alp-fmt-sub,.alp-fmt-btn.alp-on .alp-fmt-note { color:rgba(26,26,26,0.55); }
.alp-fmt-btn.alp-on::after { content:'✓'; position:absolute; top:10px; right:12px; font-size:11px; font-weight:700; color:#1a1a1a; }
.alp-fmt-main { font-size:12.5px; font-weight:600; color:#1a1a1a; margin-bottom:3px; }
.alp-fmt-sub  { font-size:10px; color:#888; line-height:1.4; }
.alp-fmt-note { font-size:9.5px; color:#c9a84c; font-weight:500; margin-top:4px; }

/* ── CONTROLS ── */
.alp-ctrl-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.alp-clbl { font-size:9px; letter-spacing:0.14em; text-transform:uppercase; color:#aaa; font-weight:600; margin-bottom:6px; display:block; }
.alp-calc-wrap select,
.alp-calc-wrap input[type=number],
.alp-calc-wrap input[type=text],
.alp-calc-wrap input[type=email],
.alp-calc-wrap input[type=tel] {
  width:100%; padding:10px 12px; border:1.5px solid #e0dbd4; border-radius:8px;
  font-size:13px; font-family:'DM Sans',sans-serif; color:#1a1a1a;
  background:#fff; outline:none; -webkit-appearance:none; appearance:none;
  transition:border-color 0.15s;
}
.alp-calc-wrap select:focus,
.alp-calc-wrap input:focus { border-color:#c9a84c; border-width:2px; }
.alp-calc-wrap input[type=number] { -moz-appearance:textfield; }
.alp-calc-wrap input::-webkit-inner-spin-button { -webkit-appearance:none; }

.alp-budget-row { display:flex; align-items:center; gap:10px; margin-top:14px; padding-top:14px; border-top:1px solid #f0ece4; }
.alp-budget-row label { font-size:11px; color:#888; white-space:nowrap; }
.alp-budget-row input { flex:1; max-width:150px; }
.alp-unit { font-size:11px; color:#aaa; }

/* ── ALL-INCLUSIVE BANNER ── */
.alp-allinc-banner { background:rgba(22,163,74,0.05); border:1px solid rgba(22,163,74,0.15); border-radius:10px; padding:14px 16px; margin-top:16px; display:flex; gap:12px; align-items:flex-start; }
.alp-allinc-icon  { font-size:16px; flex-shrink:0; }
.alp-allinc-title { font-size:12px; font-weight:600; color:#14532d; margin-bottom:6px; }
.alp-allinc-items { display:flex; flex-wrap:wrap; gap:5px; }
.alp-allinc-chip  { font-size:10px; padding:2px 9px; border-radius:20px; background:rgba(22,163,74,0.08); color:#15803d; border:1px solid rgba(22,163,74,0.2); }

/* ── TIER CARDS ── */
.alp-tier-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.alp-tier-btn  { border:2px solid #e0dbd4; border-radius:12px; padding:22px 20px 40px; cursor:pointer; background:#faf9f7; text-align:left; font-family:'DM Sans',sans-serif; position:relative; transition:all 0.15s; }
.alp-tier-btn:hover { border-color:#c9a84c; }
.alp-tier-btn.alp-on { border-color:#c9a84c; background:#c9a84c; }
.alp-tier-btn.alp-on .alp-tier-name,.alp-tier-btn.alp-on .alp-ti,.alp-tier-btn.alp-on .alp-tier-price-note { color:#1a1a1a; }
.alp-tier-btn.alp-on .alp-tx { color:rgba(26,26,26,0.4); }
.alp-tier-btn.alp-on .alp-tok { color:#1a1a1a; }
.alp-tier-btn.alp-on .alp-tno { color:rgba(26,26,26,0.3); }
.alp-tier-btn.alp-on .alp-tier-save { background:rgba(26,26,26,0.12); color:#1a1a1a; }
.alp-tier-btn.alp-on::after { content:'✓ Selected'; position:absolute; top:16px; right:16px; font-size:9px; font-weight:700; color:#1a1a1a; letter-spacing:0.06em; text-transform:uppercase; }
.alp-tier-name       { font-size:14px; letter-spacing:0.08em; text-transform:uppercase; font-weight:700; color:#c9a84c; margin-bottom:4px; }
.alp-tier-price-note { font-size:10px; color:#888; margin-bottom:14px; font-style:italic; }
.alp-tier-items { display:flex; flex-direction:column; gap:5px; margin-bottom:12px; }
.alp-ti  { font-size:12px; color:#1a1a1a; display:flex; gap:7px; align-items:flex-start; line-height:1.45; }
.alp-tx  { font-size:12px; color:#bbb; display:flex; gap:7px; align-items:flex-start; line-height:1.45; }
.alp-tok { color:#16a34a; font-size:12px; flex-shrink:0; margin-top:1px; }
.alp-tno { color:#ccc; font-size:12px; flex-shrink:0; margin-top:1px; }
.alp-tier-save { display:inline-block; font-size:10px; padding:3px 10px; border-radius:20px; background:rgba(22,163,74,0.08); color:#15803d; border:1px solid rgba(22,163,74,0.18); font-weight:600; }
.alp-smart-nudge { background:#fffbeb; border:1px solid rgba(234,179,8,0.2); border-radius:8px; padding:11px 14px; margin-top:12px; font-size:11px; color:#92400e; line-height:1.65; }
.alp-exam-ctrl-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:16px; padding-top:16px; border-top:1px solid #f0ece4; }

/* ── BUDGET RECOMMENDATION ── */
.alp-rec { background:#fff; border:1px solid #e0dbd4; border-left:3px solid #c9a84c; border-radius:0 10px 10px 0; padding:12px 16px; margin-bottom:12px; display:none; }
.alp-rec.alp-show { display:block; }
.alp-rec-title { font-size:12px; font-weight:600; color:#1a1a1a; margin-bottom:3px; }
.alp-rec-body  { font-size:11px; color:#555; line-height:1.65; }

/* ── ERROR ── */
.alp-err-msg { font-size:11px; color:#dc2626; margin-top:8px; display:none; }

/* ── GENERATE BUTTON ── */
.alp-gen-btn { width:100%; padding:16px; background:#1a1a1a; color:#c9a84c; border:2px solid #1a1a1a; border-radius:10px; font-size:14px; font-weight:700; letter-spacing:0.08em; cursor:pointer; font-family:'DM Sans',sans-serif; margin-top:16px; transition:all 0.18s; display:block; }
.alp-gen-btn:hover { background:#c9a84c; border-color:#c9a84c; color:#1a1a1a; }

/* ══════════════════════════════════════
   RATE CARD
══════════════════════════════════════ */
.alp-rc-wrap { display:none; margin-top:24px; }
.alp-rc-wrap.alp-show { display:block; animation:alpUp 0.35s ease both; }
@keyframes alpUp { from{opacity:0;transform:translateY(14px)} to{opacity:1;transform:translateY(0)} }

.alp-rc      { background:#fff; border:1px solid #e0dbd4; border-radius:14px; overflow:hidden; }
.alp-rc-bar  { height:3px; background:linear-gradient(90deg,#c9a84c,#e8d08a 50%,#c9a84c); }
.alp-rc-hdr  { padding:20px 26px 16px; display:flex; justify-content:space-between; align-items:center; border-bottom:1px solid #eee; background:#faf9f7; }
.alp-rc-brand{ display:flex; align-items:center; gap:11px; }
.alp-rc-bname{ font-family:'Playfair Display',serif; font-size:14px; color:#1a1a1a; }
.alp-rc-bsub { font-size:9px; color:#bbb; margin-top:2px; }
.alp-rc-hdr-r{ text-align:right; font-size:10px; color:#aaa; line-height:1.9; }
.alp-rc-hdr-r strong { color:#1a1a1a; }

.alp-rc-hero  { padding:22px 26px 18px; border-bottom:1px solid #eee; }
.alp-rc-ey    { font-size:9px; letter-spacing:0.24em; text-transform:uppercase; color:#c9a84c; font-weight:600; margin-bottom:8px; display:flex; align-items:center; gap:8px; }
.alp-rc-ey::before { content:''; width:16px; height:1px; background:#c9a84c; display:block; }
.alp-rc-h3    { font-family:'Playfair Display',serif; font-size:24px; color:#1a1a1a; margin-bottom:5px; }
.alp-rc-desc  { font-size:12px; color:#888; line-height:1.7; }

.alp-rc-meta { display:grid; border-bottom:1px solid #eee; }
.alp-rc-mc   { padding:12px 16px; border-right:1px solid #eee; }
.alp-rc-mc:last-child { border-right:none; }
.alp-rml { font-size:9px; color:#bbb; margin-bottom:3px; text-transform:uppercase; letter-spacing:0.06em; }
.alp-rmv { font-size:12px; font-weight:600; color:#1a1a1a; }

.alp-rc-bk { padding:18px 26px; border-bottom:1px solid #eee; }
.alp-bk-row { display:flex; justify-content:space-between; align-items:center; padding:9px 0; border-bottom:1px solid #f5f2ee; }
.alp-bk-row:last-child { border-bottom:none; }
.alp-bk-lbl { font-size:13px; font-weight:600; color:#1a1a1a; }
.alp-bk-sub { font-size:10px; color:#aaa; margin-top:2px; }
.alp-bk-inc { font-size:11px; font-weight:600; padding:3px 10px; border-radius:20px; background:rgba(22,163,74,0.07); color:#15803d; border:1px solid rgba(22,163,74,0.2); flex-shrink:0; margin-left:12px; }
.alp-bk-exc { font-size:11px; color:#bbb; flex-shrink:0; margin-left:12px; }

.alp-rc-total { padding:16px 26px; display:flex; justify-content:space-between; align-items:center; border-bottom:1px solid #eee; background:#faf9f7; }
.alp-rt-lbl   { font-size:14px; font-weight:600; color:#1a1a1a; }
.alp-rt-sub   { font-size:10px; color:#aaa; margin-top:3px; }
.alp-rt-amt   { font-family:'Playfair Display',serif; font-size:32px; color:#c9a84c; }
.alp-rt-hrd   { font-size:10px; color:#16a34a; font-weight:600; margin-top:3px; text-align:right; }

.alp-rc-chips { padding:14px 26px; display:flex; flex-wrap:wrap; gap:6px; border-bottom:1px solid #eee; align-items:center; }
.alp-chips-lbl{ font-size:9px; letter-spacing:0.12em; text-transform:uppercase; color:#bbb; font-weight:600; margin-right:4px; }
.alp-ci { font-size:10.5px; padding:3px 10px; border-radius:20px; background:rgba(22,163,74,0.07); color:#15803d; border:1px solid rgba(22,163,74,0.2); }
.alp-cx { font-size:10.5px; padding:3px 10px; border-radius:20px; background:#faf9f7; color:#bbb; border:1px solid #eee; }

.alp-rc-warn { padding:12px 26px; background:#fffbeb; border-bottom:1px solid rgba(234,179,8,0.2); display:none; }
.alp-rc-warn.alp-show { display:flex; gap:10px; align-items:flex-start; }
.alp-wi { font-size:16px; flex-shrink:0; }
.alp-wt { font-size:11.5px; color:#92400e; line-height:1.7; }

.alp-rc-grp  { padding:18px 26px; border-bottom:1px solid #eee; }
.alp-grp-lbl { font-size:9px; letter-spacing:0.18em; text-transform:uppercase; color:#bbb; margin-bottom:12px; }
.alp-gt      { width:100%; border-collapse:collapse; font-size:12px; }
.alp-gt th   { font-size:9px; color:#aaa; font-weight:600; padding:7px 10px; text-align:left; background:#faf9f7; border:1px solid #eee; text-transform:uppercase; letter-spacing:0.06em; }
.alp-gt td   { padding:9px 10px; border:1px solid #eee; color:#555; }
.alp-gt tr.alp-hl td { background:rgba(201,168,76,0.08); color:#1a1a1a; font-weight:600; }
.alp-tc      { color:#1a1a1a; font-weight:600; }

.alp-rc-ftr { padding:16px 26px; background:#1a1a1a; display:flex; justify-content:space-between; align-items:center; }
.alp-rfl    { font-size:10px; color:rgba(255,255,255,0.4); line-height:1.9; }
.alp-rfl strong { color:#c9a84c; font-family:'Playfair Display',serif; font-size:12px; font-weight:400; display:block; margin-bottom:1px; }
.alp-rfr .alp-vl { font-size:9px; color:rgba(255,255,255,0.3); text-transform:uppercase; letter-spacing:0.1em; }
.alp-rfr .alp-vv { font-size:13px; font-weight:600; color:#c9a84c; }

/* ── SEND THIS QUOTE CTA ── */
.alp-send-cta { background:linear-gradient(135deg,#1a1a1a 0%,#2a2a2a 100%); border-radius:12px; padding:22px 26px; margin-top:12px; }
.alp-send-cta-inner { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.alp-send-title { font-family:'Playfair Display',serif; font-size:18px; color:#fff; margin-bottom:4px; }
.alp-send-sub   { font-size:11.5px; color:rgba(255,255,255,0.45); line-height:1.55; }
.alp-send-btn   { padding:14px 28px; background:#c9a84c; color:#1a1a1a; border:none; border-radius:8px; font-size:12px; font-weight:700; letter-spacing:0.06em; cursor:pointer; font-family:'DM Sans',sans-serif; white-space:nowrap; transition:background 0.18s; flex-shrink:0; }
.alp-send-btn:hover { background:#e8d08a; }

/* ── RATE CARD ACTION BUTTONS ── */
.alp-rc-actions  { display:flex; gap:10px; margin-top:10px; }
.alp-btn-print   { flex:1; padding:13px; background:#c9a84c; color:#1a1a1a; border:none; border-radius:10px; font-size:12px; font-weight:700; cursor:pointer; font-family:'DM Sans',sans-serif; letter-spacing:0.06em; transition:background 0.18s; }
.alp-btn-print:hover { background:#e8d08a; }
.alp-btn-reset   { padding:13px 20px; background:transparent; color:#666; border:1px solid #ddd; border-radius:10px; font-size:12px; cursor:pointer; font-family:'DM Sans',sans-serif; transition:all 0.18s; }
.alp-btn-reset:hover { border-color:#c9a84c; color:#c9a84c; }

/* ══════════════════════════════════════
   ENQUIRY FORM
══════════════════════════════════════ */
.alp-form-section { margin-top:24px; }
.alp-form-card    { background:#fff; border:1px solid #e0dbd4; border-radius:14px; overflow:hidden; }

.alp-form-hdr { padding:22px 26px 18px; background:#faf9f7; border-bottom:1px solid #eee; display:flex; justify-content:space-between; align-items:flex-start; gap:20px; }
.alp-form-title    { font-family:'Playfair Display',serif; font-size:20px; color:#1a1a1a; margin-bottom:4px; }
.alp-form-subtitle { font-size:11.5px; color:#888; line-height:1.6; max-width:440px; }

.alp-prefilled-summary { background:rgba(201,168,76,0.08); border:1px solid rgba(201,168,76,0.25); border-radius:8px; padding:10px 14px; font-size:11px; color:#666; line-height:1.7; flex-shrink:0; max-width:240px; }
.alp-prefilled-summary strong { color:#1a1a1a; display:block; font-size:10px; letter-spacing:0.1em; text-transform:uppercase; margin-bottom:4px; color:#c9a84c; }

.alp-form       { padding:22px 26px 26px; }
.alp-form-grid  { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.alp-form-group { margin-bottom:0; }
.alp-flbl       { font-size:10px; letter-spacing:0.1em; text-transform:uppercase; color:#aaa; font-weight:600; margin-bottom:6px; display:block; }
.alp-ftextarea  { width:100%; padding:10px 12px; border:1.5px solid #e0dbd4; border-radius:8px; font-size:13px; font-family:'DM Sans',sans-serif; color:#1a1a1a; background:#fff; outline:none; resize:vertical; min-height:90px; transition:border-color 0.15s; }
.alp-ftextarea:focus { border-color:#c9a84c; border-width:2px; }
.alp-form-msg   { padding:12px 16px; border-radius:8px; font-size:12.5px; font-weight:500; margin-bottom:14px; }
.alp-form-msg.alp-success { background:rgba(22,163,74,0.07); color:#15803d; border:1px solid rgba(22,163,74,0.2); }
.alp-form-msg.alp-error   { background:rgba(220,38,38,0.06); color:#dc2626; border:1px solid rgba(220,38,38,0.2); }
.alp-form-submit { width:100%; padding:14px; background:#1a1a1a; color:#c9a84c; border:none; border-radius:8px; font-size:13px; font-weight:700; letter-spacing:0.06em; cursor:pointer; font-family:'DM Sans',sans-serif; margin-top:16px; transition:all 0.18s; }
.alp-form-submit:hover { background:#c9a84c; color:#1a1a1a; }
.alp-form-submit:disabled { opacity:0.5; cursor:not-allowed; }
.alp-form-footnote { font-size:10px; color:#aaa; text-align:center; margin-top:10px; line-height:1.6; }

/* ── RESPONSIVE ── */
@media (max-width: 680px) {
  .alp-ctrl-grid    { grid-template-columns:1fr 1fr; }
  .alp-tier-grid    { grid-template-columns:1fr; }
  .alp-sw-grid      { gap:6px; }
  .alp-fmt-grid     { grid-template-columns:1fr; }
  .alp-mode-tabs    { grid-template-columns:1fr; }
  .alp-page-hdr     { flex-direction:column; gap:12px; }
  .alp-exam-ctrl-grid { grid-template-columns:1fr; }
  .alp-form-grid    { grid-template-columns:1fr; }
  .alp-form-hdr     { flex-direction:column; }
  .alp-prefilled-summary { max-width:100%; }
  .alp-send-cta-inner { flex-direction:column; gap:14px; }
  .alp-send-btn     { width:100%; text-align:center; }
}
