/* Design tokens */
:root {
  --primary-color: #511A14;
  --text-dark: #333;
  --bg-light: #F2D8B8;
  --container-width: 1140px;
  --brown: #511A14;
  /* Font stack variables (use these in utilities or set body later) */
  --font-sans: 'TheBalvenieGrotesque', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-serif: 'Optima', Georgia, 'Times New Roman', Times, serif;
}

/* Fonts (place in asset/fonts/) */
@font-face {
  font-family: 'Optima';
  src: url('../asset/fonts/Optima.ttc') format('woff2'),
       url('../asset/fonts/Optima.ttc') format('woff');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'thebalveniegrotesque-regular';
  src: url('../asset/fonts/thebalveniegrotesque-regular.otf') format('woff2'),
       url('../asset/fonts/thebalveniegrotesque-regular.otf') format('woff');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'thebalveniegrotesque-bold';
  src: url('../asset/fonts/thebalveniegrotesque-bold.otf') format('woff2'),
       url('../asset/fonts/thebalveniegrotesque-bold.otf') format('woff');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
/* Plantin MT Pro - Italic */
@font-face {
  font-family: 'Plantin MT Pro';
  /*src: url('../asset/fonts/Plantin-MT-Pro-Italic.woff2') format('woff2');*/
  font-weight: normal;
  font-style: italic;
}

/* Utility classes to apply fonts where needed */
.font-sans {
  font-family: var(--font-sans);
}

.font-serif {
  font-family: var(--font-serif);
} 

/* Reset styles */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  font-family: sans-serif;
  color: var(--text-dark);
  line-height: 1.6;
}

img {
  max-width: 100%;
  display: block;
} 

/* Utilities */
.container {
  width: 90%;
  max-width: var(--container-width);
  margin: 0 auto;
} 

/* Layout */
.navbar {
  height: 70px;
  display: flex;
  align-items: center;
  border-bottom: 1px solid #eee;
}

.navbar .container {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.nav-links {
  display: flex;
  gap: 20px;
  list-style: none;
} 

.hero {
  padding: 100px 0;
  text-align: center;
  position: relative;
  z-index: 0;
  background: none;
}

/* Global background image */
body { position: relative; z-index: 0; }
body::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 380vh; 
  background-image: url('../asset/bg-img.jpg');
  background-size: 100% auto; /* fit by width */
  background-position: top center;
  background-repeat: no-repeat;
  z-index: -1; /* main background */
  pointer-events: none;
  will-change: transform;
}

@media (max-width: 480px) {
  body::before {
    background-image: url('../asset/mobile-bg.jpg');
    background-size: 100% auto;
    height: 290vh;
    z-index: -1; /* main background */

  }
}

/* Ensure header and main content overlap the background */
header, main { position: relative; z-index: 1; }

/* Page-specific full-page background for T&C and Thank You pages */
body.page-form-bg::before {
  /* Fixed full-screen background that covers the viewport */
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-image: url('../asset/form-bg.jpg');
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  z-index: -1; /* behind content */
  pointer-events: none;
  will-change: transform;
}

@media (max-width: 480px) {
  body.page-form-bg::before {
    /* Use same full-screen fixed background on small screens */
    background-image: url('../asset/form-bg.jpg');
    background-size: cover;
    background-position: center center;
  }
}

/* Headings */
.tb-heading {
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: 20px;
  line-height: 1.05;
  margin: 0 0 16px;
  text-align: center;
  position: relative;
}

.tb-heading span {
  display: inline;
} 

@media (min-width: 992px) {
  .hero {
    text-align: center;
  }

  .tb-heading {
    font-size: 48px;
    text-align: center;
  }

  /* Desktop: apply absolute positioning and provided styles to the second line */
} 
.btn-sm {
  background: var(--primary-color);
  color: #fff;
  padding: 8px 16px;
  border-radius: 4px;
  text-decoration: none;
} 

/* Responsive breakpoints */
@media (max-width: 768px) {
  .hero h1 { font-size: 1.8rem; }
  .nav-links { display: none; } /* Add mobile menu later */
}

/* --- LOGO STYLES --- */
header {
  padding-top: 0px;
  padding-bottom: 24px;
}

header .container {
  justify-content: center;
}

/* Use grid columns: logo fills its column (2 cols on xs, 4 cols on sm+). */
/* Default (mobile): cap to 180px to avoid oversized logos */
.site-logo {
  width: 100%;
  height: auto;
  max-width: 180px;
  display: block;
  position: relative;
  z-index: 1;
} 

