/* =========================================================
   MERCEDES-BENZ STUDIO — DELHI NCR
   Common design system, shared by every page (index.html,
   amggtxx.html, merchandise.html, cafe.html): fonts, colour
   variables, the base reset, the background pattern, the
   shared header (logo/nav/sign-in chip/cart icon/mobile menu),
   generic screen/button/tab/eyebrow primitives, the overlay
   backdrop, the sign-in modal + toast, and the header-related
   responsive rules.

   A page that needs to look different from this baseline (for
   example amggtxx.html's outlined uppercase buttons, or its
   inverted dot pattern) simply redeclares that one rule in its
   own <style> block, which is loaded after this file and wins
   the cascade — no need to touch this file for a one-page
   exception.

   Does NOT own: anything page-specific — hero sections, product
   grids, cart drawers, checkout/payment, the Studio journey,
   etc. Those stay in each page's own <style> block.
   ========================================================= */

@font-face{
  font-family:'MB Corpo A Cond';
  src:url('../fonts/MBCorpoAScreen1CondRegular.otf') format('opentype');
  font-weight:400;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:'MB Corpo S Text';
  src:url('../fonts/MBCorpoSTextLight.otf') format('opentype');
  font-weight:300;
  font-style:normal;
  font-display:swap;
}

:root{
  --bg:#050403;
  --bg-soft:#0c0a09;
  --panel:#0f0d0c;
  --line:rgba(255,255,255,.14);
  --line-strong:rgba(255,255,255,.38);
  --fg:#f5f0e8;
  --muted:#a8a29a;
  --muted2:#79746d;
  --accent:#cfcac0;
  --accent-light:#f5f0e8;
  --success:#4caf6e;
  --danger:#e2543f;
  --radius-xl:28px;
  --radius-lg:22px;
  --radius-md:16px;
  --radius-sm:10px;
  --serif:'MB Corpo A Cond','Playfair Display',Georgia,serif;
  --sans:'MB Corpo S Text','Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
}

/* ---------- reset ---------- */
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:var(--bg);
  color:var(--fg);
  font-family:var(--sans);
  -webkit-font-smoothing:antialiased;
  min-height:100vh;
  overflow-x:hidden;
}
img{max-width:100%;display:block;}
button{font-family:inherit;cursor:pointer;}
input,select,textarea{font-family:inherit;}
a{color:inherit;text-decoration:none;}
.hidden{display:none !important;}

/* ---------- background pattern ---------- */
.bg-pattern{
  position:fixed;inset:0;pointer-events:none;z-index:0;
  background-image:
    radial-gradient(circle at 78% 92%, rgba(255,255,255,.05), transparent 45%),
    radial-gradient(circle at 8% 10%, rgba(255,255,255,.035), transparent 40%);
}
.bg-dots{
  position:fixed; right:0; bottom:0; width:46vw; height:46vh; max-width:640px; max-height:640px;
  pointer-events:none; z-index:0; opacity:.5;
  background-image:url("../dot-bg.png");
  background-repeat:no-repeat;
  background-position:bottom right;
  background-size:contain;
}

/* ---------- layout shell ---------- */
.app{position:relative;z-index:1;min-height:100vh;}

/* ================= HEADER (logo / nav links / sign-in / cart / mobile menu) ================= */

.topnav{
  position:sticky;top:0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;
  gap:16px;
  padding:20px 44px;
  background:linear-gradient(180deg, rgba(5,4,3,.96) 0%, rgba(5,4,3,.85) 70%, rgba(5,4,3,0) 100%);
  backdrop-filter:blur(6px);
  border-bottom:1px solid rgba(255,255,255,.06);
}
.brand{display:flex;align-items:center;gap:14px;cursor:pointer;}
.brand svg,.brand .brand-mark{width:150px;flex-shrink:0;object-fit:contain;}

.navlinks{display:flex;align-items:center;gap:38px;}
.navlinks a{
  font-family:var(--serif);font-size:1.02rem;color:var(--fg);opacity:.82;
  padding-bottom:4px;border-bottom:1px solid transparent;transition:.2s;white-space:nowrap;
}
.navlinks a:hover{opacity:1;}
.navlinks a.active{opacity:1;border-bottom-color:var(--fg);}

.nav-right{display:flex;align-items:center;gap:20px;}
.mb-word{font-family:var(--serif);font-size:1rem;color:var(--fg);opacity:.9;white-space:nowrap;}
.icon-btn{
  position:relative;width:38px;height:38px;border-radius:50%;border:1px solid var(--line);
  background:rgba(255,255,255,.02);display:flex;align-items:center;justify-content:center;color:var(--fg);
  transition:.2s;
}
.icon-btn:hover{border-color:var(--line-strong);background:rgba(255,255,255,.06);}
.icon-btn svg{width:17px;height:17px;}
.badge{
  position:absolute;top:-6px;right:-6px;background:#232120;border:1px solid rgba(255,255,255,.25);color:#fff;font-size:.62rem;
  font-weight:700;min-width:17px;height:17px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  padding:0 3px;
}
.signin-chip{
  font-size:.78rem;color:var(--fg);border:1px solid var(--line);border-radius:999px;padding:8px 16px;
  white-space:nowrap;transition:.2s;cursor:pointer;
}
.signin-chip:hover{border-color:var(--line-strong);}
.menu-toggle{display:none;background:none;border:none;color:var(--fg);}

