:root{
  --bg:#f4f7fb;
  --card:#ffffff;
  --text:#162033;
  --muted:#6f7a8d;
  --line:#dce3ec;
  --brand:#0f3557;
  --brand2:#d5a648;
  --danger:#b42318;
  --shadow:0 16px 45px rgba(15,53,87,.10);
  --radius:20px;
}
*{box-sizing:border-box}
body{margin:0;background:linear-gradient(180deg,#eef4f9 0%,#f8fafc 45%,#edf2f7 100%);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text)}
.shell{max-width:980px;margin:0 auto;padding:22px 14px 50px}
.center-shell{min-height:100vh;display:grid;place-items:center}
.topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:10px 4px 20px}
.brand{font-weight:900;letter-spacing:.06em;color:var(--brand);font-size:18px}
.brand span{display:block;color:#66758a;font-size:10px;letter-spacing:.24em;margin-top:2px}
.secure,.badge{font-size:13px;color:#526174}
.badge{display:inline-block;background:#eef5fb;padding:7px 11px;border-radius:999px;margin:16px 0 4px}
.card{background:rgba(255,255,255,.97);border:1px solid rgba(220,227,236,.85);border-radius:var(--radius);box-shadow:var(--shadow);padding:30px}
.intro-card,.success-card{max-width:650px;text-align:center;padding:48px 34px}
h1{font-size:clamp(28px,5vw,44px);line-height:1.08;margin:10px 0 14px;letter-spacing:-.035em}
h2{font-size:27px;margin:4px 0 20px}
h3{font-size:17px;margin:28px 0 12px}
p{line-height:1.65}
.muted{color:var(--muted)}
.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:11px;font-weight:800;color:#68778a}
.progress{height:8px;background:#e8edf3;border-radius:999px;overflow:hidden;margin:24px 0 8px}
.progress span{display:block;height:100%;width:20%;background:linear-gradient(90deg,var(--brand),#2b6d9f);transition:.25s}
.progress-label{font-size:12px;color:var(--muted);margin-bottom:24px}
.step{display:none}
.step.active{display:block}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:700;color:#344256}
label.wide{grid-column:1/-1}
input,select,textarea{width:100%;border:1px solid var(--line);background:#fff;border-radius:12px;padding:14px 13px;font:inherit;color:var(--text);outline:none;transition:.15s}
input:focus,select:focus,textarea:focus{border-color:#6d98b8;box-shadow:0 0 0 4px rgba(54,117,162,.10)}
input[type=checkbox]{width:20px;height:20px;accent-color:var(--brand)}
.check,.toggle{flex-direction:row;align-items:flex-start;font-weight:600;gap:10px;line-height:1.45}
.stack,.consent{display:grid;gap:12px}
.consent{background:#f8fafc;border:1px solid var(--line);padding:16px;border-radius:14px}
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chips label{flex-direction:row;align-items:center;border:1px solid var(--line);border-radius:999px;padding:10px 13px;background:#fff}
.top-gap{margin-top:18px}
.actions{display:flex;justify-content:space-between;gap:12px;margin-top:30px;padding-top:22px;border-top:1px solid var(--line)}
.btn{border:0;border-radius:12px;padding:14px 20px;background:var(--brand);color:white;font-weight:800;cursor:pointer;min-width:130px}
.btn.secondary{background:#edf2f6;color:#314158}
#submitBtn{display:none;margin-left:auto}
.alert{background:#fff0ee;color:var(--danger);padding:12px 14px;border-radius:12px;margin:16px 0}
.review-box{background:#f4f8fb;border:1px solid #dce8f0;border-radius:14px;padding:16px;margin-bottom:20px}
.certify{margin-top:20px;padding:15px;border:1px solid var(--line);border-radius:14px}
.success-icon{width:70px;height:70px;border-radius:50%;display:grid;place-items:center;background:#ecf8f0;margin:0 auto 20px;font-size:34px;color:#1f7a45;font-weight:900}
@media(max-width:700px){
  .shell{padding:10px 10px 34px}
  .topbar{padding:8px 5px 14px}
  .secure{font-size:11px}
  .card{padding:22px 16px;border-radius:16px}
  .grid{grid-template-columns:1fr}
  .wide{grid-column:auto!important}
  h1{font-size:31px}
  h2{font-size:24px}
  input,select,textarea{font-size:16px;padding:15px 13px}
  .actions{position:sticky;bottom:0;background:rgba(255,255,255,.96);margin:26px -16px -22px;padding:14px 16px;border-radius:0 0 16px 16px;backdrop-filter:blur(8px)}
  .btn{flex:1;min-width:0}
}

/* V1.2 centered branding revision */
.logo-wrap{display:flex;justify-content:center;align-items:center;width:100%;min-height:82px}
.brand-logo{
  display:block;
  width:220px;
  max-width:58vw;
  height:auto;
  max-height:none;
  object-fit:contain;
}
.brand-fallback{display:none;text-align:center}
.topbar{
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:8px;
  padding:16px 4px 22px;
}
.topbar .secure{
  position:static;
  transform:none;
  text-align:center;
  font-size:12px;
  white-space:nowrap;
}
.field-error{display:block;color:#b42318;font-size:12px;font-weight:650;line-height:1.35;margin-top:1px}
input.invalid,select.invalid,textarea.invalid{border-color:#d92d20;background:#fff8f7;box-shadow:0 0 0 4px rgba(217,45,32,.08)}
.required-mark{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:#b42318;background:#fff0ee;border-radius:999px;padding:3px 7px;margin-left:4px;white-space:nowrap}
.required-mark.conditional{color:#9a6700;background:#fff7df}
.compact{margin-top:-12px;margin-bottom:12px}
.contact-chips{margin-bottom:8px}
.btn:disabled{background:#c8d0da!important;color:#768397!important;cursor:not-allowed!important;box-shadow:none!important;opacity:1}
.site-footer{text-align:center;color:#7a8698;font-size:12px;line-height:1.7;padding:24px 10px 6px}
.certify .field-error{margin-left:4px}
@media(max-width:700px){
  .topbar{padding:14px 4px 18px;gap:7px}
  .logo-wrap{justify-content:center;min-height:76px}
  .brand-logo{width:175px;max-width:62vw;height:auto}
  .brand-fallback{text-align:center}
  .topbar .secure{font-size:11px}
}

/* V1.8 robust certification card */
.certification-card{
  margin-top:20px;
  padding:16px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
}
.certification-label{
  display:flex;
  flex-direction:row;
  align-items:flex-start;
  gap:12px;
  margin:0;
  cursor:pointer;
  color:#344256;
  font-size:13px;
  font-weight:650;
  line-height:1.5;
}
.certification-label input[type="checkbox"]{
  -webkit-appearance:checkbox !important;
  appearance:auto !important;
  display:block !important;
  width:22px !important;
  min-width:22px !important;
  max-width:22px !important;
  height:22px !important;
  min-height:22px !important;
  max-height:22px !important;
  padding:0 !important;
  margin:1px 0 0 0 !important;
  flex:0 0 22px !important;
  border:0 !important;
  border-radius:4px !important;
  background:transparent !important;
  box-shadow:none !important;
  opacity:1 !important;
  visibility:visible !important;
  accent-color:var(--brand);
}
.certification-text{
  display:block;
  flex:1 1 auto;
  color:#344256;
}
.certification-card.has-error{
  border-color:#d92d20;
  background:#fff8f7;
}
.certification-error{
  margin:8px 0 0 34px;
}

/* V1.10 success-page real logo */
.success-logo{
  display:block;
  width:180px;
  max-width:55vw;
  height:auto;
  margin:0 auto 18px;
  object-fit:contain;
}
@media(max-width:700px){
  .success-logo{
    width:155px;
    max-width:58vw;
    margin-bottom:16px;
  }
}

/* V1.11 customer review-before-submit */
.review-intro{
  margin-bottom:18px;
}
.customer-review-summary{
  display:grid;
  gap:14px;
  margin-bottom:28px;
}
.review-section-card{
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
  overflow:hidden;
}
.review-section-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  padding:14px 16px;
  background:#f7f9fc;
  border-bottom:1px solid var(--line);
}
.review-section-head>div{
  display:flex;
  align-items:center;
  gap:10px;
}
.review-section-head h3{
  margin:0;
  font-size:16px;
}
.review-section-number{
  width:26px;
  height:26px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:var(--brand);
  color:#fff;
  font-size:11px;
  font-weight:900;
}
.review-edit-btn{
  border:1px solid #cbd8e4;
  background:#fff;
  color:var(--brand);
  border-radius:9px;
  padding:7px 11px;
  font-size:12px;
  font-weight:800;
  cursor:pointer;
}
.review-edit-btn:hover{
  background:#eef4f8;
}
.review-summary-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.review-summary-item{
  padding:12px 16px;
  border-bottom:1px solid #edf1f5;
}
.review-summary-item:nth-child(odd){
  border-right:1px solid #edf1f5;
}
.review-summary-label{
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:#718096;
  font-weight:800;
  margin-bottom:5px;
}
.review-summary-value{
  font-size:13px;
  color:#18263a;
  font-weight:700;
  line-height:1.45;
  white-space:pre-wrap;
  word-break:break-word;
}
.review-summary-item.empty .review-summary-value{
  color:#98a2b3;
  font-weight:600;
}
.final-confirmation-title{
  margin:28px 0 16px;
  padding-top:6px;
  border-top:1px solid var(--line);
}
.final-confirmation-title h3{
  margin:20px 0 4px;
}
.final-confirmation-title p{
  margin:0;
  color:var(--muted);
  font-size:13px;
}
@media(max-width:700px){
  .review-summary-grid{
    grid-template-columns:1fr;
  }
  .review-summary-item:nth-child(odd){
    border-right:0;
  }
  .review-section-head{
    padding:12px 13px;
  }
  .review-section-head h3{
    font-size:14px;
  }
  .review-summary-item{
    padding:11px 13px;
  }
}


/* V2.2 Online Ordering & Shipping */
.online-ordering-section{margin:28px 0 30px;border:1px solid #d9e3ec;border-radius:18px;overflow:hidden;background:#f9fbfd}
.online-ordering-copy{padding:20px}
.online-ordering-kicker{font-size:10px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:#6d7d90;margin-bottom:6px}
.online-ordering-copy h3{margin:0 0 8px;font-size:22px}
.online-ordering-copy>p{margin:0 0 18px;color:var(--muted);font-size:14px}
.online-ordering-options{display:grid;gap:12px}
.online-toggle{background:#fff;border:1px solid #dce4ec;border-radius:14px;padding:14px;align-items:flex-start}
.online-toggle input{margin-top:2px}
.online-toggle span,.online-toggle strong,.online-toggle small{display:block}
.online-toggle strong{color:#1e2c3f;font-size:13px}
.online-toggle small{margin-top:4px;color:#6f7d8f;font-size:11px;font-weight:500;line-height:1.45}
.online-promo-card{display:grid;grid-template-columns:minmax(150px,220px) 1fr;align-items:stretch;border-top:1px solid #d9e3ec;background:#fff}
.online-promo-image,.online-promo-placeholder{width:100%;height:100%;min-height:210px}
.online-promo-image{display:block;object-fit:contain;padding:18px;background:#f7fafc}
.online-promo-placeholder{display:grid;place-items:center;align-content:center;gap:8px;text-align:center;padding:20px;background:#f4f7fa;color:#7a8797;font-size:11px;font-weight:700}
.online-promo-gift{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:#fff5df;color:#d99100;font-size:24px}
.online-promo-content{padding:20px}
.online-promo-badge{display:inline-block;border-radius:999px;padding:6px 9px;background:#fff0d8;color:#9b5600;font-size:9px;font-weight:900;letter-spacing:.08em;margin-bottom:8px}
.online-promo-content h4{margin:0 0 8px;font-size:20px;line-height:1.2}
.online-promo-content p{margin:0 0 10px;font-size:13px;line-height:1.55}
.online-promo-content small{display:block;color:#7a8797;font-size:10px;line-height:1.5}
@media(max-width:700px){
  .online-ordering-copy{padding:16px}
  .online-ordering-copy h3{font-size:19px}
  .online-promo-card{grid-template-columns:1fr}
  .online-promo-image,.online-promo-placeholder{min-height:190px}
  .online-promo-content{padding:16px}
}


/* V2.2.1 Featured Online Ordering Offer */
.online-ordering-section{
  position:relative;
  margin:34px 0 34px;
  border:2px solid #d7352a !important;
  border-radius:20px !important;
  background:linear-gradient(180deg,#fff9f7 0%,#fff 62%) !important;
  box-shadow:0 14px 36px rgba(183,49,38,.14) !important;
  overflow:visible !important;
}

.online-ordering-section::before{
  content:"ONLINE ORDERING AVAILABLE";
  position:absolute;
  top:-14px;
  left:18px;
  z-index:2;
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:6px 12px;
  border-radius:999px;
  background:#c92f25;
  color:#fff;
  font-size:9px;
  font-weight:900;
  letter-spacing:.11em;
  text-transform:uppercase;
  box-shadow:0 5px 14px rgba(183,49,38,.22);
}

.online-ordering-copy{
  padding:28px 22px 22px !important;
}

.online-ordering-kicker{
  color:#b42318 !important;
  font-size:10px !important;
}

.online-ordering-copy h3{
  color:#8f1f18 !important;
  font-size:24px !important;
  margin-bottom:10px !important;
}

.online-ordering-copy>p{
  color:#465568 !important;
  font-size:14px !important;
  line-height:1.6 !important;
}

.online-ordering-options{
  gap:14px !important;
}

.online-toggle{
  border:1.5px solid #efc2bd !important;
  background:#fff !important;
  box-shadow:0 4px 12px rgba(45,55,72,.05);
  transition:transform .16s ease, border-color .16s ease, box-shadow .16s ease, background .16s ease;
}

.online-toggle:hover{
  transform:translateY(-1px);
  border-color:#d7352a !important;
  box-shadow:0 8px 18px rgba(183,49,38,.10);
}

.online-toggle:has(input:checked){
  border-color:#c92f25 !important;
  background:#fff4f2 !important;
  box-shadow:0 0 0 3px rgba(201,47,37,.08);
}

.online-toggle input[type="checkbox"]{
  accent-color:#c92f25 !important;
}

.online-toggle strong{
  color:#1f2937 !important;
  font-size:14px !important;
}

.online-toggle small{
  color:#667085 !important;
  font-size:11px !important;
}

.online-promo-card{
  border-top:2px solid #f1c4bf !important;
  background:linear-gradient(135deg,#fff7ef 0%,#fff 75%) !important;
  border-radius:0 0 18px 18px;
  overflow:hidden;
}

.online-promo-badge{
  background:#c92f25 !important;
  color:#fff !important;
  font-size:9px !important;
  padding:7px 10px !important;
}

.online-promo-content h4{
  color:#8f1f18 !important;
  font-size:22px !important;
  margin-bottom:10px !important;
}

.online-promo-content p{
  font-size:14px !important;
  font-weight:650 !important;
  color:#263548 !important;
}

.online-promo-placeholder{
  background:linear-gradient(145deg,#fff0e8,#fff8f4) !important;
  color:#9c3b32 !important;
}

.online-promo-gift{
  width:62px !important;
  height:62px !important;
  background:#fff !important;
  color:#c92f25 !important;
  box-shadow:0 6px 18px rgba(183,49,38,.12);
}

@media(max-width:700px){
  .online-ordering-section{
    margin-top:32px !important;
  }
  .online-ordering-section::before{
    left:14px;
    top:-13px;
    font-size:8px;
  }
  .online-ordering-copy{
    padding:26px 16px 18px !important;
  }
  .online-ordering-copy h3{
    font-size:21px !important;
  }
  .online-promo-content h4{
    font-size:20px !important;
  }
}
