@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,500;0,600;1,500&family=Manrope:wght@400;500;600;700&display=swap');

:root {
  --sf-ivory: #F8F3EB;
  --sf-champagne: #EADBC8;
  --sf-porcelain: #F0D9D5;
  --sf-blush: #DDA9A5;
  --sf-brand: #A95E60;
  --sf-gold: #C6922E;
  --sf-gold-soft: #D6AD72;
  --sf-rose-gold: #B96F65;
  --sf-espresso: #3F302C;
  --sf-taupe: #74605A;
  --sf-plum: #702E4B;
  --sf-serif: "Cormorant Garamond", Georgia, serif;
  --sf-sans: "Manrope", Arial, sans-serif;
}

* { box-sizing: border-box; }
.sf-module-body { margin:0; background:var(--sf-ivory); color:var(--sf-espresso); font-family:var(--sf-sans); }
.sf-module-header { min-height:72px; padding:14px clamp(20px,5vw,64px); display:flex; align-items:center; justify-content:space-between; gap:24px; border-bottom:1px solid rgba(63,48,44,.12); background:rgba(248,243,235,.96); position:sticky; top:0; z-index:30; }
.sf-module-brand { display:flex; align-items:center; gap:10px; color:var(--sf-espresso); text-decoration:none; font-weight:700; letter-spacing:.08em; font-size:13px; }
.sf-module-brand img { width:38px; height:38px; object-fit:contain; }
.sf-module-header nav { display:flex; align-items:center; gap:22px; }
.sf-module-header nav a { color:var(--sf-taupe); text-decoration:none; font-size:14px; font-weight:600; }
.sf-module-header nav a:hover,.sf-module-header nav a:focus-visible { color:var(--sf-brand); text-decoration:underline; }
.sf-module-main { min-height:70vh; }
.sf-module-footer { padding:36px clamp(20px,5vw,64px); background:var(--sf-espresso); color:var(--sf-ivory); display:flex; align-items:center; justify-content:space-between; gap:24px; }
.sf-module-footer div { display:flex; gap:14px; align-items:baseline; flex-wrap:wrap; }
.sf-module-footer span,.sf-module-footer small { color:var(--sf-champagne); }

.sf-shell { width:min(1120px, calc(100% - 40px)); margin:0 auto; padding:64px 0 88px; }
.sf-hero-card { padding:clamp(28px,5vw,64px); border-radius:28px; background:var(--sf-porcelain); border:1px solid rgba(169,94,96,.18); position:relative; overflow:hidden; }
.sf-hero-card::after { content:""; position:absolute; width:190px; height:190px; border:1px solid var(--sf-gold-soft); border-radius:50%; right:-60px; top:-72px; opacity:.65; }
.sf-eyebrow { margin:0 0 12px; color:var(--sf-brand); font-size:12px; line-height:18px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.sf-title { margin:0; font-family:var(--sf-serif); font-size:clamp(42px,7vw,72px); line-height:.96; font-weight:600; letter-spacing:-.02em; }
.sf-title em { color:var(--sf-brand); font-weight:500; }
.sf-lead { max-width:720px; margin:20px 0 0; font-size:18px; line-height:1.7; color:var(--sf-taupe); }
.sf-actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:28px; }
.sf-btn { min-height:48px; padding:12px 24px; border-radius:12px; border:1px solid var(--sf-brand); background:var(--sf-brand); color:var(--sf-ivory); font-family:var(--sf-sans); font-size:15px; font-weight:700; text-decoration:none; display:inline-flex; align-items:center; justify-content:center; cursor:pointer; transition:.15s ease; }
.sf-btn:hover { background:var(--sf-plum); border-color:var(--sf-plum); color:var(--sf-ivory); }
.sf-btn:focus-visible { outline:3px solid var(--sf-gold-soft); outline-offset:3px; }
.sf-btn-secondary { background:transparent; color:var(--sf-brand); }
.sf-btn-secondary:hover { background:var(--sf-porcelain); color:var(--sf-plum); }
.sf-btn-dark { background:var(--sf-plum); border-color:var(--sf-plum); }
.sf-btn[disabled] { opacity:.45; cursor:not-allowed; }

