:root{
  --saffron:#FF9933;
  --maroon:#800000;
  --gold:#D4AF37;
  --cream:#FFFDD0;
  --ink:#1c1c1c;
  --muted:#6b6b6b;
  --bg:#fff;
  --card:#ffffff;
  --shadow:0 10px 30px rgba(0,0,0,.12);
  --radius:16px;
  --radius-sm:12px;
  --container:1200px;
  /* Header/Footer theme */
  --bg1:#4b2417;
  --bg2:#7a3f23;
  --text:#f7f2ec;
  --muted-f:rgba(247,242,236,.75);
  --line:rgba(255,255,255,.14);
  --pill:rgba(255,255,255,.10);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Poppins,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  color:var(--ink);
  background:linear-gradient(180deg,rgba(255,157,64,.10),rgba(255,253,208,.65) 40%,#fff);
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font-family:inherit}

.container{
  max-width:var(--container);
  width:100%;
  margin:0 auto;
  padding:0 20px;
}

.section{padding:72px 0}
.section-sm{padding:48px 0}

.h1,.h2,.h3{
  font-family:"Playfair Display", Georgia, serif;
  letter-spacing:.2px;
}
.h1{font-size:clamp(32px,4.5vw,54px);line-height:1.08;margin:0 0 14px}
.h2{font-size:clamp(24px,3.3vw,38px);line-height:1.12;margin:0 0 12px}
.h3{font-size:clamp(18px,2.2vw,24px);line-height:1.2;margin:0 0 10px}
.p{margin:0;color:var(--muted);line-height:1.75}

.badge{
  display:inline-flex;
  gap:8px;
  align-items:center;
  padding:8px 12px;
  border-radius:999px;
  background:rgba(255,153,51,.14);
  color:var(--maroon);
  font-weight:600;
  font-size:13px;
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:12px 16px;
  border-radius:999px;
  border:1px solid transparent;
  background:var(--maroon);
  color:#fff;
  cursor:pointer;
  position:relative;
  overflow:hidden;
  transition:transform .15s ease, box-shadow .2s ease, background .2s ease;
  box-shadow:0 12px 28px rgba(128,0,0,.22);
}
.btn:hover{transform:translateY(-1px)}
.btn:active{transform:translateY(0)}
.btn-outline{
  background:transparent;
  color:var(--maroon);
  border-color:rgba(128,0,0,.25);
  box-shadow:none;
}
.btn-saffron{background:var(--saffron); box-shadow:0 12px 28px rgba(255,153,51,.25)}

.ripple::after{
  content:"";
  position:absolute;
  inset:auto;
  width:10px;
  height:10px;
  border-radius:999px;
  background:rgba(255,255,255,.6);
  transform:translate(-50%,-50%) scale(0);
  opacity:0;
  pointer-events:none;
}
.ripple.ripple-animate::after{animation:ripple .6s ease}
@keyframes ripple{0%{transform:translate(var(--rx),var(--ry)) scale(0);opacity:.8}100%{transform:translate(var(--rx),var(--ry)) scale(24);opacity:0}}

/* ----- HEADER: premium spacing, one row, responsive ----- */
.header{
  position:sticky;
  top:0;
  z-index:50;
  background:linear-gradient(90deg, var(--bg1), var(--bg2));
  border-bottom:1px solid var(--line);
}
.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:18px 0;
  min-height:64px;
}
.brand{
  display:flex;
  align-items:center;
  gap:12px;
  flex-shrink:0;
  text-decoration:none;
  color:inherit;
  min-width:0;
}
.brand-mark{
  width:44px;
  height:44px;
  border-radius:12px;
  background:radial-gradient(circle at 30% 30%, rgba(255,255,255,.6), transparent),
    linear-gradient(135deg, var(--saffron), var(--maroon));
  box-shadow:0 8px 20px rgba(0,0,0,.2);
  display:grid;
  place-items:center;
  color:var(--text);
  font-weight:800;
  font-size:22px;
  flex-shrink:0;
}
.brand-title{
  display:flex;
  flex-direction:column;
  gap:0;
  line-height:1.2;
  min-width:0;
}
.brand-title span{
  font-weight:700;
  font-size:1.125rem;
  color:var(--text);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.brand-title small{
  display:block;
  font-size:12px;
  color:var(--muted-f);
  font-weight:500;
  margin-top:2px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.nav{
  display:flex;
  align-items:center;
  gap:26px;
  flex:1;
  justify-content:center;
  flex-wrap:nowrap;
  min-width:0;
}
.nav a{
  padding:10px 6px;
  border-radius:8px;
  font-weight:500;
  font-size:1rem;
  color:var(--muted-f);
  transition:color .2s ease, background .2s ease;
  white-space:nowrap;
  position:relative;
}
.nav a:hover{color:var(--text); background:var(--pill)}
.nav a.active{
  color:var(--text);
  font-weight:600;
}
.nav a.active::after{
  content:"";
  position:absolute;
  left:6px;
  right:6px;
  bottom:6px;
  height:2px;
  background:var(--saffron);
  border-radius:2px;
}

.header-actions{
  display:flex;
  align-items:center;
  gap:12px;
  flex-shrink:0;
  margin-left:auto;
}
.lang-switch{
  display:flex;
  background:var(--pill);
  border:1px solid var(--line);
  border-radius:999px;
  padding:3px;
}
.lang-switch button{
  border:none;
  background:transparent;
  padding:6px 10px;
  border-radius:999px;
  cursor:pointer;
  font-weight:600;
  font-size:13px;
  color:var(--muted-f);
  transition:background .2s ease, color .2s ease;
}
.lang-switch button.active{
  background:var(--text);
  color:var(--bg1);
  box-shadow:0 2px 8px rgba(0,0,0,.2);
}

.hamburger{
  display:none;
  width:44px;
  height:44px;
  border-radius:12px;
  border:1px solid var(--line);
  background:var(--pill);
  cursor:pointer;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
}
.hamburger span{
  display:block;
  width:18px;
  height:2px;
  background:var(--text);
  position:relative;
  transition:transform .2s ease, opacity .2s ease;
}
.hamburger span::before,
.hamburger span::after{
  content:"";
  position:absolute;
  left:0;
  top:0;
  width:18px;
  height:2px;
  background:var(--text);
  transition:transform .2s ease, top .2s ease;
}
.hamburger span::before{top:-6px}
.hamburger span::after{top:6px}
.hamburger.open span{background:transparent}
.hamburger.open span::before{top:0;transform:rotate(45deg)}
.hamburger.open span::after{top:0;transform:rotate(-45deg)}

/* Mobile drawer: only active on tablet/mobile; overlay + panel */
.mobile-drawer{
  position:fixed;
  inset:0;
  z-index:9990;
  pointer-events:none;
  visibility:hidden;
  opacity:0;
  transition:opacity .25s ease, visibility .25s ease;
}
.mobile-drawer.open{
  pointer-events:auto;
  visibility:visible;
  opacity:1;
}
.nav-overlay{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.45);
  cursor:pointer;
}
.mobile-panel{
  position:absolute;
  top:0;
  right:0;
  width:min(320px, 86vw);
  height:100%;
  max-height:100vh;
  background:#fff;
  padding:20px;
  box-shadow:var(--shadow);
  transform:translateX(100%);
  transition:transform .25s ease;
  display:flex;
  flex-direction:column;
  gap:16px;
  overflow-y:auto;
  overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
}
.mobile-drawer.open .mobile-panel{transform:translateX(0)}
.mobile-panel-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  flex-shrink:0;
}
.mobile-close{
  width:44px;
  height:44px;
  border:none;
  border-radius:10px;
  background:rgba(0,0,0,.06);
  color:var(--ink);
  font-size:1.5rem;
  line-height:1;
  cursor:pointer;
  display:grid;
  place-items:center;
  flex-shrink:0;
  transition:background .2s ease;
}
.mobile-close:hover{background:rgba(0,0,0,.1)}
.mobile-nav{
  flex:1;
  min-height:0;
}
.mobile-nav a{
  display:block;
  padding:14px 12px;
  border-radius:10px;
  font-weight:600;
  color:var(--ink);
  background:rgba(255,153,51,.06);
  transition:background .2s ease;
  min-height:48px;
  box-sizing:border-box;
}
.mobile-nav a + a{margin-top:6px}
.mobile-nav a:hover{background:rgba(255,153,51,.12)}
.mobile-nav a.active{background:rgba(128,0,0,.08); color:var(--maroon)}
body.nav-open{overflow:hidden}

