:root {
  --wine-900:#240915; --wine-800:#33101f; --wine-700:#4a1630; --wine:#5b1a3a;
  --brown:#3a2616; --cream:#f3ece2; --cream-2:#faf6ef; --tan:#e8d0a3; --gold:#c9a45c;
  --ink:#2b1a14; --muted:#8a7a6e; --line:#e3d8c9;
}
html { -webkit-text-size-adjust:100%; }
body { font-family:'Jost','Noto Sans Tamil',sans-serif; background:var(--cream); color:var(--ink); overflow-x:hidden; -webkit-tap-highlight-color:rgba(91,26,58,.15); }
html[lang="ta"] body { font-family:'Noto Sans Tamil','Jost',sans-serif; line-height:1.7; }
img { max-width:100%; }
.brand-name, .section-heading, .hero-slide h1, .detail-title, .about-quote, .about-sub, .product-name, .cat-name {
  font-family:'Cormorant Garamond','Noto Serif Tamil',serif; }
a { color:var(--wine); }

/* ---------- top strip + header ---------- */
.announce { background:var(--gold); color:var(--wine-900); }
.topbar { background:var(--wine-900); color:#d9c9bd; font-size:.82rem; padding:.35rem 0; position:relative; z-index:1031; }
.topbar a { color:var(--tan); text-decoration:none; }
.lang-switch a { color:#d9c9bd; text-decoration:none; padding:.25rem .45rem; display:inline-block; }
.lang-switch a.active { color:var(--tan); font-weight:500; border-bottom:1px solid var(--tan); }
.header-wrap { position:relative; z-index:1030; }
body:not(.home-page) .header-wrap { position:sticky; top:0; }
.site-header { background:var(--wine-800); }
.home-page .site-header { position:absolute; left:0; right:0; top:0; background:linear-gradient(180deg,rgba(24,6,14,.88),rgba(24,6,14,0)); }
.navbar { padding:.9rem 0; }
.navbar-brand { color:#fff; margin-right:0; }
.navbar-brand .brand-name { font-size:1.3rem; letter-spacing:.14em; text-transform:uppercase; color:#f3e6d3; line-height:1.1; font-weight:600; }
html[lang="ta"] .navbar-brand .brand-name { letter-spacing:.04em; }
.navbar .nav-link { color:#eadccf; font-size:.92rem; letter-spacing:.02em; }
.navbar .nav-link:hover { color:var(--tan); }
.navbar-toggler { border-color:rgba(255,255,255,.35); padding:.4rem .6rem; }

/* ---------- logo ---------- */
.logo-mark { --logo-bg:var(--wine-900); display:inline-flex; color:var(--tan); }
.logo-mark svg { height:44px; width:auto; }
.logo-mark img { max-height:48px; width:auto; }
.site-footer .logo-mark svg { height:54px; }

/* ---------- buttons ---------- */
.btn { touch-action:manipulation; }
.btn-wine { background:var(--wine); color:#fff; border:1px solid var(--wine); border-radius:3px; }
.btn-wine:hover { background:var(--wine-900); color:#fff; }
.btn-outline-wine { color:var(--wine); border:1px solid var(--wine); border-radius:3px; }
.btn-outline-wine:hover { background:var(--wine); color:#fff; }
.btn-purple { background:var(--wine); color:#fff; border-color:var(--wine); }
.btn-purple:hover { background:var(--wine-900); color:#fff; }
.btn-outline-purple { color:var(--wine); border-color:var(--wine); }
.btn-outline-purple:hover { background:var(--wine); color:#fff; }
.btn-tan { background:var(--tan); color:var(--ink); border-radius:3px; padding:.8rem 1.6rem; font-weight:500; border:0; }
.btn-tan:hover { background:#dcbf8a; color:var(--ink); }
.btn-wa { background:#25d366; color:#fff; font-weight:500; border-radius:3px; }
.btn-wa:hover { background:#1ebe5a; color:#fff; }
.btn-enquire { display:block; background:var(--wine); color:#fff; border-radius:0; font-weight:500; padding:.75rem; font-size:.92rem; letter-spacing:.02em; text-align:center; }
.btn-enquire:hover { background:var(--wine-900); color:#fff; }
.btn-enquire.btn-lg { width:100%; padding:.9rem; border-radius:3px; }
.text-gold { color:var(--gold); }

/* ---------- hero (home page only) ---------- */
.hero-carousel { position:relative; }
.hero-slide { position:relative; overflow:hidden; min-height:640px; display:flex; align-items:center; color:#f6ecdf;
  background:radial-gradient(800px 420px at 80% 45%, rgba(122,38,72,.55), transparent 62%), linear-gradient(100deg,#1c0a0f 0%,#2e1118 45%,#4a1830 100%); }
/* full-bleed model photo on the right; its left edge melts into the dark banner (no frame, no box) */
.hero-photo { position:absolute; top:0; right:0; bottom:0; width:min(54%,720px); pointer-events:none; }
.hero-photo img { display:block; width:100%; height:100%; object-fit:cover; object-position:50% 15%;
  -webkit-mask-image:linear-gradient(to right, transparent 0%, rgba(0,0,0,.5) 16%, #000 42%);
          mask-image:linear-gradient(to right, transparent 0%, rgba(0,0,0,.5) 16%, #000 42%); }
.hero-inner { position:relative; z-index:2; padding-top:5.5rem; padding-bottom:3.5rem; }
.hero-text { max-width:560px; }
.hero-slide h1 { font-size:clamp(2.4rem,5.5vw,4.3rem); line-height:1.05; font-weight:500; color:#fbf1e3; margin-bottom:1.1rem; text-shadow:0 2px 16px rgba(20,6,12,.55); }
.hero-slide p { color:#e6d6c6; font-size:1.02rem; max-width:430px; margin-bottom:1.6rem; }
.hero-controls { position:absolute; left:0; right:0; bottom:1.2rem; z-index:3; display:flex; align-items:center; gap:.8rem; color:#e6d6c6; font-size:.85rem; }
.hero-line { display:inline-block; width:52px; height:1px; background:#c9b9a8; }
.hero-controls button { background:none; border:0; color:#e6d6c6; font-size:1.7rem; line-height:1; padding:.25rem .6rem; }

/* ---------- sections ---------- */
.section-heading { font-size:2.2rem; font-weight:500; color:var(--wine-800); text-align:center; margin-bottom:.4rem; }
.section-heading::after { content:""; display:block; width:42px; height:2px; background:var(--gold); margin:.5rem auto 0; }
.category-section { padding:3.5rem 0 1rem; }
.cat-item { display:block; text-decoration:none; color:var(--ink); }
.cat-circle { width:150px; height:150px; max-width:100%; aspect-ratio:1/1; border-radius:50%; margin:0 auto 1rem; overflow:hidden;
  display:flex; align-items:center; justify-content:center; transition:transform .25s, box-shadow .25s; box-shadow:0 3px 14px rgba(36,9,21,.18); }
.cat-circle img { width:100%; height:100%; object-fit:cover; }
.category-section .row > div:nth-child(6n+1) .cat-circle { background:radial-gradient(circle at 30% 30%,#7a2a4a,#3d0f26); }
.category-section .row > div:nth-child(6n+2) .cat-circle { background:radial-gradient(circle at 30% 30%,#f4e8d6,#d8c4a6); }
.category-section .row > div:nth-child(6n+3) .cat-circle { background:radial-gradient(circle at 30% 30%,#4a3a3a,#16100f); }
.category-section .row > div:nth-child(6n+4) .cat-circle { background:radial-gradient(circle at 30% 30%,#7d8450,#3a4125); }
.category-section .row > div:nth-child(6n+5) .cat-circle { background:radial-gradient(circle at 30% 30%,#c4623c,#7a2a14); }
.category-section .row > div:nth-child(6n+6) .cat-circle { background:radial-gradient(circle at 30% 30%,#8a5a78,#44213d); }
.cat-item:hover .cat-circle { transform:scale(1.06); box-shadow:0 8px 22px rgba(36,9,21,.3); }
.cat-name { font-size:1.2rem; font-weight:600; line-height:1.2; }
.cat-tag { font-size:.8rem; color:var(--muted); margin-top:.2rem; }
.cat-arrow { color:var(--wine); margin-top:.35rem; }

/* collections page */
.page-head { padding:2rem 0 .5rem; }
.cat-pills { display:flex; flex-wrap:wrap; justify-content:center; gap:.5rem; margin-top:1rem; padding:0 1rem; }
.pill { padding:.45rem 1.1rem; border:1px solid var(--line); border-radius:50px; text-decoration:none; color:var(--ink); font-size:.88rem; background:var(--cream-2); }
.pill:hover { border-color:var(--wine); color:var(--wine); }
.pill.active { background:var(--wine); border-color:var(--wine); color:#fff; }

/* product cards */
.product-card { display:flex; flex-direction:column; background:var(--cream-2); border:1px solid var(--line); transition:box-shadow .2s, transform .2s; }
.product-card:hover { box-shadow:0 10px 24px rgba(36,9,21,.14); transform:translateY(-3px); }
.img-wrap { position:relative; display:block; aspect-ratio:3/4; background:#e9ddcb; }
.img-wrap img { width:100%; height:100%; object-fit:cover; }
.img-placeholder { display:flex; align-items:center; justify-content:center; text-align:center; width:100%; height:100%; min-height:140px; padding:.5rem; background:#e9ddcb; color:var(--wine); font-size:.85rem; }
.product-info { padding:.85rem .9rem .7rem; flex:1; }
.product-cat { font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); }
html[lang="ta"] .product-cat { letter-spacing:.03em; }
.product-name { font-size:1.2rem; font-weight:600; margin:.15rem 0 .25rem; line-height:1.2; }
.product-name a { color:var(--ink); text-decoration:none; }
.price { color:var(--wine); font-weight:500; }
.detail-title { font-size:2.2rem; font-weight:600; color:var(--wine-800); }
.detail-price { font-size:1.5rem; }
.detail-img { aspect-ratio:3/4; object-fit:cover; width:100%; background:#e9ddcb; }
.thumb { width:64px; height:64px; object-fit:cover; cursor:pointer; border:1px solid var(--line); }
.detail-table th { font-weight:500; color:var(--muted); width:38%; }
.back-link { color:var(--wine); text-decoration:none; }

/* boxes / pages */
.visit-box, .promo-card { border-radius:4px; }
.visit-box { background:var(--cream-2); border:1px solid var(--line); padding:1.8rem; }
.about-wrap { max-width:760px; padding-top:2.2rem; }
.about-quote { font-size:clamp(1.6rem,3.5vw,2.3rem); font-style:italic; color:var(--wine); margin:1.2rem 0 2rem; line-height:1.3; }
.about-sub { font-size:1.5rem; color:var(--wine-800); font-weight:600; }
.about-story { text-align:left; }
.promo-card { position:relative; overflow:hidden; min-height:240px; display:flex; align-items:flex-end; color:#fff; background:linear-gradient(120deg,var(--wine-900),var(--wine)); }
.promo-card img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.promo-card::after { content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(0deg,rgba(24,6,14,.82),rgba(24,6,14,.12) 70%); }
.promo-body { position:relative; z-index:2; padding:1.4rem; }
.promo-title { font-family:'Cormorant Garamond','Noto Serif Tamil',serif; font-size:1.9rem; color:#fff; margin:.2rem 0 .4rem; }
.eyebrow { font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:var(--gold); font-weight:500; }
.coupon-pill { display:inline-block; border:1px solid rgba(255,255,255,.75); border-radius:50px; padding:.2rem .9rem; font-size:.8rem; }
.form-control:focus { border-color:var(--wine); box-shadow:0 0 0 .2rem rgba(91,26,58,.15); }

/* contact page map */
.map-card { background:var(--cream-2); border:1px solid var(--line); border-radius:6px; overflow:hidden; box-shadow:0 6px 22px rgba(36,9,21,.1); }
.map-frame { position:relative; width:100%; aspect-ratio:16/9; min-height:300px; background:#e9ddcb; }
.map-frame iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }
.map-caption { display:flex; flex-wrap:wrap; gap:.75rem 1rem; align-items:center; justify-content:space-between; padding:1rem 1.25rem; border-top:3px solid var(--gold); }

/* ---------- footer ---------- */
.site-footer { background:var(--wine-900); color:#d9c9bd; }
.site-footer a { color:var(--tan); text-decoration:none; }
.site-footer li { margin-bottom:.3rem; }
.site-footer .brand-name { color:#f6e8d4; font-size:1.5rem; letter-spacing:.1em; text-transform:uppercase; }
html[lang="ta"] .site-footer .brand-name { letter-spacing:.02em; }
.footer-title { font-size:.8rem; letter-spacing:.15em; text-transform:uppercase; color:var(--gold); }
.footer-line { border-color:#5a3a45; }
.footer-bottom { position:relative; padding:.6rem 3rem; min-height:44px; }
/* hidden staff trigger: faint dot, big invisible tap area, bottom-LEFT (the WhatsApp button covers the right) */
.admin-dot { position:absolute; left:0; top:50%; transform:translateY(-50%); width:44px; height:44px; display:flex; align-items:center; justify-content:center;
  color:#fff; opacity:.16; text-decoration:none; line-height:1; user-select:none; -webkit-user-select:none; -webkit-touch-callout:none; touch-action:manipulation; }
.admin-dot:hover, .admin-dot:focus { opacity:.6; color:#fff; }
.wa-float { position:fixed; right:16px; bottom:16px; z-index:1030; background:#25d366; color:#fff; padding:.6rem 1rem; border-radius:50px; font-weight:500; text-decoration:none; box-shadow:0 4px 12px rgba(0,0,0,.25); }
.d-none input { display:none; }
.offer-modal { border:2px solid var(--gold); border-radius:6px; overflow:hidden; background:var(--cream); }
.offer-modal img { max-height:220px; object-fit:cover; }

/* =====================  TABLET / PHONE  ===================== */
@media (max-width: 991.98px) {
  /* header is solid (not floating over the photo); menu opens as a full-width panel */
  .home-page .site-header { position:relative; background:var(--wine-800); }
  .site-header .navbar-collapse { background:var(--wine-900); margin:.6rem -14px 0; padding:.2rem 14px .8rem; }
  .navbar .nav-link { padding:.85rem .2rem; border-bottom:1px solid rgba(255,255,255,.08); font-size:1rem; }
}

@media (max-width: 768px) {
  body { font-size:.95rem; }
  .container { padding-left:14px; padding-right:14px; }
  .mt-5 { margin-top:2rem !important; }
  .btn { min-height:44px; display:inline-flex; align-items:center; justify-content:center; }
  .form-control, .form-select { font-size:16px; min-height:44px; }   /* 16px stops iPhone zoom-in */
  textarea.form-control { min-height:110px; }

  .topbar { font-size:.78rem; padding:.15rem 0; }
  .navbar { padding:.55rem 0; }
  .navbar-brand { max-width:calc(100% - 64px); }
  .navbar-brand .brand-name { font-size:1rem; letter-spacing:.05em; white-space:normal; }
  .logo-mark svg { height:34px; }

  .btn-tan { padding:.7rem 1.4rem; font-size:.95rem; }
  .hero-controls { position:relative; bottom:auto; justify-content:center; padding-bottom:1rem; }

  .category-section { padding:2rem 0 .25rem; }
  .category-section .row { --bs-gutter-x:.6rem; --bs-gutter-y:1.1rem; }
  .section-heading { font-size:1.6rem; }
  .cat-circle { width:100%; height:auto; max-width:112px; margin-bottom:.5rem; }
  .cat-name { font-size:.98rem; }
  .cat-tag, .cat-arrow { display:none; }

  .page-head { padding:1.4rem 0 .25rem; }
  .cat-pills { gap:.4rem; padding:0; }
  .pill { padding:.4rem .9rem; font-size:.85rem; }

  .row.g-3 { --bs-gutter-x:.6rem; --bs-gutter-y:.6rem; }
  .product-info { padding:.55rem .6rem .45rem; }
  .product-name { font-size:1.05rem; }
  .btn-enquire { font-size:.82rem; padding:.6rem .35rem; line-height:1.2; min-height:44px; display:flex; }
  .btn-enquire.btn-lg { font-size:1rem; padding:.8rem; }
  .detail-title { font-size:1.7rem; }
  .thumb { width:56px; height:56px; }

  .promo-card { min-height:200px; }
  .promo-title { font-size:1.55rem; }
  .visit-box { padding:1.1rem; }
  .visit-box .btn { width:100%; margin:0 0 .5rem !important; }
  form[method="post"] button[type="submit"].btn-wine { width:100%; }
  .about-wrap { padding-top:1.4rem; }
  .pagination { --bs-pagination-padding-x:.7rem; --bs-pagination-padding-y:.45rem; }

  .map-frame { aspect-ratio:4/3; min-height:260px; }
  .map-caption { padding:.9rem 1rem; }
  .map-caption .btn { width:100%; }

  .wa-float { right:10px; bottom:10px; padding:.45rem .85rem; font-size:.85rem; min-height:40px; }
  .site-footer { margin-top:2rem !important; padding-top:1.4rem !important; padding-bottom:3.4rem !important; font-size:.88rem; }
  .site-footer .row { --bs-gutter-y:.7rem; }
  .site-footer .logo-mark svg { height:36px; }
  .site-footer .brand-name { font-size:1.1rem; letter-spacing:.06em; }
  .site-footer p, .site-footer li { margin-bottom:.2rem; }
  .site-footer li a { display:inline-block; padding:.2rem 0; }
  .footer-title { margin-bottom:.35rem; font-size:.72rem; }
  .footer-line { margin:.7rem 0 .2rem; }
  .footer-bottom { padding:.5rem 3rem; }
}

@media (max-width: 380px) {
  .navbar-brand .brand-name { font-size:.88rem; }
  .btn-enquire { font-size:.76rem; }
}

/* ---------- hero: tablet and phone ---------- */
@media (min-width: 769px) and (max-width: 991.98px) {
  .hero-slide { min-height:520px; }
  .hero-inner { padding-top:3rem; padding-bottom:3rem; }
  .hero-slide h1 { font-size:2.6rem; }
}
@media (max-width: 768px) {
  /* text and button on top, photo below it, full width, fading upward into the banner */
  .hero-slide { flex-direction:column; align-items:stretch; min-height:0; }
  .hero-inner { order:1; width:100%; padding-top:1.8rem; padding-bottom:1.2rem; text-align:center; }
  .hero-text { max-width:none; }
  .hero-slide h1 { font-size:2rem; margin-bottom:.6rem; }
  .hero-slide p { font-size:.93rem; margin:0 auto 1.1rem; }
  .hero-photo { order:2; position:relative; top:auto; right:auto; bottom:auto; width:100%; }
  .hero-photo img { height:auto; aspect-ratio:1/1; max-height:560px; object-position:50% 12%;
    -webkit-mask-image:linear-gradient(to bottom, transparent 0%, rgba(0,0,0,.55) 12%, #000 34%);
            mask-image:linear-gradient(to bottom, transparent 0%, rgba(0,0,0,.55) 12%, #000 34%); }
}
@media (max-width: 380px) {
  .hero-slide h1 { font-size:1.8rem; }
}
