/* ========================================================================
   AMEERA CAKES — shared stylesheet (used by every page)
   ------------------------------------------------------------------------
   Palette: warm buttercream neutrals + a deep berry/plum accent, with
   gold used sparingly for fine detail and sage as a secondary tone.
   Type: Fraunces (display serif) + Karla (body/UI) + JetBrains Mono
   (small numeric/price labels, for a hand-ticketed bakery-tag feel).
   ======================================================================== */
:root{
  --bg:#fbf6ef;
  --bg-alt:#f3e9dd;
  --surface:#fffdfb;
  --surface-2:#fffaf3;
  --ink:#2b2030;
  --ink-soft:#6e5f6b;
  --ink-faint:#9c8d97;
  --accent:#c72784;
  --accent-2:#d62d8f;
  --accent-tint:#f4d7e8;
  --gold:#b3873f;
  --gold-tint:#f0e2c7;
  --sage:#748764;
  --sage-tint:#e4ead9;
  --line:#e7dacb;
  --line-strong:#d9c8b3;
  --success:#4d7a52;
  --success-tint:#e2ede2;
  --error:#a4363a;
  --error-tint:#f6e2e1;
  --shadow-sm:0 1px 2px rgba(43,32,48,0.06), 0 1px 1px rgba(43,32,48,0.04);
  --shadow-md:0 8px 24px rgba(43,32,48,0.10);
  --shadow-lg:0 24px 64px rgba(43,32,48,0.16);
  --radius-sm:6px;
  --radius-md:14px;
  --radius-lg:26px;
  --font-display:'Fraunces', ui-serif, Georgia, 'Times New Roman', serif;
  --font-body:'Karla', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-mono:'JetBrains Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace;
  color-scheme: light;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#1a1420; --bg-alt:#231a29; --surface:#241b2a; --surface-2:#2b2032;
    --ink:#f4e9ef; --ink-soft:#c6b3c2; --ink-faint:#8d7a89;
    --accent:#e184ba; --accent-2:#e7a7cc; --accent-tint:#3f1d31;
    --gold:#dcb271; --gold-tint:#3a2f1e; --sage:#a3b891; --sage-tint:#28301f;
    --line:#3c2c40; --line-strong:#4c3950;
    --success:#8fc399; --success-tint:#213426; --error:#e29a9a; --error-tint:#3a2020;
    --shadow-sm:0 1px 2px rgba(0,0,0,0.3); --shadow-md:0 8px 24px rgba(0,0,0,0.4); --shadow-lg:0 24px 64px rgba(0,0,0,0.55);
    color-scheme: dark;
  }
}
:root[data-theme="dark"]{
  --bg:#1a1420; --bg-alt:#231a29; --surface:#241b2a; --surface-2:#2b2032;
  --ink:#f4e9ef; --ink-soft:#c6b3c2; --ink-faint:#8d7a89;
  --accent:#e184ba; --accent-2:#e7a7cc; --accent-tint:#3f1d31;
  --gold:#dcb271; --gold-tint:#3a2f1e; --sage:#a3b891; --sage-tint:#28301f;
  --line:#3c2c40; --line-strong:#4c3950;
  --success:#8fc399; --success-tint:#213426; --error:#e29a9a; --error-tint:#3a2020;
  --shadow-sm:0 1px 2px rgba(0,0,0,0.3); --shadow-md:0 8px 24px rgba(0,0,0,0.4); --shadow-lg:0 24px 64px rgba(0,0,0,0.55);
  color-scheme: dark;
}

*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;}
img{max-width:100%;display:block;}
a{color:inherit;}
button{font-family:inherit;}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:500;line-height:1.12;text-wrap:balance;margin:0;color:var(--ink);}
p{margin:0;}
.container{width:100%;max-width:1180px;margin-inline:auto;padding-inline:24px;}
@media (max-width:640px){.container{padding-inline:18px;}}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px;}