.breadcrumbs{
  padding:18px 0 0;
  font-size:13px;
  color:rgba(28,28,28,.70);
}
.breadcrumbs a{color:var(--maroon);font-weight:700}
.breadcrumbs .sep{opacity:.55;margin:0 8px}

/* ----- FOOTER: compact, aligned, premium ----- */
.footer{
  position:relative;
  padding:40px 0 18px;
  background:
    radial-gradient(circle at 20% 10%, rgba(255,153,51,.1), transparent 45%),
    radial-gradient(circle at 90% 60%, rgba(212,175,55,.08), transparent 50%),
    linear-gradient(180deg, var(--bg1), #5b2f1f);
  border-top:1px solid var(--line);
  opacity:0;
  transform:translateY(20px);
  transition:opacity .5s ease, transform .5s ease;
}
.footer.visible{
  opacity:1;
  transform:translateY(0);
}
.footer::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:0;
  height:4px;
  background:linear-gradient(90deg, var(--gold), var(--saffron), rgba(255,255,255,.9));
  opacity:.85;
}
.footer-inner{
  padding:0;
}
.footer-grid{
  display:grid;
  grid-template-columns:1.2fr 0.9fr 1.1fr 1.1fr;
  gap:48px;
  align-items:start;
}
.footer-col{
  min-width:0;
}
.footer h4{
  font-family:"Playfair Display", Georgia, serif;
  margin:0 0 12px;
  color:var(--text);
  font-size:1.12rem;
  font-weight:700;
}
.footer-about-address{
  margin:0;
  max-width:100%;
  overflow-wrap:break-word;
  word-wrap:break-word;
  text-align:left;
}
.footer-about-address .footer-address-line{
  margin:0 0 4px;
  color:var(--muted-f);
  line-height:1.7;
  font-size:0.9rem;
}
.footer-about-name{
  margin:6px 0 12px;
  color:var(--muted-f);
  font-size:0.9rem;
  font-weight:500;
  line-height:1.6;
  text-align:left;
}
.footer-address-block{
  margin:0;
  max-width:100%;
  overflow-wrap:break-word;
  word-wrap:break-word;
}
.footer-address-line,
.footer-contact-line{
  margin:0 0 4px;
  color:var(--muted-f);
  line-height:1.7;
  font-size:0.9rem;
}
.footer-contact-line{
  margin-top:10px;
}
.footer-address-block .footer-contact-line:first-of-type{
  margin-top:12px;
}
.footer-address-block a{
  word-break:break-word;
}
@media (max-width: 768px){
  .footer h4{font-size:1.05rem}
  .footer-address-line,
  .footer-contact-line{font-size:0.85rem; line-height:1.65}
  .footer-address .footer-address-block{text-align:center}
  .footer-about-address{text-align:center}
  .footer-about-address .footer-address-line{font-size:0.85rem; line-height:1.65}
  .footer-about-name{text-align:center; font-size:0.85rem}
}
.footer a{
  color:var(--muted-f);
  font-weight:600;
  position:relative;
  display:inline-block;
  padding:2px 0;
  transition:color .2s ease;
}
.footer a::after{
  content:"";
  position:absolute;
  left:0;
  bottom:2px;
  width:100%;
  height:1.5px;
  background:linear-gradient(90deg, var(--saffron), rgba(255,255,255,.6));
  transform:scaleX(0);
  transform-origin:right;
  transition:transform .25s ease;
  border-radius:2px;
}
.footer a:hover{color:var(--text)}
.footer a:hover::after{transform:scaleX(1); transform-origin:left}
.footer strong{color:var(--text); font-weight:700}
.footer p{margin:0; color:var(--muted-f); line-height:1.65; font-size:0.9rem}
.footer p + p{margin-top:6px}

