/* -----------------------------
   Mumin Media Inc. base theme
   Palette derived from logo:
   Teal:      #42a1ac
   Dark teal: #135d65
   Mid teal:  #2a9099
   Charcoal:  #535457
   Light:     #b0d0d5
------------------------------ */

:root{
  --teal: #42a1ac;
  --teal-dark: #135d65;
  --teal-mid: #2a9099;
  --charcoal: #535457;
  --bg: #ffffff;
  --bg-soft: rgba(176, 208, 213, 0.22);
  --border: rgba(83, 84, 87, 0.18);
  --shadow: 0 12px 30px rgba(19, 93, 101, 0.12);
  --radius: 14px;
  --max: 1120px;
}

*{ box-sizing: border-box; }
html, body{ height:100%; }

body{
  margin:0;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color: var(--charcoal);
  background: var(--bg);
  line-height: 1.55;
}

a{ color: var(--teal-dark); text-decoration: none; }
a:hover{ text-decoration: underline; }

.container{
  width: min(var(--max), calc(100% - 2rem));
  margin-inline: auto;
}

/* Global guardrail against media overflow */
img, video{
  max-width: 100%;
  height: auto;
}

/* Accessibility */
.skip-link{
  position: absolute;
  left: -999px;
  top: 0;
}
.skip-link:focus{
  left: 1rem;
  top: 1rem;
  background: #fff;
  border: 2px solid var(--teal);
  padding: .5rem .75rem;
  border-radius: .5rem;
  z-index: 9999;
}

/* Header */
.site-header{
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(255,255,255,0.92);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--border);
}

.header-inner{
  display:flex;
  gap: 1rem;
  align-items:center;
  justify-content: space-between;
  padding: .9rem 0;
}

.brand{
  display:flex;
  align-items:center;
  gap: .85rem;
  min-width: 220px;
}
.brand-logo{
  width:56px;
  height:56px;
  object-fit: contain;
}
.brand-text{ display:flex; flex-direction:column; gap:.1rem; }
.brand-name{
  font-weight: 800;
  letter-spacing: .2px;
  color: var(--teal-dark);
}
.brand-tagline{
  font-size: .92rem;
  color: rgba(83,84,87,0.85);
}

/* Nav */
.nav{ position: relative; }
.nav-toggle{
  display:none;
  border: 1px solid var(--border);
  background: #fff;
  border-radius: 10px;
  padding: .5rem .65rem;
  cursor:pointer;
}
.nav-toggle-bars{
  display:block;
  width: 20px;
  height: 2px;
  background: var(--teal-dark);
  position: relative;
}
.nav-toggle-bars::before,
.nav-toggle-bars::after{
  content:"";
  position:absolute;
  left:0;
  width:20px;
  height:2px;
  background: var(--teal-dark);
}
.nav-toggle-bars::before{ top:-6px; }
.nav-toggle-bars::after{ top:6px; }

.sr-only{
  position:absolute !important;
  height:1px; width:1px;
  overflow:hidden;
  clip: rect(1px, 1px, 1px, 1px);
  white-space: nowrap;
}

.nav-menu{
  list-style:none;
  display:flex;
  align-items:center;
  gap: .25rem;
  margin:0;
  padding:0;
}

.nav-link,
.nav-dropdown-toggle{
  display:inline-flex;
  align-items:center;
  gap: .35rem;
  padding: .55rem .75rem;
  border-radius: 10px;
  font-weight: 650;
  color: var(--charcoal);
  border: 1px solid transparent;
  background: transparent;
  cursor: pointer;
}

.nav-link:hover,
.nav-dropdown-toggle:hover{
  background: var(--bg-soft);
  border-color: rgba(66,161,172,0.35);
  text-decoration:none;
}

.chevron{ font-size: .9em; opacity:.8; }

/* Dropdown */
.nav-dropdown{ position: relative; }
.nav-dropdown-menu{
  position:absolute;
  right:0;
  top: calc(100% + .5rem);
  min-width: 260px;
  list-style:none;
  margin:0;
  padding: .5rem;
  border: 1px solid var(--border);
  border-radius: 14px;
  background:#fff;
  box-shadow: var(--shadow);
  display:none;
}
.nav-dropdown.open .nav-dropdown-menu{ display:block; }

.nav-dropdown-menu a{
  display:block;
  padding: .6rem .65rem;
  border-radius: 10px;
  color: var(--charcoal);
}
.nav-dropdown-menu a:hover{
  background: var(--bg-soft);
  text-decoration:none;
}

/* Hero */
.hero{
  padding: 3.2rem 0 2.6rem;
  background: linear-gradient(180deg, rgba(176,208,213,0.28), rgba(255,255,255,0));
  overflow: hidden; /* prevents horizontal scroll from any child overflow */
}

.hero-inner{
  display:grid;
  grid-template-columns: 1.35fr .9fr;
  grid-template-rows: auto auto;
  gap: 1.3rem;
  align-items: start;
}

/* Explicit placement for 3 children:
   1) hero-media (left/top)
   2) hero-copy  (left/bottom)
   3) hero-card  (right, spanning rows)
*/
.hero-media{
  grid-column: 1;
  grid-row: 1;
  max-width: 520px;
  width: 100%;
  flex-shrink: 0;
}

.hero-copy{
  grid-column: 1;
  grid-row: 2;
}