.eyebrow{font-family:var(--font-mono);font-size:12px;letter-spacing:0.14em;text-transform:uppercase;color:var(--accent);display:inline-flex;align-items:center;gap:8px;}
.eyebrow::before{content:"";width:18px;height:1px;background:var(--gold);display:inline-block;}

.section{padding:96px 0;}
.section--alt{background:var(--bg-alt);}
@media (max-width:780px){.section{padding:64px 0;}}
.section-head{max-width:640px;margin-bottom:48px;}
.section-head h2{font-size:clamp(30px,4vw,44px);}
.section-head p{margin-top:14px;color:var(--ink-soft);font-size:17px;max-width:56ch;}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font-body);font-weight:600;font-size:15px;padding:14px 26px;border-radius:100px;border:1px solid transparent;cursor:pointer;transition:transform .18s ease, box-shadow .18s ease, background-color .18s ease, border-color .18s ease, color .18s ease;text-decoration:none;white-space:nowrap;}
.btn:active{transform:translateY(1px);}
.btn-primary{background:var(--accent);color:#fff8f8;box-shadow:var(--shadow-sm);}
.btn-primary:hover{background:var(--accent-2);box-shadow:var(--shadow-md);}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line-strong);}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent);}
.btn-outline{background:transparent;color:var(--surface);border-color:rgba(255,255,255,0.55);}
.btn-outline:hover{background:rgba(255,255,255,0.12);}
.btn-sm{padding:10px 18px;font-size:14px;}
.btn:disabled{opacity:.6;cursor:not-allowed;}
.btn-block{width:100%;}

/* ===== Nav ===== */
.nav{position:sticky;top:0;z-index:40;background:color-mix(in srgb, var(--bg) 88%, transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid transparent;transition:border-color .25s ease, box-shadow .25s ease;}
.nav.is-scrolled{border-bottom-color:var(--line);box-shadow:var(--shadow-sm);}
.nav-inner{display:flex;align-items:center;justify-content:space-between;padding-block:16px;}
.brand{display:flex;align-items:baseline;gap:8px;text-decoration:none;min-width:0;}
.brand-mark{font-family:var(--font-display);font-style:italic;font-weight:400;font-size:clamp(17px,4.6vw,26px);color:var(--ink);white-space:nowrap;}
.brand-wordmark{height:1.65em;width:auto;display:inline-block;vertical-align:-0.34em;}
.brand-ameera{font-family:'Montserrat',var(--font-body);font-style:normal;font-weight:300;text-transform:uppercase;letter-spacing:.02em;}
.brand-by{font-family:'Montserrat',var(--font-body);font-style:normal;font-weight:300;}
.brand-sub{font-family:var(--font-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);white-space:nowrap;}
@media (max-width:420px){.brand-sub{display:none;}}
.nav-links{display:flex;align-items:center;gap:36px;list-style:none;margin:0;padding:0;}
.nav-links a{text-decoration:none;font-size:14.5px;font-weight:600;color:var(--ink-soft);transition:color .18s ease;}
.nav-links a:hover,.nav-links a.is-active{color:var(--accent);}
.nav-cta{display:flex;align-items:center;gap:14px;}
.nav-toggle{display:none;background:none;border:1px solid var(--line-strong);border-radius:10px;padding:9px;cursor:pointer;color:var(--ink);}
.nav-toggle svg{display:block;}

@media (max-width:900px){
  .nav-links{position:fixed;inset:0 0 auto 0;top:69px;flex-direction:column;align-items:flex-start;gap:0;background:var(--surface);border-bottom:1px solid var(--line);padding:8px 24px 20px;box-shadow:var(--shadow-md);transform:translateY(-8px);opacity:0;visibility:hidden;pointer-events:none;transition:transform .22s ease, opacity .22s ease, visibility .22s;}
  .nav-links.is-open{transform:translateY(0);opacity:1;visibility:visible;pointer-events:auto;}
  .nav-links li{width:100%;border-bottom:1px solid var(--line);}
  .nav-links a{display:block;padding:14px 2px;}
  .nav-cta .btn-ghost{display:none;}
  .nav-toggle{display:inline-flex;}
}

/* ===== Hero (home page) ===== */
.hero{position:relative;overflow:hidden;padding-top:64px;padding-bottom:72px;}
.hero-blob{position:absolute;border-radius:50%;filter:blur(60px);opacity:.55;z-index:0;}
.hero-blob--1{width:420px;height:420px;background:var(--accent-tint);top:-140px;right:-80px;}
.hero-blob--2{width:320px;height:320px;background:var(--sage-tint);bottom:-120px;left:-60px;}
.hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:.86fr 1.14fr;gap:44px;align-items:center;}
@media (max-width:900px){.hero-grid{grid-template-columns:1fr;gap:40px;}.hero-art{order:-1;}}
.hero h1{font-size:clamp(34px,4.6vw,56px);letter-spacing:-.01em;}
.hero h1 em{color:var(--accent);font-style:italic;}
.hero-sub{margin-top:22px;font-size:18px;color:var(--ink-soft);max-width:46ch;}
.hero-actions{margin-top:34px;display:flex;gap:14px;flex-wrap:wrap;}
.hero-meta{margin-top:44px;display:flex;gap:32px;flex-wrap:wrap;}
.hero-meta div{display:flex;flex-direction:column;gap:2px;}
.hero-meta strong{font-family:var(--font-display);font-size:24px;font-weight:500;}
.hero-meta span{font-size:13px;color:var(--ink-faint);}

