/* ==================================================
   RESET & BASE
================================================== */
*{
  margin:0;
  padding:0;
  box-sizing:border-box;
}

body{
  font-family:'Inter',sans-serif;
  background:
    url("https://www.transparenttextures.com/patterns/paper-fibers.png"),
    #f7f3ec;
  color:#2b2b2b;
  line-height:1.6;
  overflow-x:hidden;
}

/* ==================================================
   HEADER (OVER HERO)
================================================== */
.header{
  position:fixed;
  top:0;
  left:0;
  width:100%;
  background:transparent;
  z-index:1000;
  transition:background .3s ease, box-shadow .3s ease;
  
}

.header.scrolled{
  background:rgba(247,243,236,.96);
  box-shadow:0 6px 25px rgba(0,0,0,.15);
  border-bottom:1px solid rgba(212,175,55,.35);
}

.nav-wrapper{
  max-width:1200px;
  margin:auto;
  padding:30px 20px;
  position:relative;
  display:flex;
  align-items:center;
  font-family: 'Inter',sans-serif;
  font-style: italic;
}
.nav{
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  display:flex;
  gap:28px;
}


.logo{
  font-family:'Playfair Display',serif;
  font-size:22px;
  color:#e07a1f;
}

.nav{
  display:flex;
  gap:24px;
  align-items:center;
}

.nav a{
  text-decoration:none;
  font-weight:500;
  color:#3a2a1a;
}

.header:not(.scrolled) .nav a{
  color:#e6a308;
}

.burger{
  display:none;
  background:none;
  border:none;
  width:40px;
  height:40px;
  position:relative;
  color:#e6a308;
  cursor:pointer;
  border:1.5px solid rgba(245,193,108,.55);
  border-radius:9999px;
  box-shadow:0 6px 20px rgba(0,0,0,.18);
  transition:background .2s ease, border-color .2s ease, transform .15s ease, box-shadow .2s ease, color .2s ease;
}

.header.scrolled .burger{
  color:#e6a308;
}

/* Hamburger bars (use currentColor for easy theming) */
.burger .bars,
.burger .bars::before,
.burger .bars::after{
  content:"";
  display:block;
  position:absolute;
  left:50%;
  width:24px;
  height:2px;
  background:currentColor;
  border-radius:2px;
  transition:transform .25s ease, top .25s ease, opacity .2s ease, background .25s ease;
}

.burger .bars{ top:50%; transform:translate(-50%, -50%); }
.burger .bars::before{ top:-7px; transform:translateX(-50%); }
.burger .bars::after{ top:7px; transform:translateX(-50%); }

/* Morph to X when menu is open */
.burger.is-open .bars{ background:transparent; }
.burger.is-open .bars::before{ top:0; transform:translateX(-50%) rotate(45deg); }
.burger.is-open .bars::after{ top:0; transform:translateX(-50%) rotate(-45deg); }

/* Ensure visibility over overlay when open (contrast on cream) */
body.menu-open .burger{ color:#e07a1f; }

/* Themed interactions */
.burger:hover{
  background:rgba(212,175,55,.18);
  border-color:#f5c16c;
  transform:scale(1.05);
}

.burger:active{ transform:scale(0.98); }
.burger:focus{ outline:none; }
.burger:focus-visible{ box-shadow:0 0 0 3px rgba(212,175,55,.5); }

.burger.is-open{
  background:rgba(212,175,55,.22);
  border-color:#f5c16c;
  box-shadow:0 8px 28px rgba(0,0,0,.25), 0 0 0 2px rgba(212,175,55,.25) inset;
}

/* ==================================================
   HERO
================================================== */
.hero{
  min-height:100vh;
  padding-top:90px;           /* space for fixed header */
  display:flex;
  justify-content:center;
  align-items:center;
  text-align:center;
  padding-inline:20px;
  position:relative;
  overflow:hidden;
  background:#000;            /* fallback only */
}

.hero h1{
 font-family:'Lora', serif;
  font-size:100px;
  color:#e6a308;
  letter-spacing:20px;
   line-height:1.2;
}

/* ==================================================
   SECTION SYSTEM (ONE IMAGE PER SECTION)
================================================== */
.section{
  position:relative;
  padding:100px 80px;
  overflow:hidden;
}

/* background image */
.section-bg{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
  transform:scale(1);
  transition:transform .8s ease;
  z-index:0;
}

/* parchment overlay */
.section-bg::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(
    rgba(247,243,236,.82),
    rgba(247,243,236,.95)
  );
}

