/*
Theme Name:  Envelope Printer Pro
Theme URI:   https://printenvelopesonline.com
Author:      PrintEnvelopesOnline.com
Description: Free online envelope address printer — 22+ sizes, address book, bulk printing, test grid, 6 fonts.
Version:     1.0.0
License:     GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: envelope-printer-pro
*/

/* =========================================
   ROOT VARIABLES
   ========================================= */
:root{
  --navy:#0d1b3e;--navy2:#162040;--navy3:#1e2d52;
  --sky:#2f6bff;--sky2:#4f87ff;--sky-pale:#eef3ff;
  --gold:#e9a825;
  --paper:#fffefb;--paper2:#f8f6f0;
  --ink:#1a1a2e;--ink2:#3d3d5c;--muted:#7b8ab8;
  --border:#dde3f5;--border2:#c8d0e8;
  --success:#16a34a;--warn:#d97706;
  --r:14px;--r2:10px;
  --shadow:0 4px 24px rgba(13,27,62,.10);
  --font-head:'Playfair Display',Georgia,serif;
  --font-body:'Plus Jakarta Sans',system-ui,sans-serif;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--font-body);background:var(--paper2);color:var(--ink);font-size:15px;line-height:1.6;min-height:100vh;}

/* =========================================
   ANIMATIONS
   ========================================= */