.hero-art{position:relative;display:flex;align-items:center;justify-content:center;}

/* Hero photo collage: one large organic "blob" showing the cake, a small
   circular detail crop, and a rectangular plated-slice photo, all
   overlapping — an editorial, magazine-style composition rather than a
   single framed photo. A soft multi-tone (berry/gold/sage) glow sits behind
   the whole group as a painterly border, echoing the site's blob accents. */
.hero-collage{position:relative;width:100%;max-width:640px;height:600px;}
.hero-collage::before{content:"";position:absolute;inset:-7%;z-index:0;border-radius:58% 42% 52% 48% / 48% 58% 42% 52%;background:conic-gradient(from 210deg at 55% 45%, var(--accent-tint), var(--gold-tint), var(--sage-tint), var(--accent-tint));filter:blur(26px);opacity:.85;}
.hero-collage-main{position:absolute;top:0;right:0;width:80%;height:90%;border-radius:60% 40% 55% 45% / 45% 60% 40% 55%;overflow:hidden;box-shadow:var(--shadow-lg);z-index:1;}
.hero-collage-main::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 1px rgba(255,255,255,.35);pointer-events:none;}
.hero-collage-main img{width:100%;height:100%;object-fit:cover;object-position:50% 18%;display:block;}
.hero-collage-detail{position:absolute;left:0;bottom:14%;width:36%;aspect-ratio:1/1;border-radius:50%;overflow:hidden;box-shadow:var(--shadow-md);border:6px solid var(--surface);z-index:2;}
.hero-collage-detail img{width:100%;height:100%;object-fit:cover;display:block;}
.hero-collage-slice{position:absolute;right:2%;bottom:0;width:42%;aspect-ratio:6/5;border-radius:24px;overflow:hidden;box-shadow:var(--shadow-md);border:6px solid var(--surface);z-index:2;transition:opacity .2s ease;}
.hero-collage-slice img{width:100%;height:100%;object-fit:cover;display:block;}
.hero-collage-slice.is-hidden{display:none;}
@media (max-width:1100px){.hero-collage{max-width:540px;height:520px;}}
@media (max-width:900px){.hero-collage{max-width:480px;height:460px;margin:0 auto;}}
@media (max-width:480px){.hero-collage{max-width:340px;height:340px;}.hero-collage-detail{width:32%;bottom:16%;}}
.cake-icon{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;z-index:1;}
.cake-icon .candle{width:3px;height:26px;background:var(--gold);border-radius:2px;position:relative;}
.cake-icon .candle::after{content:"";position:absolute;top:-11px;left:50%;translate:-50% 0;width:8px;height:12px;background:radial-gradient(circle,#ffd88a,#f0983c 70%);border-radius:50% 50% 50% 50%/60% 60% 40% 40%;filter:blur(.2px);}
.cake-icon .tier{border-radius:10px 10px 6px 6px;box-shadow:0 6px 0 rgba(0,0,0,.05) inset, var(--shadow-sm);position:relative;}
.cake-icon .tier::after{content:"";position:absolute;left:0;right:0;top:0;height:9px;border-radius:10px 10px 0 0;background:rgba(255,255,255,.5);}
.cake-icon .tier1{width:120px;height:50px;background:var(--accent);}
.cake-icon .tier2{width:158px;height:56px;background:var(--accent-2);}
.cake-icon .tier3{width:198px;height:62px;background:var(--gold);}
.cake-plate{width:238px;height:14px;border-radius:50%;background:var(--surface);box-shadow:var(--shadow-md);margin-top:-4px;z-index:1;}

/* ===== Sub-page header (Catalog / About / Inquiry) ===== */
.page-header{position:relative;overflow:hidden;padding:64px 0 56px;border-bottom:1px solid var(--line);}
.page-header .hero-blob--1{width:320px;height:320px;top:-160px;right:-60px;}
.page-header .hero-blob--2{width:240px;height:240px;bottom:-140px;left:-40px;}
.page-header-inner{position:relative;z-index:1;max-width:680px;}
.page-header h1{font-size:clamp(32px,4.6vw,48px);}
.page-header p{margin-top:16px;font-size:17px;color:var(--ink-soft);max-width:56ch;}
.breadcrumb{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-faint);margin-bottom:18px;}
.breadcrumb a{text-decoration:none;color:var(--ink-faint);}
.breadcrumb a:hover{color:var(--accent);}

/* ===== Process strip ===== */
.process{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
@media (max-width:780px){.process{grid-template-columns:1fr;}}
.process-step{display:flex;gap:18px;}
.process-num{font-family:var(--font-display);font-style:italic;font-size:34px;color:var(--gold);line-height:1;flex-shrink:0;}
.process-step h3{font-size:19px;margin-bottom:8px;}
.process-step p{color:var(--ink-soft);font-size:15px;}

/* ===== Catalog ===== */
.filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:36px;}
.filter-btn{font-family:var(--font-body);font-weight:600;font-size:14px;padding:10px 20px;border-radius:100px;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink-soft);cursor:pointer;transition:all .18s ease;}
.filter-btn:hover{border-color:var(--accent);color:var(--accent);}
.filter-btn.is-active{background:var(--accent);border-color:var(--accent);color:#fff8f8;}

.catalog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
@media (max-width:960px){.catalog-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:640px){.catalog-grid{grid-template-columns:1fr;}}

.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden;display:flex;flex-direction:column;transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;}
.card:hover{transform:translateY(-5px);box-shadow:var(--shadow-md);border-color:var(--line-strong);}
.media{position:relative;aspect-ratio:4/3;background:var(--bg-alt);overflow:hidden;}
.media img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
.card:hover .media img{transform:scale(1.05);}
.media-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s ease;}
.media-fallback.is-visible{opacity:1;}
.media-fallback .mini-cake{transform:scale(.62);opacity:.9;}
.media[data-category="signature"] .media-fallback{background:linear-gradient(155deg, var(--accent-tint), var(--surface-2));}
.media[data-category="wedding"] .media-fallback{background:linear-gradient(155deg, var(--gold-tint), var(--surface-2));}
.media[data-category="custom"] .media-fallback{background:linear-gradient(155deg, var(--sage-tint), var(--surface-2));}
.media[data-category="mini"] .media-fallback{background:linear-gradient(155deg, var(--accent-tint), var(--gold-tint));}
.media-badge{position:absolute;top:12px;left:12px;background:rgba(255,253,251,.92);color:var(--ink);font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:6px 11px;border-radius:100px;box-shadow:var(--shadow-sm);}
:root[data-theme="dark"] .media-badge{background:rgba(36,27,42,.9);}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .media-badge{background:rgba(36,27,42,.9);}}