/* content above bg */
.section > *{
  position:relative;
  z-index:2;
}

/* hover zoom */
.section:hover .section-bg{
  transform:scale(1.06);
}

/* ==================================================
   SECTION TRANSITION (DISTORTED EDGE)
================================================== */
.section::after{
  content:"";
  position:absolute;
  left:-5%;
  right:-5%;
  bottom:-70px;
  height:140px;
  background:inherit;
  transform:skewY(-3deg);
  filter:blur(1.5px);
  opacity:.85;
  z-index:1;
  transition:all .6s ease;
}

.section:hover::after{
  transform:skewY(-6deg);
  opacity:1;
}

/* ==================================================
   SECTION BACKGROUND IMAGES
================================================== */
.bg-themes{
  background-image:url("https://images.unsplash.com/photo-1469474968028-56623f02e42e?auto=format&fit=crop&w=1600&q=80");
}

.bg-places{
  background-image:url("https://images.unsplash.com/photo-1500534314209-a26db0f5f0b1?auto=format&fit=crop&w=1600&q=80");
}

.bg-experience{
  background-image:url("https://images.unsplash.com/photo-1501785888041-af3ef285b470?auto=format&fit=crop&w=1600&q=80");
}

.bg-connectivity{
  background-image:url("https://images.unsplash.com/photo-1506126613408-eca07ce68773?auto=format&fit=crop&w=1600&q=80");
}

/* ==================================================
   TITLES & DIVIDERS
================================================== */
.section-title{
  text-align:center;
  font-family:'Playfair Display',serif;
  font-size:36px;
  color:#2f5d50;
  margin-bottom:20px;
}