.hero-card{
  grid-column: 2;
  grid-row: 1 / span 2;
}

.hero h1{
  margin: 0 0 .6rem;
  font-size: clamp(2rem, 2.6vw + 1.2rem, 3.1rem);
  line-height: 1.1;
  color: var(--teal-dark);
}

.hero-image{
  width: 100%;
  height: auto;
  max-height: 70vh;     /* prevents vertical overflow */
  object-fit: contain;  /* ensures full image is visible */
  display: block;
}

.lead{
  font-size: 1.05rem;
  margin: 0 0 1.15rem;
  color: rgba(83,84,87,0.92);
}

.micro{
  margin-top: 1rem;
  font-size: .95rem;
  color: rgba(83,84,87,0.85);
}

.hero-cta{ display:flex; gap:.7rem; flex-wrap: wrap; }

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: .7rem 1rem;
  border-radius: 12px;
  border: 1px solid transparent;
  font-weight: 750;
  text-decoration:none !important;
}

.btn-primary{
  background: var(--teal);
  color: #fff;
  border-color: rgba(19,93,101,0.25);
}
.btn-primary:hover{ filter: brightness(0.98); }

.btn-secondary{
  background: #fff;
  color: var(--teal-dark);
  border-color: rgba(66,161,172,0.45);
}
.btn-secondary:hover{ background: var(--bg-soft); }

/* Hero side card */
.hero-card{
  border-radius: var(--radius);
  border: 1px solid var(--border);
  background: #fff;
  box-shadow: var(--shadow);
  padding: 1.1rem 1.1rem 1rem;
}
.hero-card h2{
  margin: 0 0 .65rem;
  font-size: 1.1rem;
  color: var(--teal-dark);
}

.checklist{
  margin:0;
  padding-left: 1.15rem;
}
.checklist li{ margin: .45rem 0; }

/* Sections */
.section{ padding: 2.4rem 0; }

.section-alt{
  background: rgba(176,208,213,0.18);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}

.section-header h2{
  margin:0 0 .35rem;
  color: var(--teal-dark);
}

.section-header p{
  margin:0 0 1.25rem;
  color: rgba(83,84,87,0.9);
}

/* Cards */
.cards{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
}

.card{
  border: 1px solid var(--border);
  background:#fff;
  border-radius: var(--radius);
  padding: 1.05rem;
  box-shadow: 0 10px 20px rgba(0,0,0,0.04);
}
.card h3{
  margin:0 0 .35rem;
  color: var(--teal-dark);
  font-size: 1.05rem;
}
.card p{ margin:0; color: rgba(83,84,87,0.92); }

/* Two-column panels */
.two-col{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}

.panel{
  border: 1px solid var(--border);
  background: rgba(255,255,255,0.75);
  border-radius: var(--radius);
  padding: 1.05rem;
}
.panel h3{ margin:0 0 .35rem; color: var(--teal-dark); }
.panel p{ margin:0; }

/* Footer */
.site-footer{
  border-top: 1px solid var(--border);
  padding: 1.25rem 0;
}

.footer-inner{
  display:flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}

/* -----------------------------
   Responsive adjustments
------------------------------ */

/* Tablet */
@media (max-width: 1024px){
  .cards{ grid-template-columns: repeat(2, 1fr); }
  .hero-media{ max-width: 480px; }
}

/* Mobile */
@media (max-width: 768px){
  /* Stack header/nav better if needed later (kept minimal) */

  /* Hero: collapse grid correctly (grid, not flex) */
  .hero-inner{
    grid-template-columns: 1fr;
    grid-template-rows: auto;
  }

  /* Remove explicit placements so flow is natural on mobile */
  .hero-media,
  .hero-copy,
  .hero-card{
    grid-column: 1;
    grid-row: auto;
  }

  .hero-media{
    max-width: 100%;
  }

  .hero-image{
    max-height: 45vh;
  }
}

/* -----------------------------
   Mobile navigation (hamburger)
------------------------------ */

@media (max-width: 768px){
  /* Show hamburger button */
  .nav-toggle{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:.5rem;
  }

  /* Turn the menu into a dropdown panel */
  .nav-menu{
    position: absolute;
    right: 0;
    top: calc(100% + .6rem);
    width: min(92vw, 360px);
    display: none;              /* hidden by default */
    flex-direction: column;
    align-items: stretch;
    gap: .25rem;
    padding: .6rem;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 14px;
    box-shadow: var(--shadow);
    z-index: 1000;
  }

  /* JS toggles this class */
  .nav-menu.is-open{
    display: flex;
  }

  /* Make links full-width for touch targets */
  .nav-link,
  .nav-dropdown-toggle{
    width: 100%;
    justify-content: space-between;
    padding: .65rem .75rem;
  }

  /* Dropdown submenu becomes inline inside the panel */
  .nav-dropdown-menu{
    position: static;
    top: auto;
    right: auto;
    min-width: 0;
    width: 100%;
    margin-top: .25rem;
    box-shadow: none;
    border-radius: 12px;
  }

  /* Prevent any accidental horizontal scroll */
  body{
    overflow-x: hidden;
  }
}


/* Small mobile */
@media (max-width: 600px){
  .cards{ grid-template-columns: 1fr; }
  .two-col{ grid-template-columns: 1fr; }
}
