.header {border-bottom:1px solid var(--border);}

.page-wrap { max-width:1060px; margin:0 auto; padding:80px 40px 80px; }
.page-top { padding-top:40px; margin-bottom:40px; }
.page-tag { font-size:0.68rem; letter-spacing:0.22em; text-transform:uppercase; color:var(--red); font-weight:600; display:flex; align-items:center; gap:10px; margin-bottom:12px; }
.page-tag::after { content:''; display:block; width:32px; height:1px; background:var(--red); }
.page-title { font-family:'Cormorant Garamond',serif; font-size:clamp(1.8rem,3.5vw,2.8rem); font-weight:300; line-height:1.15; }
.page-title strong { font-weight:600; }

/* MAIN GRID */
.main-grid { display:grid; grid-template-columns:1fr 360px; gap:40px; align-items:start; }

/* LEFT: PRODUCT CARD */
.product-card { background:#fff; border:1px solid var(--border); border-radius:2px; overflow:hidden; }

.product-header { background:var(--forest); padding:24px 28px; }
.product-header h2 { font-family:'Bebas Neue',sans-serif; font-size:1.5rem; letter-spacing:0.08em; color:#fff; margin-bottom:4px; }
.product-header p { font-size:0.82rem; color:rgba(255,255,255,0.6); font-weight:300; }

.product-body { padding:28px; }

/* PROGRAMME TOGGLE */
.field-label { font-size:0.7rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--mid); font-weight:600; display:block; margin-bottom:10px; }

.prog-tabs { display:grid; grid-template-columns:1fr 1fr; gap:0; border:1.5px solid var(--border); border-radius:2px; overflow:hidden; margin-bottom:28px; }
.prog-tab {
  padding:16px 18px; cursor:pointer; transition:all .18s;
  border-right:1.5px solid var(--border);
  background:#fff;
}
.prog-tab:last-child { border-right:none; }
.prog-tab.active { background:var(--red); }
.prog-tab-name { font-size:0.9rem; font-weight:600; color:var(--dark); transition:color .18s; }
.prog-tab.active .prog-tab-name { color:#fff; }
.prog-tab-price { font-size:0.78rem; color:var(--mid); font-weight:300; margin-top:2px; transition:color .18s; }
.prog-tab.active .prog-tab-price { color:rgba(255,255,255,0.7); }

/* SEPARATOR */
.separator { border:none; border-top:1px solid var(--border); margin:24px 0; }

/* DATE OPTIONS */
.options-grid { display:flex; flex-direction:column; gap:8px; margin-bottom:28px; }
.opt {
  display:flex; align-items:center; gap:14px;
  border:1.5px solid var(--border); border-radius:2px; padding:14px 18px;
  cursor:pointer; transition:all .18s; background:#fff;
}
.opt:hover { border-color:rgba(214,59,24,0.4); }
.opt.active { border-color:var(--red); background:rgba(214,59,24,0.03); }
.opt-radio {
  width:18px; height:18px; border-radius:50%;
  border:2px solid var(--border); flex-shrink:0; transition:all .18s;
}
.opt.active .opt-radio { border-color:var(--red); background:var(--red); box-shadow:inset 0 0 0 3px #fff; }
.opt-label { font-size:0.9rem; font-weight:600; color:var(--dark); flex:1; }
.opt-sub { font-size:0.78rem; color:var(--mid); font-weight:300; }

/* DURATION */
.dur-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-bottom:28px; }
.dur-opt {
  border:1.5px solid var(--border); border-radius:2px; padding:14px 10px;
  cursor:pointer; text-align:center; transition:all .18s; background:#fff;
}
.dur-opt:hover { border-color:rgba(214,59,24,0.4); }
.dur-opt.active { border-color:var(--red); background:rgba(214,59,24,0.03); }
.dur-weeks { font-family:'Bebas Neue',sans-serif; font-size:2rem; color:var(--dark); line-height:1; }
.dur-lbl { font-size:0.68rem; color:var(--mid); text-transform:uppercase; letter-spacing:0.1em; font-weight:600; }
.dur-price { font-size:0.82rem; color:var(--red); font-weight:600; margin-top:6px; }
.dur-opt.active .dur-weeks, .dur-opt.active .dur-lbl { color:var(--red); }

/* INCLUDES */
.includes { background:var(--cream); border-radius:2px; padding:16px 18px; margin-bottom:0; }
.includes p { font-size:0.7rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--mid); font-weight:600; margin-bottom:10px; }
.includes ul { list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:5px 16px; }
.includes li { font-size:0.8rem; color:var(--dark); display:flex; align-items:flex-start; gap:7px; }
.includes li::before { content:'✓'; color:#2B6B3C; font-weight:700; flex-shrink:0; font-size:0.73rem; margin-top:2px; }

/* INDIVIDUAL PANEL */
.individual-panel { display:none; padding:24px; background:var(--forest); border-radius:2px; margin-bottom:28px;}
.individual-panel h3 { font-family:'Cormorant Garamond',serif; font-size:1.3rem; font-weight:300; color:var(--gold); margin-bottom:10px; }
.individual-panel p { font-size:0.85rem; color:rgba(255,255,255,0.7); line-height:1.65; font-weight:300; }
.individual-panel a {/*  color:var(--gold); */ font-weight:600; text-decoration:none; }
.contact-btn {
  display:inline-flex; align-items:center; gap:8px;
  margin-top:16px; background:var(--gold); color:var(--dark);
  padding:11px 22px; border-radius:2px;
  font-size:0.75rem; letter-spacing:0.12em; text-transform:uppercase; font-weight:600;
  text-decoration:none; transition:opacity .2s;
}
.contact-btn:hover { opacity:.85; }

/* RIGHT: ORDER SUMMARY */
.summary-card { background:#fff; border:1px solid var(--border); border-radius:2px; position:sticky; top:76px; }
.summary-head { background:var(--dark); padding:20px 24px; display:flex; align-items:center; justify-content:space-between; }
.summary-head h3 { font-family:'Bebas Neue',sans-serif; font-size:1.15rem; letter-spacing:0.1em; color:#fff; }
.summary-head span { font-size:0.65rem; letter-spacing:0.12em; text-transform:uppercase; color:rgba(255,255,255,0.45); font-weight:600; }
.summary-body { padding:22px; }

.sum-row { display:flex; justify-content:space-between; align-items:flex-start; gap:10px; padding:9px 0; border-bottom:1px solid var(--border); }
.sum-row:last-of-type { border-bottom:none; }
.sum-key { font-size:0.8rem; color:var(--mid); font-weight:300; }
.sum-val { font-size:0.85rem; color:var(--dark); font-weight:600; text-align:right; }
.sum-val.muted { color:var(--mid); font-weight:300; font-style:italic; }

.sum-total-block { border-top:2px solid var(--dark); padding-top:14px; margin-top:10px; }
.sum-total-label { font-size:0.68rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--mid); font-weight:600; }
.sum-total-amount { font-family:'Bebas Neue',sans-serif; font-size:2.6rem; color:var(--dark); line-height:1.05; letter-spacing:0.04em; }
.deposit-row { font-size:0.78rem; color:var(--mid); margin-top:5px; font-weight:300; }
.deposit-row strong { color:var(--red); font-weight:600; }

.cta-btn {
  display:block; width:100%; margin-top:18px;
  background:var(--red); color:#fff; padding:15px;
  font-size:0.8rem; letter-spacing:0.14em; text-transform:uppercase; font-weight:600;
  border:none; cursor:pointer; border-radius:2px; transition:opacity .2s;
}
.cta-btn:hover { opacity:.88; }
.cta-btn:disabled { opacity:.35; cursor:not-allowed; }
.cta-btn.secondary { background:var(--forest); margin-top:8px; }

.secure-row { display:flex; align-items:center; justify-content:center; gap:5px; margin-top:10px; font-size:0.7rem; color:var(--mid); }

.note-box { background:rgba(214,59,24,0.05); border-left:3px solid var(--red); padding:11px 14px; font-size:0.8rem; color:var(--mid); line-height:1.6; margin-top:16px; border-radius:0 2px 2px 0; }

.whats-next { margin-top:20px; padding-top:18px; border-top:1px solid var(--border); }
.whats-next p { font-size:0.68rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--mid); font-weight:600; margin-bottom:12px; }
.next-item { display:flex; gap:10px; margin-bottom:11px; align-items:flex-start; }
.next-icon { font-size:0.9rem; flex-shrink:0; margin-top:1px; }
.next-text strong { display:block; font-size:0.8rem; font-weight:600; }
.next-text span { font-size:0.74rem; color:var(--mid); font-weight:300; }

.result {font-size:0.8rem; margin-top:15px;}
.alert {padding:10px 15px; border:1px solid transparent; position:relative; margin-bottom:20px;}
.alert p {margin-bottom:10px;}
.alert p:last-child {margin-bottom:0;}
.alert-success {background-color:#dff0d8; border-color:#d6e9c6; color:#3c763d;}
.alert-info {background-color:#d9edf7; border-color:#bce8f1; color:#31708f;}
.alert-warning {background-color:#fcf8e3; border-color:#faebcc; color:#8a6d3b;}
.alert-danger {background-color:#f2dede; border-color:#ebccd1; color:#a94442;}


@media (max-width:768px) {
  .page-wrap { padding:80px 20px 60px; }
  .main-grid { grid-template-columns:1fr; }
  .summary-card { position:static; }
  .includes ul { grid-template-columns:1fr; }
  .dur-grid { grid-template-columns:repeat(3,1fr); }
}