@keyframes fadeUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(47,107,255,.3)}50%{box-shadow:0 0 0 8px rgba(47,107,255,0)}}
@keyframes slideDown{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
@keyframes popIn{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}
.fadeUp{animation:fadeUp .55s ease both}
.fu1{animation-delay:.05s}.fu2{animation-delay:.12s}.fu3{animation-delay:.2s}.fu4{animation-delay:.28s}

/* =========================================
   AD SLOTS — collapse completely when empty
   ========================================= */
.ad-slot:empty{display:none!important}
.ad-wrap{max-width:1280px;margin:0 auto;padding:0 24px}
.ad-wrap:has(.ad-slot:empty){display:none!important}
.ad-wrap.ad-banner{padding-bottom:12px}
.ad-wrap.ad-below{margin-top:28px;margin-bottom:8px}
.ad-wrap.ad-inline{margin-top:20px}
.ad-slot{display:flex;justify-content:center;align-items:center;overflow:hidden}

/* =========================================
   HEADER
   ========================================= */
#hdr{background:var(--navy);position:sticky;top:0;z-index:200;box-shadow:0 2px 16px rgba(13,27,62,.22);}
.hdr-inner{max-width:1280px;margin:0 auto;padding:0 24px;display:flex;align-items:center;gap:20px;height:64px;}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;flex-shrink:0}
.logo-icon{width:36px;height:36px;background:linear-gradient(135deg,var(--sky),var(--sky2));border-radius:10px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 10px rgba(47,107,255,.4);}
.logo-icon svg{color:#fff}
.logo-name{font-family:var(--font-head);font-size:1.15rem;color:#fff;letter-spacing:-.3px;line-height:1}
.logo-tld{color:var(--sky2)}
.logo-tag{font-size:.67rem;color:#8fa8e8;margin-top:1px;font-weight:500}
.hdr-nav{display:flex;gap:2px;margin-left:auto}
.hdr-nav a{color:#8fa8e8;text-decoration:none;font-size:.82rem;font-weight:600;padding:7px 14px;border-radius:8px;transition:color .2s,background .2s;}
.hdr-nav a:hover{color:#fff;background:rgba(255,255,255,.09)}
.hdr-ad .ad-slot:empty{display:none}
.hdr-ad{display:flex;align-items:center;margin-left:16px}

/* =========================================
   HERO
   ========================================= */
.hero{background:linear-gradient(135deg,var(--navy) 0%,var(--navy2) 55%,#1a2d5a 100%);padding:52px 24px 44px;position:relative;overflow:hidden;}
.hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 70% 60% at 80% 50%,rgba(47,107,255,.14) 0%,transparent 70%);pointer-events:none;}
.hero-dots{position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(rgba(255,255,255,.05) 1px,transparent 1px);background-size:28px 28px;}
.hero-inner{max-width:1280px;margin:0 auto;display:flex;align-items:center;gap:40px;flex-wrap:wrap}
.hero-text{flex:1;min-width:260px}
.hero-eyebrow{display:inline-flex;align-items:center;gap:7px;background:rgba(47,107,255,.18);border:1px solid rgba(47,107,255,.3);color:#7baaff;font-size:.75rem;font-weight:700;letter-spacing:.8px;text-transform:uppercase;padding:5px 14px;border-radius:20px;margin-bottom:14px;}
h1.hero-h1{font-family:var(--font-head);font-size:clamp(1.9rem,4vw,2.9rem);color:#fff;line-height:1.12;letter-spacing:-.5px;margin-bottom:14px;}
h1.hero-h1 em{color:var(--sky2);font-style:normal}
.hero-sub{color:#8fa8e8;font-size:1rem;max-width:480px;line-height:1.65;margin-bottom:22px}
.hero-badges{display:flex;flex-wrap:wrap;gap:10px}
.badge{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);color:#c8d8f8;font-size:.78rem;font-weight:600;padding:5px 12px;border-radius:20px;}
/* Envelope illustration */
.hero-visual{flex:0 0 auto}
.env-illus{position:relative;width:300px;height:190px;filter:drop-shadow(0 20px 50px rgba(0,0,0,.45));}
.env-body{position:absolute;inset:0;background:linear-gradient(145deg,#fffef8,#f5f0e5);border-radius:6px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08);}
.env-flap{position:absolute;top:0;left:0;right:0;height:50%;background:linear-gradient(170deg,#f8f3e4,#ece5d0);clip-path:polygon(0 0,50% 62%,100% 0);border-radius:6px 6px 0 0;}
.env-fs{position:absolute;top:30%;left:0;right:0;height:20%;background:linear-gradient(180deg,rgba(0,0,0,.06),transparent);}
.env-bl{position:absolute;bottom:0;left:0;width:52%;height:100%;background:linear-gradient(45deg,#ece4cf,transparent 60%);clip-path:polygon(0 100%,0 30%,100% 100%);}
.env-br{position:absolute;bottom:0;right:0;width:52%;height:100%;background:linear-gradient(315deg,#ece4cf,transparent 60%);clip-path:polygon(100% 100%,100% 30%,0 100%);}
.env-line{height:8px;background:rgba(13,27,62,.12);border-radius:4px;margin:5px auto;}
.env-stamp{position:absolute;top:10px;right:14px;width:42px;height:52px;background:linear-gradient(135deg,var(--sky),#1a4fd0);border-radius:4px;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.9);font-size:1.2rem;box-shadow:0 2px 8px rgba(47,107,255,.5);border:2px solid rgba(255,255,255,.2);}
.env-rl{height:5px;background:rgba(13,27,62,.15);border-radius:3px;margin-bottom:4px}

/* =========================================
   STEPS BAR
   ========================================= */
.steps-bar{background:#fff;border-bottom:1px solid var(--border);padding:0 24px}
.steps-inner{max-width:1280px;margin:0 auto;display:flex;align-items:stretch;}
.step-item{display:flex;align-items:center;gap:10px;padding:14px 20px 14px 0;flex:1;position:relative;}
.step-item:not(:last-child)::after{content:'›';position:absolute;right:0;top:50%;transform:translateY(-50%);color:var(--border2);font-size:1.2rem;}
.step-num{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:800;flex-shrink:0;background:var(--sky-pale);color:var(--sky);border:2px solid var(--border);transition:all .25s;}
.step-item.active .step-num{background:var(--sky);color:#fff;border-color:var(--sky);animation:pulse 2s infinite}
.step-item.done .step-num{background:var(--success);color:#fff;border-color:var(--success)}
.step-item.done .step-num::before{content:'✓'}
.step-label{font-size:.8rem;font-weight:600;color:var(--muted)}
.step-item.active .step-label{color:var(--sky)}
.step-item.done .step-label{color:var(--success)}

/* =========================================
   MAIN LAYOUT
   ========================================= */
.main-wrap{max-width:1280px;margin:0 auto;padding:28px 24px 40px;display:grid;grid-template-columns:420px 1fr;gap:24px}
@media(max-width:1100px){.main-wrap{grid-template-columns:1fr}}

/* =========================================
   PANEL CARDS
   ========================================= */
.panel{background:#fff;border:1px solid var(--border);border-radius:var(--r);padding:24px;box-shadow:var(--shadow);}
.panel-title{font-family:var(--font-head);font-size:1.05rem;color:var(--navy);margin-bottom:16px;display:flex;align-items:center;gap:8px;}
.icon-wrap{width:28px;height:28px;border-radius:8px;background:var(--sky-pale);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.icon-wrap svg{color:var(--sky)}
.sec-div{display:flex;align-items:center;gap:10px;margin:18px 0 12px;}
.sec-div span{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:1.2px;color:var(--muted);white-space:nowrap;}
.sec-div::before,.sec-div::after{content:'';flex:1;height:1px;background:var(--border)}

/* =========================================
   MODE TABS (Single / Bulk)
   ========================================= */
.mode-tabs{display:flex;background:var(--paper2);border:1.5px solid var(--border2);border-radius:10px;padding:3px;margin-bottom:18px;gap:3px;}
.mode-tab{flex:1;padding:8px 10px;border:none;border-radius:8px;background:transparent;font-family:var(--font-body);font-size:.82rem;font-weight:700;color:var(--muted);cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:6px;}
.mode-tab.active{background:#fff;color:var(--sky);box-shadow:0 2px 8px rgba(13,27,62,.10);}
.mode-tab:hover:not(.active){color:var(--ink2)}

/* =========================================
   FORM ELEMENTS
   ========================================= */
.field-label{display:block;font-size:.8rem;font-weight:700;color:var(--ink2);margin:0 0 6px;}
.field-hint{font-size:.72rem;color:var(--muted);margin-left:6px;font-weight:500}
.ep-select,.ep-textarea,.ep-input{width:100%;background:#fff;color:var(--ink);border:1.5px solid var(--border2);border-radius:var(--r2);padding:10px 14px;font-size:.9rem;font-family:var(--font-body);outline:none;transition:border-color .2s,box-shadow .2s;}
.ep-select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%237b8ab8' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px;cursor:pointer;}
.ep-select:focus,.ep-textarea:focus,.ep-input:focus{border-color:var(--sky);box-shadow:0 0 0 3px rgba(47,107,255,.12);}
.ep-textarea{resize:vertical;min-height:90px;line-height:1.6}
.ep-input{min-height:auto;padding:8px 12px}
.size-pill{display:inline-flex;align-items:center;gap:5px;background:var(--sky-pale);color:var(--sky);font-size:.72rem;font-weight:800;padding:3px 10px;border-radius:20px;margin-left:auto;border:1px solid rgba(47,107,255,.15);}

/* =========================================
   FONT GRID + SIZE SLIDER
   ========================================= */
.font-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:2px}
.font-btn{border:1.5px solid var(--border2);border-radius:8px;background:#fafbff;padding:7px 8px;cursor:pointer;text-align:center;font-size:.78rem;color:var(--ink2);transition:all .2s;white-space:nowrap;font-family:var(--font-body);}
.font-btn:hover{border-color:var(--sky);color:var(--sky);background:var(--sky-pale)}
.font-btn.sel{border-color:var(--sky);background:var(--sky);color:#fff}
.slider-row{display:flex;align-items:center;gap:10px;margin-top:10px;}
.slider-row label{font-size:.78rem;font-weight:700;color:var(--ink2);white-space:nowrap;}
.ep-slider{flex:1;accent-color:var(--sky);cursor:pointer;height:4px;}
.slider-val{font-size:.78rem;font-weight:800;color:var(--sky);min-width:32px;text-align:right;}

/* =========================================
   BUTTONS
   ========================================= */
.ctrl-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:18px}
.toggle-lbl{display:flex;align-items:center;gap:7px;font-size:.8rem;font-weight:600;color:var(--ink2);cursor:pointer;user-select:none;}
.toggle-lbl input{accent-color:var(--sky);cursor:pointer;width:15px;height:15px}
.btn-print{background:linear-gradient(135deg,var(--sky),#1a4fd0);color:#fff;border:none;padding:11px 20px;border-radius:var(--r2);font-weight:700;font-size:.9rem;cursor:pointer;display:inline-flex;align-items:center;gap:8px;font-family:var(--font-body);box-shadow:0 4px 18px rgba(47,107,255,.35);transition:transform .15s,box-shadow .2s;flex:1;justify-content:center;}
.btn-print:hover{transform:translateY(-1px);box-shadow:0 8px 28px rgba(47,107,255,.4)}
.btn-print:active{transform:scale(.97)}
.btn-ghost{background:#fff;color:var(--navy);border:1.5px solid var(--border2);padding:10px 14px;border-radius:var(--r2);font-weight:700;font-size:.85rem;cursor:pointer;display:inline-flex;align-items:center;gap:7px;font-family:var(--font-body);transition:all .2s;white-space:nowrap;}
.btn-ghost:hover{border-color:var(--sky);color:var(--sky);background:var(--sky-pale)}
.btn-sm{padding:7px 12px;font-size:.78rem;border-radius:8px}
.btn-danger{background:#fff;color:#dc2626;border:1.5px solid #fca5a5;}
.btn-danger:hover{background:#fef2f2;border-color:#dc2626;color:#dc2626}
.btn-success{background:var(--success);color:#fff;border:none;box-shadow:0 3px 12px rgba(22,163,74,.3);}
.btn-success:hover{background:#15803d;box-shadow:0 6px 20px rgba(22,163,74,.35)}
.hint-box{margin-top:14px;padding:11px 14px;background:linear-gradient(135deg,#f0f4ff,#eef6ff);border-left:3px solid var(--sky2);border-radius:0 8px 8px 0;font-size:.78rem;color:var(--ink2);line-height:1.55;}
.hint-box strong{color:var(--sky)}
.warn-box{margin-top:10px;padding:10px 13px;background:#fffbeb;border-left:3px solid var(--warn);border-radius:0 8px 8px 0;font-size:.78rem;color:#92400e;line-height:1.5;}

/* =========================================
   ADDRESS BOOK
   ========================================= */
.ab-panel{background:var(--sky-pale);border:1.5px solid rgba(47,107,255,.18);border-radius:var(--r2);overflow:hidden;}
.ab-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;cursor:pointer;user-select:none;}
.ab-header-left{display:flex;align-items:center;gap:8px;font-size:.82rem;font-weight:800;color:var(--navy);}
.ab-chevron{transition:transform .25s;color:var(--sky);font-size:.8rem;}
.ab-panel.open .ab-chevron{transform:rotate(180deg)}
.ab-body{display:none;padding:0 14px 12px;animation:slideDown .2s ease}
.ab-panel.open .ab-body{display:block}
.ab-save-row{display:flex;gap:6px;margin-bottom:10px;flex-wrap:wrap;}
.ab-list{display:flex;flex-direction:column;gap:6px;max-height:220px;overflow-y:auto;}
.ab-list:empty::after{content:"No saved addresses yet.";font-size:.76rem;color:var(--muted);display:block;text-align:center;padding:8px 0;}
.ab-item{background:#fff;border:1.5px solid var(--border);border-radius:8px;padding:8px 10px;display:flex;align-items:flex-start;gap:8px;animation:popIn .15s ease;}
.ab-item-text{flex:1;min-width:0;}
.ab-item-name{font-size:.74rem;font-weight:800;color:var(--navy);margin-bottom:2px;}
.ab-item-addr{font-size:.7rem;color:var(--muted);white-space:pre-line;line-height:1.4;}
.ab-item-btns{display:flex;flex-direction:column;gap:4px;flex-shrink:0;}
.ab-btn{border:none;border-radius:6px;padding:4px 8px;font-size:.68rem;font-weight:700;cursor:pointer;font-family:var(--font-body);transition:all .15s;}
.ab-btn-load-ret{background:#dbeafe;color:#1d4ed8;}
.ab-btn-load-ret:hover{background:#bfdbfe}
.ab-btn-load-rec{background:#dcfce7;color:#166534;}
.ab-btn-load-rec:hover{background:#bbf7d0}
.ab-btn-del{background:#fee2e2;color:#dc2626;}
.ab-btn-del:hover{background:#fca5a5}

/* =========================================
   BULK MODE
   ========================================= */
.bulk-count-bar{display:flex;align-items:center;justify-content:space-between;background:var(--sky-pale);border:1.5px solid rgba(47,107,255,.2);border-radius:8px;padding:8px 14px;margin-bottom:12px;}
.bulk-count{font-size:.82rem;font-weight:800;color:var(--navy);}
.bulk-count span{color:var(--sky)}
.bulk-nav{display:flex;gap:6px;align-items:center;}
.bulk-nav button{background:#fff;border:1.5px solid var(--border2);border-radius:6px;padding:5px 10px;font-size:.78rem;font-weight:700;cursor:pointer;font-family:var(--font-body);color:var(--navy);transition:all .15s;}
.bulk-nav button:hover{border-color:var(--sky);color:var(--sky)}
.bulk-nav button:disabled{opacity:.4;cursor:not-allowed}
.bulk-parse-info{font-size:.74rem;color:var(--success);font-weight:700;margin-top:6px;display:none;}

/* =========================================
   PRINT TEST GRID
   ========================================= */
#previewEnvelope.test-grid::before{
  content:'';position:absolute;inset:0;z-index:10;pointer-events:none;
  background-image:
    linear-gradient(rgba(255,0,0,.12) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,0,0,.12) 1px,transparent 1px),
    linear-gradient(rgba(255,0,0,.05) .5px,transparent .5px),
    linear-gradient(90deg,rgba(255,0,0,.05) .5px,transparent .5px);
  background-size:96px 96px,96px 96px,24px 24px,24px 24px;
}
#previewEnvelope.test-grid::after{
  content:'1"';position:absolute;top:3px;left:3px;font-size:9px;color:rgba(200,0,0,.5);font-weight:700;z-index:11;font-family:monospace;pointer-events:none;
}
.grid-ruler-h,.grid-ruler-v{position:absolute;z-index:11;pointer-events:none;display:none;}
#previewEnvelope.test-grid .grid-ruler-h,#previewEnvelope.test-grid .grid-ruler-v{display:block}

/* =========================================
   PREVIEW AREA
   ========================================= */
.preview-card{display:flex;flex-direction:column}
.prev-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;flex-wrap:wrap;gap:8px;}
.prev-label{font-family:var(--font-head);font-size:1.05rem;color:var(--navy);display:flex;align-items:center;gap:8px}
.live-dot{width:8px;height:8px;background:#22c55e;border-radius:50%;animation:pulse 2s infinite;flex-shrink:0;}
#previewArea{flex:1;min-height:min(72vh,720px);background:radial-gradient(ellipse 80% 60% at 50% 40%,rgba(47,107,255,.045) 0%,transparent 70%),linear-gradient(135deg,#f1f4fb 0%,#e8ecf8 100%);border-radius:var(--r2);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;border:1.5px solid var(--border);}
#previewArea::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(47,107,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(47,107,255,.05) 1px,transparent 1px);background-size:30px 30px;border-radius:var(--r2);}
#previewEnvelope{position:absolute;left:0;top:0;background:#fffefb;border:1px solid #c8c2b0;box-shadow:0 8px 36px rgba(13,27,62,.18),0 2px 6px rgba(13,27,62,.1);transform-origin:0 0;border-radius:3px;overflow:hidden;}
#previewEnvelope .env-flap-deco{position:absolute;top:0;left:0;right:0;height:40%;background:linear-gradient(180deg,rgba(180,165,130,.1) 0%,transparent 100%);clip-path:polygon(0 0,50% 62%,100% 0);pointer-events:none;}
.addr{position:absolute;white-space:pre-wrap;overflow-wrap:anywhere;color:#1a1a2e;}
.bulk-indicator{position:absolute;bottom:6px;right:8px;font-size:9px;color:rgba(100,100,120,.4);font-family:monospace;font-weight:700;}

/* =========================================
   SIZE GUIDE SECTION
   ========================================= */
.size-guide-section{max-width:1280px;margin:0 auto;padding:32px 24px}
.section-title{font-family:var(--font-head);font-size:1.5rem;color:var(--navy);margin-bottom:8px;text-align:center}
.section-sub{text-align:center;color:var(--muted);font-size:.86rem;margin-bottom:24px;}
.sg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;}
.sg-card{background:#fff;border:1.5px solid var(--border);border-radius:10px;padding:12px;cursor:pointer;transition:all .2s;text-align:center;position:relative;}
.sg-card:hover{border-color:var(--sky);box-shadow:0 4px 16px rgba(47,107,255,.12);transform:translateY(-2px);}
.sg-card.active-size{border-color:var(--sky);background:var(--sky-pale);}
.sg-env-preview{margin:0 auto 8px;border:1.5px solid #c8c2b0;background:linear-gradient(145deg,#fffef8,#f5f0e5);border-radius:2px;position:relative;box-shadow:2px 3px 8px rgba(13,27,62,.12);}
.sg-env-preview::after{content:'';position:absolute;top:0;left:0;right:0;height:40%;background:linear-gradient(180deg,rgba(180,165,130,.15) 0%,transparent 100%);clip-path:polygon(0 0,50% 55%,100% 0);}
.sg-name{font-size:.78rem;font-weight:800;color:var(--navy);margin-bottom:2px}
.sg-dims{font-size:.67rem;color:var(--muted)}
.sg-use{font-size:.64rem;color:var(--sky);font-weight:700;margin-top:3px;background:var(--sky-pale);border-radius:4px;padding:1px 5px;display:inline-block;}

/* =========================================
   FEATURE STRIP
   ========================================= */
.feat-strip{background:#fff;border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:22px 24px;}
.feat-inner{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:20px;}
.feat-item{display:flex;align-items:flex-start;gap:12px}
.feat-ico{width:38px;height:38px;border-radius:10px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:1.1rem;}
.feat-ico.blue{background:linear-gradient(135deg,#dbeafe,#bfdbfe)}
.feat-ico.gold{background:linear-gradient(135deg,#fef3c7,#fde68a)}
.feat-ico.green{background:linear-gradient(135deg,#dcfce7,#bbf7d0)}
.feat-ico.rose{background:linear-gradient(135deg,#ffe4e6,#fecdd3)}
.feat-ico.purple{background:linear-gradient(135deg,#f3e8ff,#e9d5ff)}
.feat-ico.teal{background:linear-gradient(135deg,#ccfbf1,#99f6e4)}
.feat-ico.orange{background:linear-gradient(135deg,#ffedd5,#fed7aa)}
.feat-h{font-size:.85rem;font-weight:800;color:var(--navy);margin-bottom:2px}
.feat-p{font-size:.76rem;color:var(--muted);line-height:1.45}

/* =========================================
   FAQ
   ========================================= */
.faq-section{max-width:1280px;margin:0 auto;padding:32px 24px}
.faq-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}
.faq-item{background:#fff;border:1px solid var(--border);border-radius:var(--r2);padding:16px 18px;}
.faq-q{font-size:.86rem;font-weight:800;color:var(--navy);margin-bottom:6px}
.faq-a{font-size:.8rem;color:var(--muted);line-height:1.55}

/* =========================================
   OVERLAY
   ========================================= */
.overlay{position:fixed;inset:0;background:rgba(10,16,38,.88);display:none;align-items:center;justify-content:center;z-index:9998;padding:24px;backdrop-filter:blur(4px);}
.overlay.active{display:flex}
.ov-inner{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;overflow:hidden;}
#overlayEnvelope{position:absolute;left:0;top:0;background:#fffefb;box-shadow:0 20px 80px rgba(0,0,0,.5);border:1px solid #c8c2b0;transform-origin:0 0;border-radius:3px;overflow:hidden;}
#overlayEnvelope .env-flap-deco{position:absolute;top:0;left:0;right:0;height:40%;background:linear-gradient(180deg,rgba(180,165,130,.1) 0%,transparent 100%);clip-path:polygon(0 0,50% 62%,100% 0);pointer-events:none;}
.ov-close{position:fixed;top:16px;right:16px;background:var(--navy);color:#fff;border:1px solid rgba(255,255,255,.15);border-radius:var(--r2);padding:10px 16px;cursor:pointer;font-weight:700;z-index:10000;font-size:.88rem;font-family:var(--font-body);display:flex;align-items:center;gap:7px;transition:background .2s;}
.ov-close:hover{background:#1e2d52}

/* =========================================
   FOOTER
   ========================================= */
#ftr{background:var(--navy);padding:28px 24px;}
.ftr-inner{max-width:1280px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;}
.ftr-inner p{font-size:.8rem;color:#5a7aa8}
.ftr-links{display:flex;gap:18px;flex-wrap:wrap;justify-content:center}
.ftr-links a{font-size:.78rem;color:#5a7aa8;text-decoration:none;transition:color .2s}
.ftr-links a:hover{color:var(--sky2)}
.ftr-logo{font-family:var(--font-head);font-size:1rem;color:#8fa8e8;margin-bottom:4px}

/* =========================================
   PRINT STYLES
   ========================================= */
@media print{
  body *:not(#printArea):not(#printArea *){display:none!important}
  #printArea{display:block!important;position:relative!important}
  #printEnvelope{position:relative!important;background:#fff!important}
  .addr{color:#000!important}
}

/* =========================================
   RESPONSIVE
   ========================================= */
@media(max-width:700px){
  .hdr-nav{display:none}.env-illus{width:200px;height:126px}.hero-visual{display:none}
  .ctrl-row{flex-direction:column}.btn-print,.btn-ghost{width:100%}
  .font-grid{grid-template-columns:repeat(2,1fr)}
  .ab-save-row{flex-direction:column}
}