.card-body{padding:22px 22px 24px;display:flex;flex-direction:column;gap:10px;flex:1;}
.card-body h3{font-size:20px;}
.card-body p{color:var(--ink-soft);font-size:14.5px;flex:1;}
.card-foot{display:flex;align-items:center;justify-content:space-between;margin-top:6px;gap:10px;}
.price-tag{font-family:var(--font-mono);font-size:14px;color:var(--accent);}
.price-tag span{color:var(--ink-faint);font-size:11px;display:block;letter-spacing:.06em;text-transform:uppercase;}

.section-foot-cta{margin-top:44px;text-align:center;}

/* ===== Modal ===== */
.modal-overlay{position:fixed;inset:0;background:rgba(26,17,24,.55);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:20px;z-index:80;opacity:0;visibility:hidden;transition:opacity .22s ease, visibility .22s;}
.modal-overlay.is-open{opacity:1;visibility:visible;}
.modal{background:var(--surface);border-radius:var(--radius-lg);max-width:820px;width:100%;max-height:88vh;overflow-y:auto;box-shadow:var(--shadow-lg);display:grid;grid-template-columns:1fr 1fr;transform:translateY(14px) scale(.98);transition:transform .25s ease;}
.modal-overlay.is-open .modal{transform:translateY(0) scale(1);}
@media (max-width:720px){.modal{grid-template-columns:1fr;max-height:92vh;}}
.modal-media{position:relative;aspect-ratio:1/1;background:var(--bg-alt);}
@media (max-width:720px){.modal-media{aspect-ratio:16/10;}}
.modal-media img{width:100%;height:100%;object-fit:cover;}
.modal-media.modal-gallery{display:flex;flex-direction:column;}
.modal-gallery-main{position:relative;flex:1;min-height:0;overflow:hidden;background:var(--bg-alt);}
.modal-gallery-imageslot{position:absolute;inset:0;}
.modal-gallery-imageslot img{width:100%;height:100%;object-fit:cover;display:block;}
.modal-gallery-nav{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;border-radius:50%;border:none;background:rgba(26,17,24,.45);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s ease, transform .15s ease;backdrop-filter:blur(2px);}
.modal-gallery-nav:hover{background:rgba(26,17,24,.7);}
.modal-gallery-nav:active{transform:translateY(-50%) scale(.92);}
.modal-gallery-nav svg{display:block;}
.modal-gallery-prev{left:14px;}
.modal-gallery-next{right:14px;}
.modal-gallery-counter{position:absolute;right:14px;bottom:14px;background:rgba(26,17,24,.55);color:#fff;font-family:var(--font-mono);font-size:11.5px;letter-spacing:.03em;padding:4px 10px;border-radius:100px;font-variant-numeric:tabular-nums;}
.modal-thumbs{display:flex;gap:8px;padding:10px;background:var(--surface);border-top:1px solid var(--line);flex-shrink:0;overflow-x:auto;}
.modal-thumb{width:52px;height:52px;border-radius:8px;overflow:hidden;border:2px solid transparent;padding:0;cursor:pointer;background:var(--bg-alt);flex-shrink:0;opacity:.65;transition:opacity .15s ease, border-color .15s ease;}
.modal-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.modal-thumb:hover{opacity:.9;}
.modal-thumb.is-active{opacity:1;border-color:var(--accent);}
.modal-body{padding:34px 34px 30px;display:flex;flex-direction:column;gap:16px;}
.modal-close{position:absolute;top:16px;right:16px;background:var(--surface);border:1px solid var(--line);width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:2;box-shadow:var(--shadow-sm);}
.modal-close:hover{border-color:var(--accent);color:var(--accent);}
.modal-body h3{font-size:28px;}
.modal-desc{color:var(--ink-soft);font-size:15.5px;line-height:1.65;}
.modal-facts{display:flex;gap:22px;flex-wrap:wrap;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px 0;}
.modal-facts div{display:flex;flex-direction:column;gap:3px;}
.modal-facts strong{font-family:var(--font-mono);font-size:15px;color:var(--ink);}
.modal-facts span{font-size:11.5px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.06em;}
.modal-actions{display:flex;gap:12px;margin-top:6px;flex-wrap:wrap;}

/* ===== About ===== */
.about-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:64px;align-items:start;}
@media (max-width:900px){.about-grid{grid-template-columns:1fr;gap:36px;}}
.about-portrait{border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:4/5;margin-bottom:26px;box-shadow:var(--shadow-md), inset 0 0 0 1px rgba(0,0,0,.05);}
.about-portrait img{width:100%;height:100%;object-fit:cover;display:block;}
.about-quote{font-family:var(--font-display);font-style:italic;font-size:clamp(22px,2.6vw,30px);color:var(--ink);line-height:1.4;}
.about-quote::before{content:"\201C";color:var(--gold);}
.about-quote::after{content:"\201D";color:var(--gold);}
.about-sign{margin-top:18px;font-family:var(--font-mono);font-size:12.5px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.08em;}
.about-copy p{color:var(--ink-soft);font-size:16px;margin-bottom:16px;}
.about-copy p:last-child{margin-bottom:0;}
.about-stats{display:flex;gap:30px;margin-top:26px;flex-wrap:wrap;}
.about-stats div{border-left:2px solid var(--gold);padding-left:14px;}
.about-stats a{border-left:2px solid var(--gold);padding-left:14px;color:inherit;text-decoration:none;display:block;transition:opacity .18s ease;}
.about-stats a:hover{opacity:.72;}
.about-stats strong{display:block;font-family:var(--font-display);font-size:24px;}
.about-stats span{font-size:12.5px;color:var(--ink-faint);}