/* Desktop: allow up to 320px max width */
@media (min-width: 992px) {
  .site-logo {
    max-width: 320px;
  }
} 

/* --- FORM STYLES --- */
.form-card {
  background-image: url('../asset/form-bg.jpg');
  background-size: cover;
  background-position: center;
  border: 1px solid rgba(81,26,20,0.3);
  /* border-color: #511A14; */
  border-radius: 20px;
  max-width: 900px;
}

.form-card form {
  background: transparent;
  padding: 16px;
  border-radius: 8px;
}

.form-label.optima-bold {
  font-family: 'Optima', var(--font-serif);
  font-weight: 700;
  font-size: 16px;
  color: var(--brown) !important;
}

.underline-input {
  border: none;
  border-bottom: 1px solid rgba(81,26,20,0.5);
  border-radius: 0;
  padding: .5rem 0;
  background: transparent;
}

.form-control.underline-input:focus,
.form-select.underline-input:focus {
  box-shadow: none;
  border-bottom-color: var(--brown);
  color: var(--brown) !important;
  font-family: 'Optima', var(--font-serif) !important; 
  font-weight: 400;
  font-size: 14px;
}

/* Placeholder styling (30% brown) */
.underline-input::placeholder {
  color: rgba(81,26,20,0.3);
  font-family: 'Optima';
  font-weight: 400;
  font-size: 14px;
}

/* Date input visibility: ensure placeholder and calendar icon are visible and colored at 30% brown.
   Uses a small inline SVG as the visible calendar icon and hides native picker indicator in WebKit so
   the colored icon is consistent across devices. */
input[type="date"].underline-input {
  color: rgba(81,26,20,0.9);
  padding-right: 2.8rem; /* make room for the icon */
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24'><path fill='%23511A14' fill-opacity='0.3' d='M7 10h10v2H7zM19 4h-1V2h-2v2H8V2H6v2H5a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2zm0 14H5V9h14v9z'/></svg>");
  background-repeat: no-repeat;
  background-position: right .6rem center;
  background-size: 18px 18px;
}

/* Cross-browser placeholder selectors for date input */
input[type="date"].underline-input::placeholder { color: rgba(81,26,20,0.3); }
input[type="date"].underline-input::-webkit-input-placeholder { color: rgba(81,26,20,0.3); }
input[type="date"].underline-input::-moz-placeholder { color: rgba(81,26,20,0.3); }
input[type="date"].underline-input:-ms-input-placeholder { color: rgba(81,26,20,0.3); }

/* Hide native icon in WebKit to avoid duplicate icons */
input[type="date"].underline-input::-webkit-calendar-picker-indicator {
  opacity: 0;
  display: none;
}

@media (max-width: 480px) {
  input[type="date"].underline-input { padding-right: 2.6rem; background-position: right .5rem center; }
}

/* Common primary buttons: Get OTP, Verify OTP, Submit */
.btn-primary,
.btn-otp,
.btn-submit {
  background: var(--brown);
  color: #F2D8B8;
  font-size: 14px; /* Default for desktop */
  white-space: nowrap;
  padding: 8px 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
}

.btn-primary:focus,
.btn-otp:focus,
.btn-submit:focus {
  outline: none;
  /* box-shadow: 0 0 0 3px rgba(81,26,20,0.15); */
}

/* Upload button (kept separate) */
.btn-upload {
  background: transparent;
  border: 1px solid var(--brown);
  color: var(--brown);
  border-radius: 999px;
  padding: .45rem 1rem;
  display: inline-block;
  margin-left: 0;
  margin-top: .5rem;
}

/* Left-align labels and upload label (checkbox handled separately) */
.form-card .form-label,
.form-card label {
  text-align: left;
  display: block;
}

/* Center checkbox and its label horizontally within the form card */
.form-card .form-check {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
}

.form-card .form-check-label {
  display: inline-block;
  text-align: left;
  margin: 0;
}

/* Checkbox styling: increase visibility and apply brown border */
.form-check {
  text-align: left;
}

.form-check-input {
  width: 20px;
  height: 20px;
  border: 2px solid var(--brown);
  background: #fff;
  appearance: none;
  -webkit-appearance: none;
  border-radius: 3px;
  position: relative;
  top: 0.15rem;
}

.form-check-input:checked {
  background: var(--brown);
}