.footer-address .footer-social{
  margin-top:14px;
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  padding:0;
  border:none;
}
.footer-social a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:40px;
  height:40px;
  border-radius:50%;
  background:var(--pill);
  border:1px solid var(--line);
  color:var(--muted-f);
  padding:0;
  transition:transform .25s ease, color .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.footer-social a::after{display:none}
.footer-social a:hover{
  color:var(--text);
  transform:scale(1.08);
  border-color:rgba(255,255,255,.35);
  box-shadow:0 0 16px rgba(255,153,51,.2);
}
.footer-social svg{
  width:18px;
  height:18px;
  fill:currentColor;
}

.footer-map{
  border-radius:12px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.15);
  background:rgba(0,0,0,.15);
}
.footer-map iframe{
  width:100%;
  height:190px;
  border:0;
  border-radius:12px;
  display:block;
}

.footer-bottom{
  margin-top:14px;
  padding-top:12px;
  border-top:1px solid var(--line);
  font-size:13px;
  color:var(--muted-f);
  text-align:center;
}
.footer-bottom-inner{
  max-width:var(--container);
  margin:0 auto;
  padding:0 20px;
}

.card{
  background:rgba(255,255,255,.82);
  border:1px solid rgba(128,0,0,.10);
  border-radius:var(--radius);
  box-shadow:0 16px 40px rgba(0,0,0,.08);
}
.card-pad{padding:18px}