.values-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
@media (max-width:780px){.values-grid{grid-template-columns:1fr;}}
.value-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);padding:28px;}
.value-card h3{font-size:19px;margin-bottom:10px;}
.value-card p{color:var(--ink-soft);font-size:14.5px;}

/* ===== Inquiry form ===== */
.inquiry-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:40px;align-items:start;}
@media (max-width:960px){.inquiry-grid{grid-template-columns:1fr;}}
.form-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:36px;box-shadow:var(--shadow-sm);}
@media (max-width:640px){.form-card{padding:22px;}}

.whatsapp-banner{--wa:#25d366;--wa-dark:#1da851;display:flex;align-items:center;gap:14px;background:linear-gradient(155deg, color-mix(in srgb, var(--wa) 14%, var(--surface)), color-mix(in srgb, var(--wa) 6%, var(--surface)));border:1.5px solid color-mix(in srgb, var(--wa) 45%, transparent);border-radius:var(--radius-md);padding:14px 18px;margin-bottom:24px;text-decoration:none;transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease;}
.whatsapp-banner:hover{border-color:var(--wa-dark);box-shadow:var(--shadow-md);transform:translateY(-1px);}
.whatsapp-banner-icon{flex-shrink:0;width:42px;height:42px;border-radius:50%;background:var(--wa);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px color-mix(in srgb, var(--wa) 45%, transparent);}
.whatsapp-banner-text{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0;}
.whatsapp-banner-text strong{font-size:14.5px;color:var(--ink);}
.whatsapp-banner-text span{font-size:13px;color:var(--ink-soft);}
.whatsapp-banner-arrow{flex-shrink:0;color:var(--wa-dark);}
@media (max-width:560px){
  .whatsapp-banner{padding:14px 16px;}
  .whatsapp-banner-text span{font-size:12.5px;}
}

.whatsapp-float{display:none;}
@media (max-width:720px){
  .whatsapp-float{
    display:flex;position:fixed;right:18px;bottom:18px;z-index:60;
    width:56px;height:56px;border-radius:50%;background:#25d366;color:#fff;
    align-items:center;justify-content:center;box-shadow:0 10px 28px rgba(29,168,81,.4), 0 2px 8px rgba(0,0,0,.12);
    animation:whatsappPulse 2.6s ease-in-out infinite;
  }
  .whatsapp-float:hover{background:#1da851;}
}
@keyframes whatsappPulse{
  0%,100%{box-shadow:0 10px 28px rgba(29,168,81,.4), 0 0 0 0 rgba(37,211,102,.35);}
  50%{box-shadow:0 10px 28px rgba(29,168,81,.4), 0 0 0 9px rgba(37,211,102,0);}
}
@media (prefers-reduced-motion: reduce){.whatsapp-float{animation:none;}}

.budget-notice{display:flex;gap:12px;align-items:flex-start;background:var(--gold-tint);border:1px solid color-mix(in srgb, var(--gold) 45%, transparent);border-radius:var(--radius-md);padding:16px 18px;margin-bottom:28px;}
.budget-notice svg{flex-shrink:0;margin-top:2px;color:var(--gold);}
.budget-notice p{font-size:14px;color:var(--ink);}
.budget-notice strong{color:var(--ink);}

.ref-banner{display:none;align-items:center;justify-content:space-between;gap:12px;background:var(--accent-tint);border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);border-radius:var(--radius-md);padding:12px 16px;margin-bottom:24px;font-size:14px;}
.ref-banner.is-visible{display:flex;}
.ref-banner strong{font-weight:700;}
.ref-clear{background:none;border:none;color:var(--accent);cursor:pointer;font-weight:600;font-size:13px;text-decoration:underline;}

.field-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
@media (max-width:560px){.field-row{grid-template-columns:1fr;}}
.field{margin-bottom:20px;}
.field label{display:block;font-size:13.5px;font-weight:700;margin-bottom:7px;color:var(--ink);}
.field label .opt{font-weight:400;color:var(--ink-faint);text-transform:none;}
.field .req{color:var(--accent);}
.field input[type="text"],.field input[type="email"],.field input[type="tel"],.field input[type="number"],.field input[type="date"],.field select,.field textarea{width:100%;font-family:var(--font-body);font-size:15px;color:var(--ink);background:var(--surface-2);border:1px solid var(--line-strong);border-radius:10px;padding:12px 14px;transition:border-color .18s ease, box-shadow .18s ease;}
.field textarea{resize:vertical;min-height:110px;}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 16%, transparent);}
.field.has-error input,.field.has-error select,.field.has-error textarea{border-color:var(--error);background:var(--error-tint);}
.field-error{display:none;color:var(--error);font-size:12.5px;margin-top:6px;font-weight:600;}
.field.has-error .field-error{display:block;}
.field-hint{font-size:12.5px;color:var(--ink-faint);margin-top:6px;}