.gold-divider{
  width:120px;
  height:2px;
  margin:20px auto 50px;
  background:linear-gradient(90deg,transparent,#d4af37,transparent);
}

/* ==================================================
   CARDS
================================================== */
.cards{
  max-width:1200px;
  margin:auto;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:26px;
}

.card{
  background:
    url("https://www.transparenttextures.com/patterns/old-map.png"),
    #fffaf2;
  padding:30px 22px;
  border-radius:18px;
  text-align:center;
  box-shadow:
    0 10px 30px rgba(0,0,0,.12),
    inset 0 0 0 1px rgba(212,175,55,.25);
  transition:transform .3s ease;
}

.card:hover{
  transform:translateY(-6px);
}

.card h3{
  font-family:'Playfair Display',serif;
  color:#e07a1f;
  margin-bottom:10px;
}

.card p{
  font-size:14px;
  color:#444;
}

/* ==================================================
   TILES (PLACES / ACTIVITIES)
================================================== */
.tiles{
  margin-top:40px;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:32px;
}

/* Loading / error status inside tiles containers */
.tiles-status{
  grid-column:1 / -1;
  text-align:center;
  color:#6b5b4d;
  background:#fffaf2;
  border-radius:14px;
  padding:12px 16px;
  box-shadow:0 8px 20px rgba(0,0,0,.08);
}
/* ==================================================
   PLACES SLIDER (index)
================================================== */
.tiles-slider{
  max-width:1200px;
  margin:0 auto;
  overflow:hidden;
  padding:6px; /* subtle breathing space */
  position:relative;
}
.tiles-slider::before,
.tiles-slider::after{
  content:"";
  position:absolute;
  top:0; bottom:0;
  width:48px;
  pointer-events:none;
  z-index:2;
}
.tiles-slider::before{
  left:0;
  background:linear-gradient(90deg, rgba(247,243,236,1) 0%, rgba(247,243,236,0) 100%);
}
.tiles-slider::after{
  right:0;
  background:linear-gradient(270deg, rgba(247,243,236,1) 0%, rgba(247,243,236,0) 100%);
}

.tiles-track{
  display:flex;
  gap:24px;
  will-change:transform;
}
.tiles-track .tile.tile-slide{ flex:0 0 auto; min-width:320px; max-width:360px; }

.places-header .slider-view-all{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:38px;
  padding:0 16px;
  border-radius:9999px;
  background:#e07a1f;
  border:1px solid #e07a1f;
  color:#fff;
  font-weight:600;
  text-decoration:none;
  transition:background .2s ease, border-color .2s ease, transform .2s ease;
}
.places-header .slider-view-all:hover{
  background:#c96510;
  border-color:#c96510;
  transform:translateY(-1px);
}

@media(max-width:768px){
  .tiles-track{ gap:16px; }
  .tiles-track .tile.tile-slide{ min-width:260px; max-width:300px; }
}

/* Slider controls */
.slider-btn{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:40px;
  height:40px;
  border-radius:50%;
  border:1px solid rgba(224,122,31,.5);
  background:#fffaf2;
  color:#e07a1f;
  font-size:24px;
  line-height:1;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 8px 20px rgba(0,0,0,.12);
  cursor:pointer;
  z-index:3;
}
.slider-btn.prev{ left:8px; }
.slider-btn.next{ right:8px; }
.slider-btn:hover{ background:#ffeeda; }

.slider-dots{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  margin-top:12px;
}
.slider-dot{
  width:10px;
  height:10px;
  border-radius:50%;
  background:#e9dfcf;
  border:1px solid #d4af37;
}
.slider-dot.active{ background:#e07a1f; border-color:#e07a1f; }

@media(max-width:768px){
  .slider-btn{ width:36px; height:36px; font-size:22px; }
  .slider-dots{ gap:6px; margin-top:10px; }
  .slider-dot{ width:8px; height:8px; }
}

/* ==================================================
   NEWS LIST
================================================== */
.news-list{
  max-width:1200px;
  margin:auto;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:26px;
}

.news-card{
  background:#fffaf2;
  border-radius:16px;
  overflow:hidden;
  box-shadow:0 12px 30px rgba(0,0,0,.1);
  transition:transform .3s ease;
  display:flex;
  flex-direction:column;
}

.news-card:hover{ transform:translateY(-6px); }

.news-thumb{
  width:100%;
  height:160px;
  object-fit:cover;
  background:#f1e7d8;
}

.news-body{ padding:16px; }
.news-title{
  font-family:'Playfair Display',serif;
  color:#0f3d2e;
  font-size:18px;
  margin-bottom:10px;
}
.news-meta{ font-size:12px; color:#6b5b4d; margin-bottom:12px; }
.news-desc{ font-size:14px; color:#444; }

.news-footer{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:14px 16px 16px;
}

.news-source{ font-size:12px; opacity:.8; }
.news-link{
  color:#e07a1f;
  text-decoration:none;
  font-weight:600;
}
.news-link:hover{ text-decoration:underline; }

@media(max-width:768px){
  .news-list{ grid-template-columns:1fr; }
}

/* News header controls */
.news-controls{ display:flex; align-items:center; gap:10px; }

/* Ensure both controls share identical sizing */
.news-controls .news-mode-toggle,
.news-controls .news-view-all{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:40px;
  padding:10px 16px;
  font-size:14px;
  line-height:1;
  border-radius:9999px;
  font-weight:600;
}

.news-mode-toggle{
  border:1px solid rgba(224,122,31,.5);
  background:transparent;
  color:#e07a1f;
  cursor:pointer;
  transition:background .2s ease, color .2s ease, border-color .2s ease;
}
.news-mode-toggle:hover{ background:rgba(224,122,31,.08); }
.news-mode-toggle[aria-pressed="true"]{
  background:#e07a1f;
  color:#fff;
  border-color:#e07a1f;
}

.news-view-all{
  border:1px solid #e07a1f;
  background:#e07a1f;
  color:#fff;
  text-decoration:none;
  transition:background .2s ease, border-color .2s ease, transform .2s ease;
}
.news-view-all:hover{ background:#c96510; border-color:#c96510; transform:translateY(-1px); }

/* Skeleton shimmer used in news loader */
@keyframes shimmer{
  0%{ background-position:0% 0; }
  100%{ background-position:400% 0; }
}

.tile{
  background:#fff;
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 12px 30px rgba(0,0,0,.1);
  transition:transform .3s ease;
}

.tile:hover{
  transform:translateY(-6px);
}

.tile img{
  width:100%;
  height:190px;
  object-fit:cover;
}

/* Generic image fallback block */
.img-fallback{
  display:flex;
  align-items:center;
  justify-content:center;
  background:#fffaf2;
  color:#e07a1f;
  font-weight:700;
  letter-spacing:.5px;
  text-transform:uppercase;
}
/* Ensure size parity where images had fixed heights */
.tile .img-fallback{ height:190px; }
.news-thumb.img-fallback{ height:160px; }

.tile h3{
  padding:16px;
  font-family:'Playfair Display',serif;
  color:#0f3d2e;
}

.tile p{
  padding:0 16px 20px;
  font-size:15px;
}
/* Pending note removed */

/* ==================================================
   CONNECTIVITY
================================================== */
.two-col{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:40px;
  align-items:center;
}

.route-info{
  list-style:none;
  margin:20px 0 24px;
}

.route-info li{
  margin-bottom:10px;
  padding-left:18px;
  position:relative;
}

.route-info li::before{
  content:"•";
  position:absolute;
  left:0;
  color:#d4af37;
  font-weight:bold;
}

.travel-note{
  background:#eef4f1;
  border-left:4px solid #0f3d2e;
  padding:14px 16px;
  border-radius:6px;
}

.map-frame{
  border-radius:16px;
  overflow:hidden;
  box-shadow:0 15px 35px rgba(0,0,0,.15);
}

.map-frame iframe{
  width:100%;
  height:360px;
  border:0;
}

/* ==================================================
   MOBILE
================================================== */
@media(max-width:768px){
  .burger{display:block; z-index:1100;}

  /* Full-screen dark overlay for mobile nav */
  .nav{
    position:fixed;
    inset:0;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    padding:24px;
    /* Textured cream overlay */
    background:
      url("https://www.transparenttextures.com/patterns/old-map.png"),
      #fffaf2;

    backdrop-filter:saturate(120%) blur(2px);
    gap:14px;
    opacity:0;
    pointer-events:none;
    transform:translateY(-8px);
    transition:opacity .25s ease, transform .25s ease;
    z-index:1050;
  }

  .nav.open{
    opacity:1;
    pointer-events:auto;
    transform:none;
  }

  .nav a{
    display:block;
    color:#e07a1f;
    font-size:20px;
    letter-spacing:.3px;
    padding:10px 0;
    text-decoration:none;
    position:relative;
  }

  .nav a::after{
    content:"";
    position:absolute;
    left:50%;
    bottom:-6px;
    width:0;
    height:2px;
    background:#f5c16c;
    transition:width .25s ease, left .25s ease;
  }

  .nav a:hover::after{width:60%; left:20%;}

  /* Prevent background scroll when menu is open */
  body.menu-open{overflow:hidden;}

  /* Keep burger visible over light overlay */
  body.menu-open .burger{color:#e07a1f;}

  .section{
    padding:80px 16px;
  }

  .section::after{
    height:60px;
    bottom:-30px;
    transform:skewY(-2deg);
    filter:none;
  }

  .section:hover .section-bg{
    transform:none;
  }

  .cards,
  .tiles{
    grid-template-columns:1fr;
  }

  .two-col{
    grid-template-columns:1fr;
  }

  .map-frame iframe{
    height:300px;
  }
}
.health-content {
  max-width: 900px;
  margin: auto;
}
/* Contact layout with map */
.contact-layout{
  max-width:1200px;
  margin:auto;
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:24px;
  align-items:start;
}

.contact-map-card{
  background:
    url("https://www.transparenttextures.com/patterns/old-map.png"),
    #fffaf2;
  border-radius:18px;
  box-shadow:0 12px 30px rgba(0,0,0,.12), inset 0 0 0 1px rgba(212,175,55,.25);
  padding:16px 16px 20px;
}

.map-title{
  font-family:'Playfair Display',serif;
  color:#e07a1f;
  margin:6px 0 12px;
  text-align:center;
}

.contact-map{
  width:100%;
  height:320px;
}

.map-caption{
  text-align:center;
  font-size:13px;
  color:#6b5b4d;
  margin-top:8px;
}

@media(max-width:768px){
  .contact-layout{ grid-template-columns:1fr; }
  .contact-map{ height:260px; }
}
/* Inline SVG tile map styling */
.contact-svg-map{ width:100%; height:100%; }
.state-tile{ fill:#e9dfcf; stroke:#d4af37; stroke-width:1; }
.state-tile.highlight{ fill:#e07a1f; stroke:#c96510; }

.health-list {
  list-style: none;
  padding: 0;
  margin: 24px 0;
}

.health-list li {
  margin-bottom: 14px;
  padding-left: 22px;
  position: relative;
}

.health-list li::before {
  content: "✔";
  position: absolute;
  left: 0;
  color: #0f3d2e; /* Uttarakhand green */
  font-weight: bold;
}

.health-note {
  margin-top: 24px;
  font-style: italic;
  color: #555;
}
/* ===============================
   HERO BUTTONS
================================ */
.hero-buttons{
  margin-top:32px;
  display:flex;
  justify-content:center;
  gap:18px;
  flex-wrap:wrap;
}

.hero-btn{
  padding:12px 28px;
  border-radius:30px;
  font-size:15px;
  font-weight:600;
  cursor:pointer;
  border:none;
  transition:all .3s ease;
}

/* Primary */
.hero-btn.primary{
  background:#e07a1f;
  color:#fff;
}

.hero-btn.primary:hover{
  background:#c96510;
  transform:translateY(-2px);
}

/* Outline */
.hero-btn.outline{
  background:transparent;
  color:#fff;
  border:1px solid rgba(255,255,255,.75);
}

.hero-btn.outline:hover{
  background:rgba(255,255,255,.12);
  transform:translateY(-2px);
}

/* Subtitle cleanup */
.hero-subtitle{
  color:#d4af37;
  font-style:italic;
  font-family:'Inter',sans-serif;
  margin-top:10px;
}

/* Mobile */
@media(max-width:768px){
  .hero-btn{
    padding:11px 24px;
    font-size:14px;
  }
}
html{
  scroll-behavior:smooth;
}
/* ===============================
   MUSIC TOGGLE BUTTON
================================ */
.music-toggle{
  position:fixed;
  bottom:24px;
  right:24px;
  width:48px;
  height:48px;
  border-radius:50%;
  border:none;
  background:rgba(224,122,31,.9);
  color:#fff;
  font-size:20px;
  cursor:pointer;
  box-shadow:0 8px 20px rgba(0,0,0,.25);
  z-index:2000;
  transition:transform .2s ease, background .2s ease;
}

.music-toggle:hover{
  transform:scale(1.08);
  background:#c96510;
}

.music-toggle.paused{
  background:rgba(0,0,0,.65);
}

/* Mobile size */
@media(max-width:768px){
  .music-toggle{
    width:44px;
    height:44px;
    font-size:18px;
  }
}
.music-toggle.paused{
  background:rgba(0,0,0,.6);
}
/* ================= HERO SLIDER ================= */

.hero-slider{
  position:relative;
  height:100vh;
  overflow:hidden;
}

.slides{
  position:absolute;
  inset:0;
}

.slide{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
  opacity:0;
  transition:opacity 1.5s ease-in-out;
}

/* Show text overlay if hero background is missing */
.slide.bg-missing::after{
  content:"Uttarakhand";
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  font-family:'Playfair Display',serif;
  font-size:36px;
  letter-spacing:1px;
  background:rgba(0,0,0,.35);
  z-index:4;
}

.slide.active{
  opacity:1;
}

/* Dark overlay for readability */
.hero-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(
    rgba(0,0,0,0.45),
    rgba(0,0,0,0.65)
  );
  z-index:2;
}

.hero .content{
  position:relative;
  z-index:3;
  text-align:center;
  color:#fff;
}

.hero h1{
  font-family:'Playfair Display',serif;
  font-size:200px;
  letter-spacing:2px;
}

.hero-subtitle{
  color:#f1c376;
  font-style:italic;
  margin:14px 0 30px;
}

/* Weather badge in hero */
.weather-badge{
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin-top:6px;
  padding:8px 14px;
  border-radius:9999px;
  background:rgba(255,250,242,.88);
  color:#2b2b2b;
  box-shadow:0 6px 18px rgba(0,0,0,.18);
  backdrop-filter:saturate(115%) blur(2px);
}

.weather-badge .w-icon{font-size:18px; line-height:1}
.weather-badge .w-temp{font-weight:700; color:#e07a1f}
.weather-badge .w-desc{opacity:.95}
.weather-badge .w-aqi{font-weight:700}
.weather-badge .w-aqi::before{content:"•"; margin:0 8px; opacity:.45; font-weight:400}

/* AQI category colors */
.weather-badge .w-aqi.good{color:#2e7d32}
.weather-badge .w-aqi.moderate{color:#f39c12}
.weather-badge .w-aqi.usg{color:#ef6c00}
.weather-badge .w-aqi.unhealthy{color:#d32f2f}
.weather-badge .w-aqi.vunhealthy{color:#8e24aa}
.weather-badge .w-aqi.hazardous{color:#7e0023}

/* Buttons */
.hero-buttons{
  display:flex;
  justify-content:center;
  gap:18px;
}

.hero-btn{
  padding:14px 28px;
  border-radius:30px;
  font-size:15px;
  cursor:pointer;
  border:none;
  transition:.3s ease;
}

.hero-btn.primary{
  background:#d89b3c;
  color:#1f1408;
}

.hero-btn.outline{
  background:transparent;
  border:1px solid #d89b3c;
  color:#fff;
}

.hero-btn:hover{
  transform:translateY(-2px);
}

/* Mobile */
@media(max-width:768px){
  /* Reduce hero height and adjust image focus for better composition */
  .hero-slider{height:72vh;}
  .slide{background-position:center 35%;}
  .hero .content{padding:0 16px;}
  .hero h1{font-size:42px}
  .hero-buttons{flex-direction:column}
  .weather-badge{padding:7px 12px; gap:8px; font-size:14px}
}
.hero-title{
  font-family:'Lora', serif;
  font-size:72px;
  font-weight:600;
  letter-spacing:2px;
  color:#ffffff;
  text-shadow:0 6px 20px rgba(0,0,0,.45);
}
@media(max-width:768px){
  .hero-title{
    font-size:44px;
    letter-spacing:1.5px;
  }
}
/* ================================
   FOOTER
================================ */
/* ================================
   SITE FOOTER
================================ */
.site-footer{
  position: relative;
  min-height: 340px;
  background: url('../images/footer/footer.jpg') center/cover no-repeat;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  overflow: hidden;
}

/* Overlay for readability */
.footer-overlay{
  position: absolute;
  inset: 0;
  background: linear-gradient(
    rgba(0,0,0,0.55),
    rgba(0,0,0,0.75)
  );
  z-index: 1;
}

/* Footer content */
.footer-content{
  position: relative;
  z-index: 2;
  text-align: center;
  padding: 40px 20px;
  max-width: 900px;
}

/* Title */
.footer-title{
  font-family: 'Playfair Display', serif;
  font-size: 36px;
  letter-spacing: 1px;
  color: #f5c16c; /* soft gold */
  margin-bottom: 10px;
}

/* Tagline */
.footer-tagline{
  font-size: 14px;
  opacity: 0.9;
  margin-bottom: 28px;
}

/* Footer links */
.footer-links{
  display: flex;
  justify-content: center;
  gap: 24px;
  flex-wrap: wrap;
  margin-bottom: 24px;
}

.footer-links a{
  color: #fff;
  text-decoration: none;
  font-size: 14px;
  position: relative;
  padding-bottom: 4px;
}

.footer-links a::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:0;
  height:2px;
  background:#f5c16c;
  transition:width .3s ease;
}

.footer-links a:hover::after{
  width:100%;
}

/* Copyright */
.footer-copy{
  font-size: 13px;
  opacity: 0.75;
}
.footer-email{
  font-size:14px;
  margin-top:12px;
  opacity:0.9;
}

.footer-email a{
  color:#f5c16c; /* soft gold */
  text-decoration:none;
  font-weight:500;
}

.footer-email a:hover{
  text-decoration:underline;
}
/* ================================
   MOBILE
================================ */
@media(max-width:768px){
  .site-footer{
    min-height: 280px;
  }

  .footer-title{
    font-size: 26px;
  }

  .footer-links{
    gap: 14px;
  }
}

/* ==============================
   CONTACT FORM
============================== */
.contact-section{ padding:80px 20px; }
.contact-wrap{ max-width:900px; margin:0 auto; }
.contact-form{
  background:
    url("https://www.transparenttextures.com/patterns/old-map.png"),
    #fffaf2;
  border-radius:18px;
  box-shadow:0 12px 30px rgba(0,0,0,.12), inset 0 0 0 1px rgba(212,175,55,.25);
  padding:28px;
}

.form-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px 22px;
}
.form-field{ display:flex; flex-direction:column; }
.form-field.span-2{ grid-column:1 / -1; }
.form-field label{ font-weight:600; color:#0f3d2e; margin-bottom:8px; }
.form-field .req{ color:#e07a1f; margin-left:4px; }
.form-field input[type="text"],
.form-field input[type="tel"],
.form-field input[type="file"],
.form-field textarea{
  background:#fff;
  border:1px solid rgba(224,122,31,.35);
  border-radius:12px;
  padding:12px 14px;
  font-size:15px;
  color:#2b2b2b;
  outline:none;
  transition:border-color .2s ease, box-shadow .2s ease;
}
.form-field textarea{ resize:vertical; min-height:140px; }
.form-field input:focus,
.form-field textarea:focus{
  border-color:#e07a1f;
  box-shadow:0 0 0 3px rgba(224,122,31,.15);
}
.help-text{ font-size:12px; color:#6b5b4d; margin-top:6px; }

.form-actions{
  display:flex; align-items:center; gap:12px; margin-top:18px;
}
.contact-btn{
  padding:12px 20px;
  border-radius:9999px;
  font-weight:700;
  cursor:pointer;
  border:1px solid transparent;
  transition:background .2s ease, color .2s ease, border-color .2s ease, transform .15s ease;
}
.contact-btn.primary{ background:#e07a1f; color:#fff; border-color:#e07a1f; }
.contact-btn.primary:hover{ background:#c96510; border-color:#c96510; transform:translateY(-1px); }
.contact-btn.outline{ background:transparent; color:#e07a1f; border-color:rgba(224,122,31,.6); }
.contact-btn.outline:hover{ background:rgba(224,122,31,.08); }

.form-status{ margin-left:auto; font-size:14px; color:#0f3d2e; min-height:20px; }
.form-status.error{ color:#d32f2f; }
.form-status.success{ color:#2e7d32; }
.form-status a{ color:#e07a1f; text-decoration:underline; }
.form-status small{ opacity:.8; margin-left:6px; }

@media(max-width:768px){
  .form-grid{ grid-template-columns:1fr; }
}

.form-note{
  margin-top:10px;
  font-size:12.5px;
  color:#6b5b4d;
}