.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}

.icon{
  width:44px;height:44px;
  border-radius:14px;
  display:grid;
  place-items:center;
  background:rgba(255,153,51,.14);
  border:1px solid rgba(255,153,51,.24);
  color:var(--maroon);
  font-weight:900;
}

.reveal{opacity:0;transform:translateY(14px);transition:opacity .6s ease, transform .6s ease}
.reveal.visible{opacity:1;transform:translateY(0)}

/* ===== Event Ticker (under navbar) ===== */
:root{
  --ticker-h-desktop:40px;
  --ticker-h-mobile:34px;
}
.event-ticker{
  position:sticky;
  top:var(--header-h, 0);
  z-index:80;
  background:linear-gradient(90deg,#3f1a10,#5a1c12);
  color:#fff7e6;
  border-top:1px solid rgba(196,129,63,0.35);
  border-bottom:1px solid rgba(196,129,63,0.35);
  font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,sans-serif;
  font-size:14px;
  letter-spacing:0.2px;
  font-weight:500;
}
.event-ticker .container{
  max-width:var(--container);
  width:100%;
  margin:0 auto;
  padding-inline:20px;
  padding-block:6px;
  display:grid;
  grid-template-columns:auto 1fr;
  column-gap:16px;
  align-items:center;
}
.event-ticker__label{
  flex-shrink:0;
  padding:8px 14px;
  border-radius:999px;
  background:rgba(255,247,230,0.12);
  border:1px solid rgba(196,129,63,0.55);
  color:#fff7e6;
  font-weight:600;
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
  box-shadow:0 0 0 1px rgba(212,66,10,0.18);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:1;
}
.event-ticker__viewport{
  position:relative;
  overflow:hidden;
  min-width:0;
}
.event-ticker__track{
  display:flex;
  align-items:center;
  flex-wrap:nowrap;
  white-space:nowrap;
  gap:32px;
  width:max-content;
  animation:event-marquee 26s linear infinite;
}
.event-ticker__track > *{
  flex:0 0 auto;
}
.event-ticker__item{
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:#fff7e6;
}
.event-ticker__item-sep{
  color:#c4813f;
}
@media (hover: hover){
  .event-ticker:hover .event-ticker__track{
    animation-play-state:paused;
  }
}
@keyframes event-marquee{
  0%{transform:translateX(0)}
  100%{transform:translateX(-50%)}
}
@media (prefers-reduced-motion: reduce){
  .event-ticker__viewport{overflow:visible}
  .event-ticker__track{animation:none}
}
@media (max-width: 767px){
  .event-ticker{
    font-size:13px;
  }
  .event-ticker .container{
    padding-inline:14px;
    padding-block:5px;
    column-gap:14px;
  }
  .event-ticker__label{
    padding:6px 12px;
    font-size:11px;
  }
  .event-ticker__track{gap:24px}
}

/* ----- Floating buttons: WhatsApp above back-to-top ----- */
.fab-wrap{
  position:fixed;
  right:22px;
  bottom:24px;
  display:flex;
  flex-direction:column-reverse;
  gap:12px;
  z-index:9999;
  pointer-events:none;
}
.fab-wrap > *{
  pointer-events:auto;
}
.fab{
  border:none;
  cursor:pointer;
  display:grid;
  place-items:center;
  text-decoration:none;
  color:inherit;
  font:inherit;
  transition:transform .2s ease, box-shadow .25s ease;
}
/* WhatsApp: premium, theme-matching glow */
.wa-float{
  width:56px;
  height:56px;
  border-radius:50%;
  background:linear-gradient(135deg, #25D366, #128C7E);
  box-shadow:0 14px 28px rgba(0,0,0,.35), 0 0 0 0 rgba(212,175,55,.25);
  color:#fff;
  position:relative;
}
.wa-float::after{
  content:"";
  position:absolute;
  inset:-4px;
  border-radius:50%;
  border:2px solid rgba(255,255,255,.2);
  pointer-events:none;
}
.wa-float:hover{
  transform:translateY(-2px);
  box-shadow:0 18px 34px rgba(0,0,0,.4), 0 0 24px rgba(212,175,55,.35);
}
.wa-float svg{
  width:28px;
  height:28px;
}
/* Back-to-top: same size family, consistent shadow */
.to-top{
  width:56px;
  height:56px;
  border-radius:50%;
  background:var(--text);
  color:var(--bg1);
  border:1px solid var(--line);
  box-shadow:0 14px 28px rgba(0,0,0,.3);
  font-size:1.25rem;
  font-weight:700;
  line-height:1;
}
.to-top:hover{
  transform:translateY(-2px);
  box-shadow:0 18px 34px rgba(0,0,0,.4);
}

@media (min-width: 992px){
  .mobile-drawer{display:none !important}
}
@media (max-width: 991px){
  .nav{display:none !important}
  .hamburger{display:flex !important}
  .header-inner{padding:14px 0; min-height:56px}
  .footer-grid{grid-template-columns:1fr 1fr; gap:28px}
  .footer-map iframe{height:190px}
  .mobile-drawer{display:block}
}
/* ===== MOBILE HEADER CLEAN ALIGN (≤767px) ===== */
@media (max-width: 767px){
  .header,
  header{
    padding:0 !important;
  }
  .header .container,
  .header-inner{
    padding:10px 12px !important;
    min-height:52px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:10px !important;
    width:100% !important;
    max-width:100% !important;
  }
  .brand{
    display:flex !important;
    align-items:center !important;
    gap:10px !important;
    min-width:0 !important;
    flex:1 1 auto !important;
  }
  .brand-mark{
    width:40px !important;
    height:40px !important;
    flex:0 0 auto !important;
    font-size:18px !important;
  }
  .brand-title{
    min-width:0 !important;
  }
  .brand-title span{
    font-size:16px !important;
    line-height:1.15 !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
  }
  .brand-title small{
    font-size:12px !important;
    opacity:.8 !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
  }
  .lang-switch{
    height:34px !important;
    padding:4px !important;
    border-radius:999px !important;
    flex-shrink:0 !important;
  }
  .lang-switch button{
    font-size:12px !important;
    padding:6px 10px !important;
  }
  .hamburger{
    width:40px !important;
    height:40px !important;
    flex-shrink:0 !important;
  }
}

@media (max-width: 767px){
  .footer{padding:28px 0 16px}
  .footer-grid{grid-template-columns:1fr; gap:20px; text-align:center}
  .footer-col{text-align:center}
  .footer-address .footer-social{justify-content:center; margin-top:14px}
  .footer-social a{width:38px; height:38px}
  .footer-social svg{width:16px; height:16px}
  .footer-map iframe{height:180px}
  .wa-float{width:50px; height:50px}
  .wa-float svg{width:24px; height:24px}
  .to-top{width:50px; height:50px; font-size:1.1rem}
  .fab-wrap{right:16px; bottom:20px; gap:10px}
}
@media (max-width: 960px){
  .grid-3{grid-template-columns:1fr}
  .grid-2{grid-template-columns:1fr}
}

/* ----- Preloader ----- */
.preloader{
  position:fixed;
  inset:0;
  z-index:9999;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(180deg, #4b2417 0%, #7a3f23 100%);
  opacity:1;
  visibility:visible;
  transition:opacity .4s ease, visibility .4s ease;
}
.preloader--hide{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}
.preloader-inner{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:20px;
}
.preloader-logo{
  font-size:48px;
  color:#f7f2ec;
  font-family:"Playfair Display", Georgia, serif;
  line-height:1;
}
.preloader-spinner{
  width:44px;
  height:44px;
  border:3px solid rgba(247,242,236,.2);
  border-top-color:#c4813f;
  border-radius:50%;
  animation:preloader-spin .8s linear infinite;
}
@keyframes preloader-spin{
  to{transform:rotate(360deg)}
}
.preloader-text{
  font-size:14px;
  color:rgba(247,242,236,.85);
  letter-spacing:.5px;
}
body.preloader-active{overflow:hidden}