.partner-field{overflow:hidden;max-height:0;opacity:0;transition:max-height .28s ease, opacity .22s ease, margin .28s ease;margin-bottom:0;}
.partner-field.is-shown{max-height:120px;opacity:1;margin-bottom:20px;}

.upload-zone{border:1.5px dashed var(--line-strong);border-radius:var(--radius-md);padding:26px;text-align:center;cursor:pointer;background:var(--surface-2);transition:border-color .18s ease, background .18s ease;position:relative;}
.upload-zone:hover,.upload-zone.is-drag{border-color:var(--accent);background:var(--accent-tint);}
.upload-zone input{position:absolute;inset:0;opacity:0;cursor:pointer;}
.upload-zone svg{color:var(--accent);margin-bottom:8px;}
.upload-zone p{font-size:14px;color:var(--ink-soft);}
.upload-zone p strong{color:var(--accent);}
.upload-previews{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px;}
.upload-thumb{position:relative;width:76px;height:76px;border-radius:10px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow-sm);}
.upload-thumb img{width:100%;height:100%;object-fit:cover;}
.upload-thumb button{position:absolute;top:3px;right:3px;width:20px;height:20px;border-radius:50%;background:rgba(26,17,24,.72);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:12px;line-height:1;}

.submit-row{display:flex;align-items:center;gap:16px;margin-top:8px;flex-wrap:wrap;}
.submit-note{font-size:12.5px;color:var(--ink-faint);}
.submit-error{display:none;background:var(--error-tint);color:var(--error);border-radius:10px;padding:10px 14px;font-size:13.5px;margin-top:16px;font-weight:600;}
.submit-error.is-visible{display:block;}