/* ---------- sign-in chip dropdown (My Orders / Logout) ---------- */
.signin-wrap{position:relative;display:inline-flex;}
.signin-menu{
  position:absolute;top:calc(100% + 10px);right:0;min-width:190px;z-index:120;
  background:#0b0a09;border:1px solid var(--line-strong);border-radius:var(--radius-md);
  padding:8px;opacity:0;pointer-events:none;transform:translateY(-6px);transition:.18s;
  box-shadow:0 14px 34px rgba(0,0,0,.45);
}
.signin-menu.show{opacity:1;pointer-events:auto;transform:translateY(0);}
.signin-menu button{
  width:100%;text-align:left;background:none;border:none;color:var(--fg);font-size:.85rem;
  padding:11px 12px;border-radius:10px;cursor:pointer;font-family:var(--sans);transition:.15s;
}
.signin-menu button:hover{background:rgba(255,255,255,.07);}
.signin-menu button.danger{color:var(--danger);}
.signin-menu-divider{height:1px;background:var(--line);margin:6px 4px;}

/* ---------- My Orders modal ---------- */
.orders-list{max-height:60vh;overflow-y:auto;margin-top:6px;}
.order-card{border:1px solid var(--line);border-radius:var(--radius-md);padding:16px 18px;margin-bottom:14px;}
.order-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;}
.order-card-head .order-number{font-family:var(--serif);font-size:1.02rem;}
.order-card-head .order-date{font-size:.72rem;color:var(--muted);margin-top:3px;}
.order-status-badge{
  font-size:.66rem;padding:5px 11px;border-radius:999px;border:1px solid var(--line);
  text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;color:var(--muted);
}
.order-status-badge.is-paid{color:var(--success);border-color:var(--success);}
.order-status-badge.is-failed,.order-status-badge.is-refunded{color:var(--danger);border-color:var(--danger);}
.order-line{display:flex;justify-content:space-between;gap:12px;font-size:.82rem;color:var(--muted);padding:4px 0;}
.order-line .oi-name{color:var(--fg);}
.order-total-row{
  display:flex;justify-content:space-between;font-size:.88rem;color:var(--fg);font-weight:600;
  border-top:1px solid var(--line);margin-top:10px;padding-top:10px;
}
.order-fulfil-tag{font-size:.72rem;color:var(--muted);margin-top:8px;text-transform:capitalize;}

/* ---------- search bar (desktop, inline in the header; mobile, its own row) ---------- */
.searchbar{
  display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:999px;
  padding:12px 20px;color:var(--muted);
}
.searchbar svg{width:16px;height:16px;flex-shrink:0;}
.searchbar input{background:none;border:none;outline:none;color:var(--fg);width:100%;font-size:.85rem;font-family:var(--sans);}

/* ---------- mobile search row (search bar sits right under the header, in normal
   document flow — it scrolls away with the page, it isn't pinned) + the
   translucent dropdown menu card that floats beneath it ---------- */
.mobile-search-row{
  display:none;position:relative;z-index:49;
  padding:14px 20px;
}
.mobile-search-row .searchbar{max-width:none;margin-bottom:0;}
.mobile-menu-panel{
  position:absolute;top:100%;left:20px;right:20px;margin-top:10px;
  background:rgba(18,16,14,.88);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:0 20px;box-shadow:0 24px 60px rgba(0,0,0,.5);
}
.mobile-menu-panel a{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:16px 2px;font-family:var(--serif);font-size:1.04rem;color:var(--fg);
  border-bottom:1px solid rgba(255,255,255,.08);
}
.mobile-menu-panel a:last-child{border-bottom:none;}
.mobile-menu-panel a svg{width:15px;height:15px;stroke:var(--muted);flex-shrink:0;}

/* ================= GENERIC PRIMITIVES (screens, buttons, tabs, eyebrows) ================= */

.screen{padding:36px 44px 100px;min-height:70vh;}
.screen-head{
  display:flex;align-items:center;justify-content:center;position:relative;margin-bottom:34px;min-height:38px;
}
.back-btn{
  position:absolute;left:0;top:50%;transform:translateY(-50%);
  width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:transparent;
  display:flex;align-items:center;justify-content:center;color:var(--fg);transition:.2s;
}
.back-btn:hover{border-color:var(--line-strong);background:rgba(255,255,255,.05);}
.back-btn svg{width:18px;height:18px;}
.screen-title{font-family:var(--serif);font-size:1.7rem;text-align:center;font-weight:500;}

