
/* Layout loosen: gentle increase in site width & padding */
:root {
  --max-width: 1250px;    /* was 1100px */
}

/* slightly more horizontal padding so content breathes */
.wrap {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 3.5rem 2.5rem;  /* was 3rem 2rem */
}

/* a little wider hero card so the central card doesn't feel narrow */
.hero-card { max-width: 820px; }

/* header spacing - loosen left/right so it feels less cramped */
.header-row { padding: 1.1rem 2.5rem; }

/* ------------------------------------
   Balanced Living by Shruti — Styles
   Complete file (replace existing styles.css)
   ------------------------------------ */

:root {
  --ivory: #F2EDE6;
  --sage: #556B5A;
  --deep: #2E3A36;
  --muted: #7B7A77;
  --radius-xl: 16px;
  --shadow-soft: 0 10px 30px rgba(46, 58, 54, 0.08);
  --max-width: 1100px;
}

* { box-sizing: border-box; }

html,body {
  height: 100%;
  margin: 0;
  font-family: 'Poppins', sans-serif;
  background: var(--ivory);
  color: var(--deep);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  line-height: 1.6;
}

/* Type */
h1,h2,h3,h4 { font-family: 'Playfair Display', serif; margin: 0; color: var(--deep); }
p { margin: 0 0 1rem 0; }

.wrap { max-width: var(--max-width); margin: 0 auto; padding: 3rem 2rem; }
.section { padding: 4rem 0; }
.center { text-align: center; }

/* Buttons */
.btn {
  border: none;
  cursor: pointer;
  border-radius: 999px;
  padding: .7rem 1.2rem;
  font-weight: 500;
  transition: all .18s ease;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.btn-primary {
  background: var(--sage);
  color: #fff;
  box-shadow: var(--shadow-soft);
}
.btn-primary:hover { background: #455a4b; transform: translateY(-1px); }

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

/* ------------------------------------
   Header + Navigation
------------------------------------ */
.site-header {
  position: sticky;
  top: 0;
  background: rgba(255,255,255,0.96);
  border-bottom: 1px solid rgba(0,0,0,0.04);
  z-index: 1200;
}
.header-row {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:1.1rem 2.3rem;
}

/* Brand - prevents default link style */
.brand {
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  text-decoration: none !important;
  color: var(--deep) !important;
  cursor: pointer;
}
.brand img { display:block; border:0; width:52px; height:auto; }
.brand-text { font-weight:600; line-height:1.1; }
.brand-text small { display:block; font-size:.65rem; opacity:.75; margin-top:-3px; color:var(--muted); }

/* Main nav */
.main-nav {
  display:flex;
  align-items:center;
  gap:1rem;
}

/* Permanent nav styling (fixes blue/purple underlines) */
.main-nav a,
.main-nav .nav-link {
  color: var(--deep);
  text-decoration: none;
  padding: .5rem .6rem;
  border-radius: 8px;
  transition: background .18s, color .18s;
  font-weight: 500;
}
.main-nav a:hover,
.main-nav a:focus {
  background: rgba(85,107,90,0.08);
  color: var(--deep);
  text-decoration: none;
}
.main-nav a:visited { color: var(--deep); }

/* Mobile controls */
.mobile-menu-btn { display:none; flex-direction:column; gap:3px; border:0; background:none; cursor:pointer; padding:.2rem; }
.mobile-menu-btn span { width:20px; height:2px; background:var(--deep); display:block; border-radius:1px; }

/* Mobile nav panel */
.mobile-nav {
  display:none;
  position:absolute;
  left:0; top:100%;
  width:100%;
  background:#fff;
  border-top:1px solid rgba(0,0,0,0.04);
  box-shadow: 0 10px 30px rgba(0,0,0,0.06);
  padding:1rem;
}
.mobile-nav[aria-hidden="false"]{ display:block; }
.mobile-nav a{ display:block; padding:.6rem 0; color:var(--deep); text-decoration:none }

/* ------------------------------------
   Hero
------------------------------------ */
.hero {
  background: url('assets/hero-bg.jpg') center/cover no-repeat;
  min-height: 70vh;
  display:grid;
  align-items:center;
  position: relative;
  overflow: hidden;
}
.hero-overlay { position:absolute; inset:0; background: rgba(255,255,255,0.28); }
.hero-content { position:relative; z-index: 2; }
.hero-card {
  max-width: 720px;
  background: rgba(255,255,255,0.95);
  padding: 2.5rem;
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-soft);
}
.hero-title { font-size: 2.3rem; margin-bottom:.6rem; }
.hero-sub { color: var(--muted); font-size:1rem; }

/* ------------------------------------
   About / Services
------------------------------------ */
.about-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:2rem; align-items:center; }
.about-image img { width:100%; max-width:420px; border-radius:12px; box-shadow: var(--shadow-soft); }

.cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:1.5rem; }
.card { background:#fff; padding:1.8rem; border-radius:var(--radius-xl); box-shadow: var(--shadow-soft); text-align:left; }

/* Contact grid */
.grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:2rem; align-items:center }

/* ------------------------------------
   Footer (complete overhaul + slight right shift for Explore)
------------------------------------ */
.site-footer {
  background: transparent;
  border-top: 1px solid rgba(0,0,0,0.04);
  padding: 3rem 0 2.5rem;
  color: var(--deep);
}

.footer-top {
  display: grid;
  grid-template-columns: 1fr 260px 320px;
  gap: 2rem;
  align-items: start;
  padding-bottom: 1.2rem;
}

/* Brand inside footer */
.footer-brand { display:flex; gap:1rem; align-items:center; }
.footer-brand .logo-sm { width:56px; height:auto; display:block; }

/* Footer links: shift Explore a little right for subtle alignment */
.footer-links {
  display:flex;
  gap:2.25rem;
  align-items:flex-start;
  margin-left: 1.2rem; /* small shift to the right */
}
.footer-links > div:first-child { padding-left: 18px; } /* extra nudge for Explore */

.footer-links h4 { margin:0 0 .6rem 0; font-size:1rem; color:var(--deep); }
.footer-links a { display:block; color:var(--deep); text-decoration:none; margin-bottom:.45rem; opacity:.95; }
.footer-links a:hover { color:var(--sage); }

/* Newsletter column */
.footer-newsletter { max-width:360px; }
.newsletter-form { display:flex; gap:.6rem; margin-top:.6rem; }
.newsletter-form input { flex:1; padding:.56rem .75rem; border-radius:8px; border:1px solid rgba(0,0,0,0.06); }
.newsletter-form button { padding:.6rem .9rem; }

/* Footer bottom */
.footer-bottom {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1rem;
  padding-top:1.2rem;
  border-top: 1px dashed rgba(0,0,0,0.03);
  margin-top:1rem;
  font-size:.95rem;
  color:var(--muted);
}

/* Small screens: stack footer */
@media (max-width:900px) {
  .footer-top { grid-template-columns: 1fr; }
  .footer-bottom { flex-direction:column; align-items:flex-start; gap:.6rem; }
}

/* ------------------------------------
   Modal (Google Form)
------------------------------------ */
.modal {
  position: fixed;
  inset: 0;
  display:flex;
  align-items:center;
  justify-content:center;
  visibility:hidden;
  opacity:0;
  transition: opacity .18s ease;
  z-index:2000;
  padding: 1rem;
}
.modal[aria-hidden="false"] { visibility:visible; opacity:1; }
.modal-overlay { position:fixed; inset:0; background:rgba(0,0,0,0.4); visibility:hidden; opacity:0; z-index:1999; transition:opacity .18s; }
.modal-overlay[aria-hidden="false"]{ visibility:visible; opacity:1; }
.modal-panel { width:100%; max-width:900px; background:#fff; border-radius:10px; padding:1rem; position:relative; box-shadow:var(--shadow-soft); }
.modal-close { position:absolute; right:12px; top:10px; background:none; border:none; font-size:1.2rem; cursor:pointer; color:var(--deep) }
.iframe-wrap { width:100%; height:80vh; }
.iframe-wrap iframe { width:100%; height:100%; border:0; border-radius:8px; }

/* ------------------------------------
   Utility
------------------------------------ */
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

/* ------------------------------------
   Responsive tweaks
------------------------------------ */
@media (max-width: 900px) {
  .about-grid, .grid-2 { grid-template-columns: 1fr; }
  .main-nav { display: none; }
  .mobile-menu-btn { display:flex; }
  .wrap { padding: 2rem 1.2rem; }
  .hero-card { padding: 2rem; }
  .footer-top { grid-template-columns: 1fr; }
}

/* Prevent accidentally huge inline images */
img { max-width: 100%; height: auto; display:block; }

/* --- Header logo & brand text slightly larger for balance --- */
.brand img {
  width: 62px; /* was ~52px — about 20% bigger */
  height: auto;
}

.brand-text {
  font-size: 1.15rem; /* slightly bigger text */
  font-weight: 600;
}

.brand-text small {
  font-size: 0.72rem; /* keep the tagline smaller but proportionate */
  opacity: 0.8;
  margin-top: -2px;
}

/* Fixed header: always visible and non-jumpy */
.site-header {
  position: fixed !important;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  z-index: 2000;           /* above modal background but below modal panel (which uses z-index ~2000) */
  background: rgba(255,255,255,0.96); /* keep same look */
  box-shadow: 0 6px 20px rgba(10,10,10,0.04);
}

/* ensure the page content doesn't sit under fixed header:
   spacer element will be inserted/updated by JS (see script below).
*/
.page-top-spacer { width:100%; height:72px; display:block; }

/* slightly reduce header blur on scroll for polish (optional) */
.site-header.scrolled { background: rgba(255,255,255,0.98); backdrop-filter: blur(4px); }