/* Use accent-color where supported */
.form-check-input {
  accent-color: var(--brown);
}

/* Select arrow (inline SVG) */
.city-select, .state-select,
.outlet-select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  padding-right: 2.5rem;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' fill='none' stroke='%23511A14' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  background-repeat: no-repeat;
  background-position: right .75rem center;
}

/* Responsive tweaks */
@media (max-width: 576px) {
  .form-card {
    padding: 12px;
  }

  .form-card form {
    padding: 12px;
  }
}

/* Interaction: open file picker */
#uploadBtn {
  cursor: pointer;
}

#uploadBtn:hover {
  opacity: 0.9;
} 



/* Section 1: Main Headings */
.font-balvenie-main {
  font-family: 'thebalveniegrotesque-regular.otf', sans-serif;
  font-weight: normal;
  font-size: 52px;
  line-height: 58px;
  display: block; /* Ensures they stack if needed, or keep inline for XD match */
  text-transform: uppercase;
  letter-spacing: 5px;
  color: #511A14;
}
.accent-italic {
  /* Inherit font-size and line-height from the parent .font-balvenie-main */
  font-family: 'Plantin MT Pro', serif;
  font-style: italic;
  font-weight: normal;
  display: inline;
  
  
}

/* Section 2: Bold Reg Caps Subheading */
.tb-subheading-caps {
  font-family: 'thebalveniegrotesque-bold.otf', sans-serif;
  font-weight: bold;
  font-size: 20px;
  line-height: 24px;
  text-transform: uppercase; /* Handled via CSS, not by re-typing */
  letter-spacing: 1px;
  color: #511A14;
}

.tb-subheading2-caps {
  font-family: 'thebalveniegrotesque-regular.otf', sans-serif;
  font-weight: normal;
  font-size: 14px;
  line-height: 20px;
  text-transform: uppercase; /* Handled via CSS, not by re-typing */
  /* letter-spacing: 0px; */
  color: #511A14;
}

/* Section 3: Italic Description */
.tb-description-italic {
  font-family: 'Plantin MT Pro', serif;
  font-style: italic;
  font-weight: normal;
  font-size: 20px;
  line-height: 24px;
  color: #511A14;
}

/* Section 4: Bold Reg Caps Subheading */
.tb-form-heading {
  font-family: 'thebalveniegrotesque-bold.otf', sans-serif;
  font-weight: bold;
  font-size: 24px;
  line-height: 28px;
  text-transform: uppercase; /* Handled via CSS, not by re-typing */
  letter-spacing: 0.5px;
  color: #511A14;
}


/* Mobile Adjustments (Responsive) */
@media (max-width: 768px) {
  .font-balvenie-main {
    font-size: 24px;
    line-height: 28px;
  }
  .tb-subheading-caps, .tb-description-italic {
    font-size: 14px;
    line-height: 18px;
  }
  .tb-form-heading {
    font-size: 20px;
    line-height: 22px;
  }
}



/* Desktop Only Spacing (1024px and up) */
@media (min-width: 1024px) {
  .hero.py-5 {
    /* Adding significant top padding for desktop */
    padding-top: 250px !important; 
    
    /* Optional: If you want more space at the bottom too */
    padding-bottom: 30px !important; 
  }

  .hero .container {
    /* Adding extra margin or padding to the inner container if needed */
    margin-top: 20px;
  }
}
/* Desktop Only Spacing (1440px and up) */
@media (min-width: 1440px) {
  .hero.py-5 {
    /* Adding significant top padding for desktop */
    padding-top: 450px !important; 
    
    /* Optional: If you want more space at the bottom too */
    padding-bottom: 100px !important; 
  }

  .hero .container {
    /* Adding extra margin or padding to the inner container if needed */
    margin-top: 50px;
  }
}

/* Age confirmation modal */
#ageModal .modal-content { 
  border-radius: 12px; 
  padding: 0; 
  background: #FCF2E5 ; 
  border: 1px solid rgba(81,26,20,0.12); 
}

#ageModal .modal-title { 
  color: var(--brown); 
  font-weight: 700; 
}

#ageModal .modal-body { 
  padding: 1rem 1.5rem; color: var(--text-dark); font-size: 16px; }
#ageModal .modal-footer { border-top: none; padding: 0.75rem 1.5rem 1.25rem; gap: 0.5rem; }
#ageModal .btn { border-radius: 999px; min-width: 100px; }