.frame{
  border-radius:var(--radius-xl);border:1.5px solid var(--line-strong);overflow:hidden;
  background:#000;position:relative;
}
.frame img{width:100%;height:100%;object-fit:cover;display:block;}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  border-radius:999px;border:1px solid rgba(255,255,255,.16);
  background:linear-gradient(180deg,#232120 0%, #050403 65%);
  color:#fff;padding:14px 30px;font-size:.92rem;letter-spacing:.02em;font-weight:500;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12), 0 8px 20px rgba(0,0,0,.4);
  transition:.2s;white-space:nowrap;
}
.btn:hover{border-color:rgba(255,255,255,.34);transform:translateY(-1px);}
.btn:active{transform:translateY(0);}
.btn.block{width:100%;}
.btn.primary{
  background:linear-gradient(180deg,#232120 0%, #050403 65%);border-color:rgba(255,255,255,.16);color:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12), 0 8px 20px rgba(0,0,0,.4);
}
.btn.primary:hover{border-color:rgba(255,255,255,.34);filter:brightness(1.06);}
.btn.ghost{background:transparent;}
.btn.small{padding:9px 18px;font-size:.78rem;}
.btn[disabled]{opacity:.4;pointer-events:none;}

/* Loading state for buttons that submit something over the network
   (sign-in / OTP, checkout, bookings, forms) — swaps the label for a
   small spinner and disables the button, so a second tap while the
   request is still in flight can't fire it twice. Applied/removed via
   setBtnLoading() in site-header.js, which swaps btn.innerHTML rather
   than trying to hide the label with CSS (a color:transparent overlay
   approach turned out not to reliably hide native <button> text across
   browsers, so the label is actually replaced instead). */
.btn.is-loading{pointer-events:none;}
.btn-spinner{
  display:inline-block;width:18px;height:18px;
  border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;
  animation:btnSpin .7s linear infinite;
}
@keyframes btnSpin{to{transform:rotate(360deg);}}

.pill-tab{
  border:1px solid var(--line);border-radius:999px;padding:10px 20px;font-size:.82rem;color:var(--fg);
  background:transparent;opacity:.85;transition:.2s;
}
.pill-tab.active{background:rgba(255,255,255,.16);color:var(--fg);border-color:rgba(255,255,255,.3);opacity:1;font-weight:600;}
.pill-tab:hover:not(.active){border-color:var(--line-strong);opacity:1;}

.section-eyebrow{font-size:.7rem;letter-spacing:.3em;color:var(--muted);text-transform:uppercase;margin-bottom:10px;}

/* ================= SHARED OVERLAY / SIGN-IN MODAL / TOAST ================= */

.overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);backdrop-filter:blur(2px);z-index:90;opacity:0;pointer-events:none;transition:.25s;}
.overlay.show{opacity:1;pointer-events:auto;}

.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px;}
.field{margin-bottom:14px;}
.field label{display:block;font-size:.74rem;color:var(--muted);margin-bottom:8px;letter-spacing:.03em;}
.field input,.field select{
  width:100%;background:transparent;border:1px solid var(--line);border-radius:10px;padding:12px 14px;color:var(--fg);outline:none;font-size:.88rem;
}
.field input:focus,.field select:focus{border-color:var(--line-strong);}
.field input[type=file]{padding:10px;font-size:.8rem;color:var(--muted);}
.otp-row{display:flex;gap:10px;justify-content:center;margin:22px 0;}
.otp-row input{
  width:46px;height:54px;text-align:center;font-size:1.3rem;background:transparent;border:1px solid var(--line);
  border-radius:10px;color:var(--fg);outline:none;
}
.otp-row input:focus{border-color:var(--accent);}

.modal-wrap{position:fixed;inset:0;z-index:110;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;transition:.25s;}
.modal-wrap.show{opacity:1;pointer-events:auto;}
.modal-box{
  background:#0b0a09;border:1px solid var(--line-strong);border-radius:var(--radius-lg);max-width:440px;width:100%;
  padding:36px 34px;position:relative;max-height:88vh;overflow-y:auto;
}
.modal-box.wide{max-width:760px;}
.modal-close{position:absolute;top:18px;right:18px;background:none;border:none;color:var(--muted);width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;}
.modal-close:hover{background:rgba(255,255,255,.06);color:var(--fg);}
.modal-box h3{font-family:var(--serif);font-size:1.35rem;font-weight:500;margin:0 0 8px;text-align:center;}
.modal-box .sub-copy{text-align:center;color:var(--muted);font-size:.85rem;margin:0 0 28px;line-height:1.6;}
.center-star{width:150px;margin:0 auto 18px;display:block;object-fit:contain;}

.toast{
  position:fixed;bottom:28px;left:50%;transform:translateX(-50%) translateY(20px);z-index:200;
  background:#111;border:1px solid var(--line-strong);border-radius:999px;padding:13px 26px;font-size:.85rem;
  opacity:0;pointer-events:none;transition:.25s;display:flex;align-items:center;gap:10px;
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}
.toast svg{width:15px;height:15px;stroke:var(--success);flex-shrink:0;}

/* ================= RESPONSIVE (header + generic primitives) ================= */
@media (max-width:980px){
  .navlinks{display:none;}
  .mb-word{display:none;}
  .menu-toggle{display:flex;align-items:center;}
  .mobile-search-row{display:block;}
  .field-row{grid-template-columns:1fr;}
  .topnav{padding:16px 20px;}
  .screen{padding:26px 18px 90px;}
  .bg-dots{width:100%;}
}