.success-panel{display:none;text-align:center;padding:40px 20px;}
.success-panel.is-visible{display:block;}
.success-icon{width:64px;height:64px;border-radius:50%;background:var(--success-tint);color:var(--success);display:flex;align-items:center;justify-content:center;margin:0 auto 18px;}
.success-panel h3{font-size:24px;margin-bottom:10px;}
.success-panel p{color:var(--ink-soft);max-width:42ch;margin:0 auto;}
.form-card.is-submitted .form-content{display:none;}

.side-card{background:var(--ink);color:var(--bg);border-radius:var(--radius-lg);padding:34px;position:sticky;top:100px;}
:root[data-theme="dark"] .side-card{background:var(--surface-2);}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .side-card{background:var(--surface-2);}}
.side-card h3{color:inherit;font-size:22px;margin-bottom:14px;}
.side-card ul{list-style:none;margin:0 0 22px;padding:0;display:flex;flex-direction:column;gap:14px;}
.side-card li{display:flex;gap:12px;font-size:14.5px;opacity:.92;}
.side-card li svg{flex-shrink:0;margin-top:2px;color:var(--gold);}
.side-card .contact{border-top:1px solid rgba(255,255,255,.18);padding-top:18px;font-size:14px;opacity:.85;display:flex;flex-direction:column;gap:6px;}
@media (max-width:960px){.side-card{position:static;}}