.sf-panel { background:#fffaf5; border:1px solid rgba(63,48,44,.12); border-radius:22px; box-shadow:0 12px 32px rgba(63,48,44,.07); padding:clamp(24px,4vw,42px); }
.sf-section-title { font-family:var(--sf-serif); font-size:clamp(30px,5vw,44px); margin:0 0 10px; line-height:1.05; }
.sf-muted { color:var(--sf-taupe); line-height:1.7; }
.sf-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.sf-grid-3 { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.sf-card { background:var(--sf-ivory); border:1px solid rgba(63,48,44,.12); border-radius:20px; padding:24px; }
.sf-card h3 { margin:0 0 8px; font-family:var(--sf-serif); font-size:28px; }

.sf-progress-wrap { margin:28px 0 18px; display:flex; align-items:center; gap:14px; }
.sf-progress { flex:1; height:7px; border-radius:99px; background:var(--sf-champagne); overflow:hidden; }
.sf-progress > span { display:block; height:100%; width:0; background:var(--sf-brand); transition:width .25s ease; }
.sf-progress-label { min-width:54px; text-align:right; color:var(--sf-taupe); font-size:13px; font-weight:700; }
.sf-step { display:none; animation:sf-fade .22s ease; }
.sf-step.is-active { display:block; }
@keyframes sf-fade { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:none; } }
.sf-question { margin:0 0 10px; font-family:var(--sf-serif); font-size:clamp(29px,5vw,42px); line-height:1.08; }
.sf-help { margin:0 0 24px; color:var(--sf-taupe); line-height:1.6; }
.sf-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.sf-option { position:relative; }
.sf-option input { position:absolute; opacity:0; pointer-events:none; }
.sf-option span { min-height:54px; display:flex; align-items:center; gap:10px; padding:14px 16px; border-radius:14px; border:1px solid rgba(63,48,44,.16); background:var(--sf-ivory); color:var(--sf-espresso); font-weight:600; cursor:pointer; transition:.15s ease; }
.sf-option input:checked + span { border-color:var(--sf-brand); background:var(--sf-porcelain); box-shadow:0 0 0 2px rgba(169,94,96,.12); color:var(--sf-plum); }
.sf-option input:focus-visible + span { outline:3px solid rgba(214,173,114,.65); outline-offset:2px; }
.sf-rating { display:grid; grid-template-columns:repeat(5,1fr); gap:10px; max-width:650px; }
.sf-rating.sf-rating-11 { grid-template-columns:repeat(11,1fr); max-width:900px; }
.sf-rating .sf-option span { justify-content:center; padding:12px 8px; min-height:52px; }
.sf-field { margin-bottom:18px; }
.sf-field label,.sf-label { display:block; margin-bottom:8px; font-size:14px; font-weight:700; }
.sf-input,.sf-select,.sf-textarea { width:100%; min-height:50px; padding:13px 14px; border-radius:12px; border:1px solid rgba(63,48,44,.18); background:var(--sf-ivory); color:var(--sf-espresso); font:inherit; }
.sf-textarea { min-height:130px; resize:vertical; }
.sf-input:focus,.sf-select:focus,.sf-textarea:focus { outline:3px solid rgba(221,169,165,.35); border-color:var(--sf-plum); }
.sf-nav { display:flex; justify-content:space-between; gap:12px; margin-top:30px; }
.sf-validation { margin:0 0 20px; padding:14px 16px; border-radius:12px; background:#fff0ee; color:#7c2f32; border:1px solid rgba(169,94,96,.25); }
.sf-validation:empty { display:none; }
.field-validation-error { color:#8c3539; font-size:13px; display:block; margin-top:6px; }
.sf-inline-note { margin-top:16px; font-size:13px; color:var(--sf-taupe); }

.sf-profile { text-align:center; padding:56px 24px; background:var(--sf-plum); color:var(--sf-ivory); border-radius:28px; }
.sf-profile .sf-eyebrow { color:var(--sf-gold-soft); }
.sf-profile h1 { font-family:var(--sf-serif); font-size:clamp(46px,8vw,78px); margin:0; }
.sf-profile p { max-width:680px; margin:18px auto; color:var(--sf-champagne); line-height:1.7; }
.sf-profile ul { list-style:none; padding:0; margin:24px auto; display:flex; gap:10px; justify-content:center; flex-wrap:wrap; }
.sf-profile li { padding:9px 14px; border:1px solid rgba(248,243,235,.3); border-radius:999px; }

.sf-price { font-family:var(--sf-serif); font-size:64px; line-height:1; color:var(--sf-plum); margin:16px 0; }
.sf-price small { font-family:var(--sf-sans); font-size:15px; color:var(--sf-taupe); margin-left:8px; }
.sf-benefits { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin:28px 0 0; }
.sf-benefit { padding:20px; border-radius:18px; background:rgba(248,243,235,.8); border:1px solid rgba(63,48,44,.1); }
.sf-benefit strong { display:block; margin-bottom:6px; }
.sf-payment-choice { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.sf-payment-choice .sf-option span { min-height:110px; align-items:flex-start; flex-direction:column; justify-content:center; }
.sf-transfer-box { background:var(--sf-champagne); padding:22px; border-radius:18px; margin:22px 0; }
.sf-transfer-row { display:flex; justify-content:space-between; gap:24px; padding:9px 0; border-bottom:1px solid rgba(63,48,44,.12); }
.sf-transfer-row:last-child { border-bottom:0; }
.sf-status { display:inline-flex; border-radius:999px; padding:7px 12px; font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; background:var(--sf-porcelain); color:var(--sf-plum); }
.sf-giftcard { max-width:780px; margin:0 auto; min-height:420px; border-radius:30px; background:linear-gradient(135deg,var(--sf-ivory),var(--sf-porcelain)); border:1px solid var(--sf-gold-soft); padding:clamp(28px,6vw,64px); position:relative; overflow:hidden; box-shadow:0 24px 64px rgba(63,48,44,.14); }
.sf-giftcard::before { content:"S"; position:absolute; right:20px; bottom:-50px; font-family:var(--sf-serif); font-size:260px; color:rgba(185,111,101,.10); line-height:1; }
.sf-giftcard h1 { font-family:var(--sf-serif); font-size:54px; margin:12px 0 6px; }
.sf-giftcard-code { margin-top:62px; font-size:26px; font-weight:700; letter-spacing:.14em; }
.sf-table { width:100%; border-collapse:collapse; }
.sf-table th,.sf-table td { padding:12px 10px; border-bottom:1px solid rgba(63,48,44,.12); text-align:left; vertical-align:top; }
.sf-table th { font-size:12px; text-transform:uppercase; letter-spacing:.08em; color:var(--sf-taupe); }

@media (max-width: 760px) {
  .sf-module-header { min-height:64px; }
  .sf-module-header nav { display:none; }
  .sf-module-footer { flex-direction:column; align-items:flex-start; }
  .sf-shell { width:min(100% - 28px,1120px); padding:38px 0 60px; }
  .sf-grid,.sf-grid-3,.sf-options,.sf-benefits,.sf-payment-choice { grid-template-columns:1fr; }
  .sf-rating { grid-template-columns:repeat(5,1fr); }
  .sf-rating.sf-rating-11 { grid-template-columns:repeat(6,1fr); }
  .sf-nav { position:sticky; bottom:0; padding:14px 0; background:linear-gradient(180deg,rgba(248,243,235,0),var(--sf-ivory) 24%); }
  .sf-nav .sf-btn { flex:1; }
  .sf-price { font-size:54px; }
  .sf-transfer-row { flex-direction:column; gap:3px; }
}

@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; }
}
