/* =========================================================
   MALAI CHAAP CORNER — MAIN STYLESHEET
   Design tokens pulled from the shop's own signage:
   gold shopfront banner, warm black poster backgrounds,
   red hand-lettered logotype, teal ring + pure-veg green.
   ========================================================= */

:root{
  /* --- Brand colors (from real signage) --- */
  --gold:        #F5A623;   /* signature banner gold */
  --gold-deep:   #D98D0F;   /* deeper gold / gradients */
  --gold-pale:   #FFD98A;   /* highlight edge */
  --ink:         #1B1712;   /* warm near-black, poster bg */
  --ink-soft:    #2A241C;
  --chaap-red:   #E1272B;   /* logotype / neon red */
  --chaap-red-deep:#B01E22;
  --tandoor-teal:#159C82;   /* logo ring / "corner" text */
  --veg-green:   #2E8B3D;   /* pure-veg badge green */
  --cream:       #FFF7E8;   /* warm cream section bg */
  --paper:       #FFFFFF;

  /* --- Type --- */
  --font-body: 'Poppins', 'Segoe UI', sans-serif;
  --font-display: 'Baloo 2', 'Poppins', sans-serif;

  /* --- Radii / shadow --- */
  --radius-lg: 22px;
  --radius-md: 14px;
  --radius-sm: 8px;
  --shadow-soft: 0 10px 30px rgba(27,23,18,0.10);
  --shadow-card: 0 14px 34px rgba(27,23,18,0.14);
  --shadow-btn: 0 8px 20px rgba(225,39,43,0.28);
}

*{ box-sizing:border-box; }

html{ scroll-behavior:smooth; }

body{
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--paper);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3,h4,.font-display{
  font-family:var(--font-display);
  font-weight:700;
  letter-spacing:.2px;
}

a{ text-decoration:none; }
img{ max-width:100%; height:auto; }

::selection{ background:var(--gold); color:var(--ink); }

/* Focus visibility for accessibility */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible{
  outline:3px solid var(--tandoor-teal);
  outline-offset:2px;
}

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important; }
}

.container-xl{ max-width:1260px; }

/* =========================================================
   EYEBROW / SECTION LABEL (signature device: ribbon tag,
   echoes the "PURE VEG" pill on the real shopfront)
   ========================================================= */
.section-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  background:var(--veg-green);
  color:#fff;
  font-family:var(--font-body);
  font-weight:600;
  font-size:.72rem;
  letter-spacing:1.6px;
  text-transform:uppercase;
  padding:6px 16px;
  border-radius:50px;
  margin-bottom:14px;
}
.section-eyebrow.gold{ background:var(--gold); color:var(--ink); }
.section-eyebrow.dark{ background:rgba(255,255,255,0.12); color:var(--gold-pale); }
.section-eyebrow.red{ background:var(--chaap-red); }

.section-title{
  font-size:clamp(1.9rem, 3.4vw, 2.7rem);
  font-weight:700;
  margin-bottom:.6rem;
}
.section-sub{
  color:#5a5148;
  max-width:640px;
  font-size:1.02rem;
}
.section-pad{ padding:5.5rem 0; }
@media (max-width: 767.98px){ .section-pad{ padding:3.4rem 0; } }