/* ===== Footer ===== */
.site-footer{background:var(--ink);color:var(--bg-alt);padding:56px 0 28px;}
:root[data-theme="dark"] .site-footer{background:#120d16;}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .site-footer{background:#120d16;}}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;padding-bottom:36px;border-bottom:1px solid rgba(255,255,255,.14);}
@media (max-width:720px){.footer-grid{grid-template-columns:1fr;gap:30px;}}
.footer-brand .brand-mark{color:var(--bg);}
.footer-brand p{margin-top:14px;font-size:14px;opacity:.72;max-width:34ch;}
.footer-social{display:flex;gap:10px;margin-top:20px;}
.footer-social a{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);color:var(--bg);opacity:.85;transition:background .18s ease, opacity .18s ease, transform .18s ease, border-color .18s ease;}
.footer-social a:hover{background:var(--accent-2);border-color:var(--accent-2);opacity:1;transform:translateY(-2px);}
.footer-social svg{display:block;}
.footer-col h4{color:var(--bg);font-size:13px;text-transform:uppercase;letter-spacing:.08em;font-family:var(--font-body);font-weight:700;margin-bottom:14px;}
.footer-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;}
.footer-col a{text-decoration:none;font-size:14.5px;opacity:.78;transition:opacity .18s ease;}
.footer-col a:hover{opacity:1;}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:22px;font-size:13px;opacity:.6;flex-wrap:wrap;gap:10px;}

/* ===== Toast ===== */
#toast-root{position:fixed;top:20px;right:20px;z-index:120;display:flex;flex-direction:column;gap:10px;}
.toast{background:var(--ink);color:var(--bg);padding:14px 18px;border-radius:12px;box-shadow:var(--shadow-lg);display:flex;align-items:center;gap:10px;font-size:14px;font-weight:600;min-width:240px;transform:translateX(20px);opacity:0;transition:transform .25s ease, opacity .25s ease;}
:root[data-theme="dark"] .toast{background:var(--surface-2);}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .toast{background:var(--surface-2);}}
.toast.is-visible{transform:translateX(0);opacity:1;}
.toast svg{color:var(--success);flex-shrink:0;}

.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

@media (prefers-reduced-motion: reduce){*{animation-duration:0.01ms !important;transition-duration:0.01ms !important;}}