.bg-cream{ background:var(--cream); }
.bg-ink{ background:var(--ink); color:#f4ede0; }
.bg-ink .section-sub{ color:#c9bfae; }
.text-gold{ color:var(--gold) !important; }
.text-red{ color:var(--chaap-red) !important; }
.text-teal{ color:var(--tandoor-teal) !important; }

/* =========================================================
   BUTTONS
   ========================================================= */
.btn{ position:relative; overflow:hidden; font-weight:600; border-radius:50px; padding:.72rem 1.6rem; }

.btn-brand{
  background:linear-gradient(135deg, var(--chaap-red), var(--chaap-red-deep));
  color:#fff;
  border:none;
  box-shadow:var(--shadow-btn);
}
.btn-brand:hover, .btn-brand:focus{ color:#fff; transform:translateY(-2px); box-shadow:0 12px 26px rgba(225,39,43,0.36); }

.btn-gold{
  background:linear-gradient(135deg, var(--gold), var(--gold-deep));
  color:var(--ink);
  border:none;
  box-shadow:0 8px 20px rgba(217,141,15,0.3);
}
.btn-gold:hover, .btn-gold:focus{ color:var(--ink); transform:translateY(-2px); box-shadow:0 12px 26px rgba(217,141,15,0.4); }

.btn-outline-light-custom{
  background:transparent;
  border:2px solid rgba(255,255,255,0.75);
  color:#fff;
}
.btn-outline-light-custom:hover{ background:rgba(255,255,255,0.12); color:#fff; }

.btn-whatsapp{
  background:#25D366;
  color:#fff;
  border:none;
}
.btn-whatsapp:hover{ color:#fff; transform:translateY(-2px); filter:brightness(1.05); }

.btn-outline-teal{
  border:2px solid var(--tandoor-teal);
  color:var(--tandoor-teal);
  background:transparent;
}
.btn-outline-teal:hover{ background:var(--tandoor-teal); color:#fff; }

/* ripple */
.ripple{ position:absolute; border-radius:50%; transform:scale(0); animation:ripple-anim .6s linear; background:rgba(255,255,255,0.55); pointer-events:none; }
@keyframes ripple-anim{ to{ transform:scale(3.2); opacity:0; } }

/* =========================================================
   HEADER
   ========================================================= */
.site-header{
  position:sticky; top:0; z-index:1050;
  background:rgba(27,23,18,0.96);
  backdrop-filter:blur(6px);
  transition:padding .3s ease, box-shadow .3s ease;
  border-bottom:3px solid var(--gold);
}
.site-header.scrolled{ box-shadow:0 8px 24px rgba(0,0,0,0.28); }

.navbar{ padding:.7rem 0; transition:padding .3s ease; }
.site-header.scrolled .navbar{ padding:.4rem 0; }

.brand-lockup{ display:flex; align-items:center; gap:12px; }
.brand-logo-img{
  width:52px; height:52px; object-fit:cover; border-radius:14px;
  border:2px solid var(--gold);
  transition:transform .3s ease;
}
.site-header.scrolled .brand-logo-img{ width:42px; height:42px; }
.brand-lockup:hover .brand-logo-img{ transform:rotate(-6deg) scale(1.05); }

.brand-text{ line-height:1.05; }
.brand-text .brand-name{
  font-family:var(--font-display);
  color:#fff; font-weight:700; font-size:1.28rem; display:block;
}
.brand-text .brand-tag{
  color:var(--gold-pale); font-size:.66rem; letter-spacing:2px; text-transform:uppercase; font-weight:600;
}

.navbar-nav .nav-link{
  color:#efe6d6 !important;
  font-weight:500;
  margin:0 .35rem;
  position:relative;
  padding:.5rem .2rem !important;
}
.navbar-nav .nav-link::after{
  content:''; position:absolute; left:0; bottom:0; width:0; height:2px;
  background:var(--gold); transition:width .25s ease;
}
.navbar-nav .nav-link:hover::after,
.navbar-nav .nav-link.active::after{ width:100%; }
.navbar-nav .nav-link.active{ color:var(--gold) !important; }

.header-actions{ display:flex; gap:.5rem; align-items:center; }
.header-actions .btn{ padding:.55rem 1.1rem; font-size:.86rem; }

.navbar-toggler{ border:none; color:#fff; font-size:1.4rem; }
.navbar-toggler:focus{ box-shadow:none; }

/* =========================================================
   HERO CAROUSEL
   ========================================================= */
.hero-carousel{ position:relative; }
.hero-slide{
  height:88vh; min-height:560px;
  background-size:cover; background-position:center;
  position:relative;
  display:flex; align-items:center;
}
@media (max-width: 767.98px){ .hero-slide{ height:78vh; min-height:480px; } }

.hero-slide::before{
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(27,23,18,0.55) 0%, rgba(27,23,18,0.72) 60%, rgba(27,23,18,0.92) 100%);
}
.hero-content{ position:relative; z-index:2; color:#fff; }
.hero-eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  background:rgba(245,166,35,0.16); border:1px solid var(--gold);
  color:var(--gold-pale); padding:6px 16px; border-radius:50px;
  font-size:.76rem; letter-spacing:1.6px; text-transform:uppercase; font-weight:600;
  margin-bottom:1.1rem;
}
.hero-title{
  font-size:clamp(2.3rem, 6vw, 4.4rem);
  line-height:1.05;
  margin-bottom:1rem;
  text-shadow:0 4px 24px rgba(0,0,0,0.35);
}
.hero-title span{ color:var(--gold); }
.hero-desc{ font-size:1.12rem; max-width:560px; color:#f1e9da; margin-bottom:1.8rem; }
.hero-btns{ display:flex; flex-wrap:wrap; gap:.8rem; }

/* angled bottom edge — lifted from the shopfront's diagonal gold/black wall split */
.hero-carousel::after{
  content:'';
  position:absolute; left:0; right:0; bottom:-1px; height:70px;
  background:var(--paper);
  clip-path: polygon(0 100%, 100% 100%, 100% 0, 0 100%);
  z-index:3;
}
@media (max-width: 767.98px){ .hero-carousel::after{ height:40px; } }

.carousel-indicators [data-bs-target]{ background-color:var(--gold); width:10px; height:10px; border-radius:50%; }
.carousel-control-prev, .carousel-control-next{ width:6%; opacity:.8; }
.carousel-control-prev-icon, .carousel-control-next-icon{
  background-color:rgba(0,0,0,0.35); border-radius:50%; padding:22px; background-size:50%;
}

/* =========================================================
   WELCOME / PILLARS
   ========================================================= */
.pillar-card{
  text-align:center; padding:1.8rem 1.2rem;
  background:var(--paper); border-radius:var(--radius-md);
  box-shadow:var(--shadow-soft);
  height:100%;
  transition:transform .3s ease, box-shadow .3s ease;
}
.pillar-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-card); }
.pillar-icon{
  width:64px; height:64px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg, var(--gold), var(--gold-deep));
  color:var(--ink); font-size:1.6rem; margin:0 auto 1rem;
}

/* =========================================================
   DISH CARDS — signature circular "thali" photo frame
   ========================================================= */
.dish-card{
  background:var(--paper);
  border-radius:var(--radius-lg);
  padding:1.5rem 1.3rem 1.6rem;
  text-align:center;
  box-shadow:var(--shadow-soft);
  height:100%;
  transition:transform .35s ease, box-shadow .35s ease;
  position:relative;
}
.dish-card:hover{ transform:translateY(-8px); box-shadow:var(--shadow-card); }
.dish-photo-wrap{
  width:150px; height:150px; border-radius:50%;
  margin:0 auto 1.1rem;
  padding:5px;
  background:conic-gradient(from 180deg, var(--gold), var(--chaap-red), var(--tandoor-teal), var(--gold));
  display:flex; align-items:center; justify-content:center;
}
.dish-photo-wrap img{
  width:100%; height:100%; object-fit:cover; border-radius:50%;
  border:4px solid var(--paper);
  transition:transform .5s ease;
}
.dish-card:hover .dish-photo-wrap img{ transform:scale(1.08); }
.dish-name{ font-family:var(--font-display); font-weight:700; font-size:1.15rem; margin-bottom:.35rem; }
.dish-desc{ color:#6b6255; font-size:.9rem; margin-bottom:.7rem; min-height:42px; }
.dish-price{
  display:inline-block; background:var(--cream); color:var(--chaap-red-deep);
  font-weight:700; padding:.3rem 1rem; border-radius:50px; font-size:.92rem;
  border:1px dashed var(--gold-deep);
}
.veg-dot{
  width:16px; height:16px; border:2px solid var(--veg-green); border-radius:3px;
  display:inline-flex; align-items:center; justify-content:center; margin-right:6px;
}
.veg-dot::after{ content:''; width:7px; height:7px; background:var(--veg-green); border-radius:50%; }

/* =========================================================
   WHY CHOOSE US (dark, ink section)
   ========================================================= */
.why-card{
  background:rgba(255,255,255,0.05);
  border:1px solid rgba(255,255,255,0.08);
  border-radius:var(--radius-md);
  padding:1.7rem 1.3rem;
  text-align:center;
  height:100%;
  transition:transform .3s ease, background .3s ease;
}
.why-card:hover{ transform:translateY(-6px); background:rgba(245,166,35,0.09); border-color:var(--gold); }
.why-icon{
  font-size:1.8rem; color:var(--gold); margin-bottom:.9rem;
}
.why-card h5{ color:#fff; font-family:var(--font-body); font-weight:600; }
.why-card p{ color:#c9bfae; font-size:.88rem; margin-bottom:0; }

/* =========================================================
   TESTIMONIALS
   ========================================================= */
.review-card{
  background:var(--paper); border-radius:var(--radius-lg);
  padding:2rem 1.7rem; box-shadow:var(--shadow-soft);
  height:100%;
}
.review-stars{ color:var(--gold-deep); font-size:.95rem; margin-bottom:.8rem; }
.review-text{ color:#4c4438; font-style:italic; margin-bottom:1.2rem; }
.review-person{ display:flex; align-items:center; gap:.7rem; }
.review-avatar{
  width:44px; height:44px; border-radius:50%;
  background:linear-gradient(135deg, var(--tandoor-teal), var(--gold));
  display:flex; align-items:center; justify-content:center;
  color:#fff; font-weight:700;
}
.review-name{ font-weight:600; margin-bottom:0; font-size:.92rem; }
.review-role{ font-size:.76rem; color:#948a7c; }

/* =========================================================
   CTA BANNER
   ========================================================= */
.cta-banner{
  position:relative; overflow:hidden;
  background:linear-gradient(120deg, var(--chaap-red) 0%, var(--chaap-red-deep) 100%);
  padding:4.5rem 0;
  color:#fff;
}
.cta-banner::before{
  content:''; position:absolute; inset:0;
  background:
    linear-gradient(115deg, transparent 62%, rgba(27,23,18,0.9) 62.5%, rgba(27,23,18,0.9) 68%, transparent 68.5%),
    linear-gradient(115deg, transparent 30%, var(--gold) 30.5%, var(--gold) 33%, transparent 33.5%);
  opacity:.5;
}
.cta-banner .container{ position:relative; z-index:2; }
.cta-banner h2{ font-size:clamp(1.9rem, 4vw, 3rem); }

/* =========================================================
   FOOTER
   ========================================================= */
.site-footer{ background:var(--ink); color:#cfc4b2; padding-top:4rem; }
.site-footer h5{ color:#fff; font-family:var(--font-body); font-weight:600; font-size:1.02rem; margin-bottom:1.1rem; }
.site-footer a{ color:#cfc4b2; transition:color .2s ease, padding-left .2s ease; }
.site-footer a:hover{ color:var(--gold); padding-left:4px; }
.footer-brand{ display:flex; align-items:center; gap:10px; margin-bottom:1rem; }
.footer-brand img{ width:48px; height:48px; border-radius:12px; border:2px solid var(--gold); }
.footer-brand span{ font-family:var(--font-display); font-weight:700; color:#fff; font-size:1.2rem; }
.footer-bottom{ border-top:1px solid rgba(255,255,255,0.08); margin-top:2.5rem; padding:1.3rem 0; font-size:.84rem; }
.social-icons{ display:flex; gap:.6rem; margin-top:1rem; }
.social-icons a{
  width:38px; height:38px; border-radius:50%;
  background:rgba(255,255,255,0.08);
  display:flex; align-items:center; justify-content:center;
  color:#fff; font-size:1rem;
}
.social-icons a:hover{ background:var(--gold); color:var(--ink); padding-left:0; }
.footer-hours li{ display:flex; justify-content:space-between; padding:.25rem 0; border-bottom:1px dashed rgba(255,255,255,0.08); font-size:.88rem; }

/* =========================================================
   FLOATING BUTTONS
   ========================================================= */
.float-btns{ position:fixed; right:20px; bottom:22px; z-index:1200; display:flex; flex-direction:column; gap:12px; align-items:flex-end; }
.float-btn{
  width:56px; height:56px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  color:#fff; font-size:1.5rem; box-shadow:0 10px 24px rgba(0,0,0,0.28);
  transition:transform .25s ease;
}
.float-btn:hover{ transform:scale(1.08); color:#fff; }
.float-whatsapp{ background:#25D366; }
.float-call{ background:var(--chaap-red); animation:pulse-ring 2.4s infinite; }
.back-to-top{
  background:var(--ink); width:46px; height:46px; font-size:1.15rem;
  opacity:0; visibility:hidden; transform:translateY(10px);
  transition:opacity .3s ease, transform .3s ease, visibility .3s;
  border:2px solid var(--gold);
}
.back-to-top.show{ opacity:1; visibility:visible; transform:translateY(0); }

@keyframes pulse-ring{
  0%{ box-shadow:0 0 0 0 rgba(225,39,43,0.55), 0 10px 24px rgba(0,0,0,0.28); }
  70%{ box-shadow:0 0 0 14px rgba(225,39,43,0), 0 10px 24px rgba(0,0,0,0.28); }
  100%{ box-shadow:0 0 0 0 rgba(225,39,43,0), 0 10px 24px rgba(0,0,0,0.28); }
}

/* =========================================================
   FADE-IN ON SCROLL
   ========================================================= */
.reveal{ opacity:0; transform:translateY(26px); transition:opacity .7s ease, transform .7s ease; }
.reveal.in-view{ opacity:1; transform:translateY(0); }

/* =========================================================
   PAGE HERO (inner pages)
   ========================================================= */
.page-hero{
  position:relative; padding:8.5rem 0 4.5rem; color:#fff;
  background-size:cover; background-position:center;
}
.page-hero::before{ content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(27,23,18,0.75), rgba(27,23,18,0.9)); }
.page-hero .container{ position:relative; z-index:2; }
.page-hero h1{ font-size:clamp(2.2rem,4.4vw,3.4rem); }
.breadcrumb-custom{ font-size:.9rem; color:var(--gold-pale); }
.breadcrumb-custom a{ color:#f1e9da; }
.breadcrumb-custom a:hover{ color:var(--gold); }

/* =========================================================
   ABOUT PAGE
   ========================================================= */
.story-img-frame{ position:relative; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-card); }
.story-badge{
  position:absolute; bottom:-22px; left:-22px;
  background:var(--gold); color:var(--ink); border-radius:50%;
  width:120px; height:120px; display:flex; align-items:center; justify-content:center;
  flex-direction:column; text-align:center; font-family:var(--font-display); font-weight:700;
  box-shadow:0 10px 26px rgba(217,141,15,0.4); border:4px solid var(--paper);
}
.story-badge span{ display:block; font-size:1.5rem; line-height:1; }
.story-badge small{ font-family:var(--font-body); font-weight:600; font-size:.62rem; letter-spacing:.5px; }

.value-card{ background:var(--paper); border-radius:var(--radius-md); padding:2rem 1.6rem; box-shadow:var(--shadow-soft); height:100%; border-top:4px solid var(--gold); }
.value-card .why-icon{ color:var(--chaap-red); }

.speciality-item{ display:flex; gap:1rem; align-items:flex-start; padding:1.2rem 0; border-bottom:1px dashed #e6dcc8; }
.speciality-item:last-child{ border-bottom:none; }
.speciality-num{ font-family:var(--font-display); font-size:1.6rem; color:var(--gold-deep); font-weight:700; min-width:46px; }

.place-card{ background:var(--paper); border-radius:var(--radius-md); overflow:hidden; box-shadow:var(--shadow-soft); height:100%; transition:transform .3s ease, box-shadow .3s ease; }
.place-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-card); }
.place-img{
  height:170px; display:flex; align-items:center; justify-content:center; color:#fff; font-size:2.2rem;
  background:linear-gradient(135deg, var(--tandoor-teal), var(--ink));
  position:relative;
}
.place-distance{
  position:absolute; top:12px; right:12px; background:rgba(27,23,18,0.75);
  color:var(--gold-pale); font-size:.74rem; font-weight:600; padding:4px 10px; border-radius:50px;
}
.place-body{ padding:1.2rem 1.3rem 1.4rem; }
.place-body h5{ font-family:var(--font-body); font-weight:600; margin-bottom:.4rem; }
.place-body p{ font-size:.87rem; color:#6b6255; margin-bottom:.9rem; }

/* =========================================================
   GALLERY PAGE
   ========================================================= */
.gallery-filter{ display:flex; flex-wrap:wrap; gap:.6rem; justify-content:center; margin-bottom:2.5rem; }
.gallery-filter .btn{ padding:.5rem 1.3rem; font-size:.85rem; }
.gallery-filter .btn.active{ background:var(--chaap-red); color:#fff; border-color:var(--chaap-red); }

.gallery-item{ border-radius:var(--radius-md); overflow:hidden; position:relative; cursor:pointer; box-shadow:var(--shadow-soft); margin-bottom:1.5rem; }
.gallery-item img{ width:100%; height:270px; object-fit:cover; transition:transform .55s ease; display:block; }
.gallery-item:hover img{ transform:scale(1.12); }
.gallery-overlay{
  position:absolute; inset:0; background:linear-gradient(0deg, rgba(27,23,18,0.82) 0%, transparent 55%);
  display:flex; align-items:flex-end; padding:1rem; opacity:0; transition:opacity .3s ease;
}
.gallery-item:hover .gallery-overlay{ opacity:1; }
.gallery-overlay span{ color:#fff; font-weight:600; font-size:.92rem; }
.gallery-zoom-icon{
  position:absolute; top:12px; right:12px; width:38px; height:38px; border-radius:50%;
  background:rgba(255,255,255,0.9); color:var(--ink); display:flex; align-items:center; justify-content:center;
  opacity:0; transform:scale(.7); transition:all .3s ease;
}
.gallery-item:hover .gallery-zoom-icon{ opacity:1; transform:scale(1); }

/* Lightbox modal */
#lightboxModal .modal-content{ background:transparent; border:none; }
#lightboxModal .modal-body{ position:relative; padding:0; display:flex; align-items:center; justify-content:center; min-height:60vh; }
#lightboxModal img{ max-height:82vh; border-radius:12px; box-shadow:0 20px 60px rgba(0,0,0,0.5); animation:zoomIn .35s ease; }
@keyframes zoomIn{ from{ opacity:0; transform:scale(.9);} to{ opacity:1; transform:scale(1);} }
.lightbox-close{
  position:absolute; top:-6px; right:-6px; background:#fff; color:var(--ink);
  width:42px; height:42px; border-radius:50%; border:none; font-size:1.2rem; z-index:5;
}
.lightbox-nav{
  position:absolute; top:50%; transform:translateY(-50%); background:rgba(255,255,255,0.85);
  border:none; width:48px; height:48px; border-radius:50%; font-size:1.3rem; color:var(--ink); z-index:5;
}
.lightbox-prev{ left:-14px; } .lightbox-next{ right:-14px; }
@media (max-width: 767.98px){
  .lightbox-prev{ left:2px; } .lightbox-next{ right:2px; }
}
.lightbox-caption{ position:absolute; bottom:-42px; left:0; right:0; text-align:center; color:#fff; font-size:.9rem; }

/* =========================================================
   CONTACT PAGE
   ========================================================= */
.contact-info-card{ background:var(--paper); border-radius:var(--radius-md); box-shadow:var(--shadow-soft); padding:1.6rem; display:flex; gap:1rem; align-items:flex-start; height:100%; }
.contact-info-icon{ width:50px; height:50px; min-width:50px; border-radius:50%; background:var(--cream); color:var(--chaap-red); display:flex; align-items:center; justify-content:center; font-size:1.2rem; }
.contact-info-card h6{ font-weight:700; margin-bottom:.3rem; }
.contact-info-card p{ margin-bottom:0; font-size:.9rem; color:#6b6255; }

.contact-form-wrap{ background:var(--paper); border-radius:var(--radius-lg); box-shadow:var(--shadow-card); padding:2.4rem; }
.form-control, .form-select{ border-radius:10px; border:1.5px solid #e6dcc8; padding:.7rem 1rem; }
.form-control:focus, .form-select:focus{ border-color:var(--tandoor-teal); box-shadow:0 0 0 .2rem rgba(21,156,130,0.15); }
.form-label{ font-weight:600; font-size:.9rem; }

.map-wrap{ border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-soft); }
.map-wrap iframe{ width:100%; height:400px; border:0; display:block; }

#formAlert{ display:none; }

/* utility */
.hover-lift{ transition:transform .3s ease, box-shadow .3s ease; }
.hover-lift:hover{ transform:translateY(-6px); }
