:root{
  --green-dark:#3f4a2e;
  --green-mid:#5a6b3f;
  --green-pale:#e7e3d4;
  --cream:#f4f1e8;
  --gold:#c9a227;
  --maroon:#7a2e2e;
  --text-dark:#2c3320;
  --text-light:#f4f1e8;
  --radius:14px;
  --max-w:1240px;
  --header-h-desktop:74px;
  --header-h-mobile:64px;
}
.join-image-btn.nester-join-card--mobile{display:none;}

*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent;}
html,body{
  overflow-x:hidden;
  width:100%;
  max-width:100vw;
}
body{
  font-family:'Jost',sans-serif;
  color:var(--text-dark);
  background:var(--cream);
  -webkit-font-smoothing:antialiased;
  padding-top:var(--header-h-desktop);
}
h1,h2,h3{
  font-family:'Fraunces',serif;
  font-weight:500;
}
img{display:block;width:100%;height:100%;object-fit:cover;}
a,
a:link,
a:visited,
a:hover,
a:active{
  text-decoration:none;
  color:inherit;
}
.wrap{max-width:var(--max-w);margin:0 auto;padding:0 32px;}

/* ===== Image placeholders ===== */
.img-box{
  position:relative;
  overflow:hidden;
  background:repeating-linear-gradient(45deg,#ded8c4,#ded8c4 10px,#e7e2d0 10px,#e7e2d0 20px);
}
.img-box::before{
  content:attr(data-label);
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:8px;
  font-size:12px;
  letter-spacing:.05em;
  color:#8a8268;
  background:rgba(244,241,232,.55);
  font-family:'Jost',sans-serif;
}
.img-box img{position:relative;z-index:1;}
.img-box img:not([src]),
.img-box img[src=""]{display:none;}

/* ===== Header ===== */
header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:18px 32px;
  background:#5a6f27;
  position:fixed;
  top:0;
  left:0;
  right:0;
  width:100%;
  z-index:100;
}
.logo{
  font-size:25px;
  font-weight:500;
  color:white;
  flex-shrink:0;
  display:flex;
  align-items:center;
  gap:8px;
  cursor:pointer;
}
.logo img{
  width:48px;
  height:28px;
  object-fit:contain;
}
nav.main-nav{
  display:flex;
  align-items:center;
  gap:14px;
}
.nav-btn{
  padding:10px 20px;
  border-radius:10px;
  font-size:14px;
  font-weight:500;
  white-space:nowrap;
  border:1px solid transparent;
  cursor:pointer;
}
.nav-btn.outline{background:#fcfcfc; border:1px solid black;color:black;}
.nav-btn.outline:hover{background: #3f4a2e; color:white;}
.nav-btn.gold{background:#ac9129; border:1px solid #ac9129;color:#fff;}
.nav-btn.gold:hover{background: #3f4a2e; border-color:#3f4a2e; color:white;}
.nav-btn.maroon{background:var(--maroon);color:#fff;border:1px solid var(--maroon);}
.nav-btn.maroon:hover{background: #3f4a2e; border:1px solid #3f4a2e; color:white;}
.icon-btn{
  width:38px;height:38px;
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  border:1px solid #d8d2bd;
  background:#fff;
  cursor:pointer;
  font-size:18px;
}

/* ===== Introduction to NestAway dropdown ===== */
.intro-menu{position:relative;}
.intro-btn{
  font-family:inherit;
  display:flex;
  align-items:center;
  gap:8px;
}
.intro-chevron{
  flex-shrink:0;
  transition:transform .2s ease;
}
.intro-btn[aria-expanded="true"] .intro-chevron{
  transform:rotate(180deg);
}
@media(min-width:901px){
  .intro-menu:hover .intro-chevron{
    transform:rotate(180deg);
  }
  /* Invisible bridge that fills the gap between the button and the dropdown
     so hovering from one to the other doesn't briefly leave .intro-menu
     and cause the dropdown to close. */
  .intro-menu::after{
    content:'';
    position:absolute;
    left:0;
    right:0;
    top:100%;
    height:10px;
  }
}
.intro-dropdown{
  position:absolute;
  top:calc(100% + 6px);
  left:0;
  background:#fff;
  border-radius:12px;
  box-shadow:0 12px 30px rgba(0,0,0,.15);
  padding:8px;
  min-width:160px;
  display:none;
  flex-direction:column;
  gap:2px;
  z-index:200;
}
.intro-dropdown.open{display:flex;}
.intro-dropdown a{
  display:block;
  padding:10px 14px;
  border-radius:8px;
  font-size:14px;
  font-weight:500;
  color:var(--text-dark);
  transition:background .15s ease;
}
.intro-dropdown a:hover{background:var(--green-pale);}
@media(min-width:901px){
  .intro-menu:hover .intro-dropdown{display:flex;}
}

/* Mobile variant: expands inline under the button instead of floating */
.intro-menu--mobile{position:static;}
.intro-dropdown--mobile{
  position:static;
  box-shadow:none;
  border:1px solid #ddd8c6;
  margin-top:6px;
}

.nav-right{display:flex;align-items:center;gap:10px;flex-shrink:0;}
.hamburger{
  display:none;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  width:38px;height:38px;
  border-radius:50%;
  border:1px solid #d8d2bd;
  background:#fff;
  cursor:pointer;
  padding:0 10px;
  flex-shrink:0;
}
.hamburger span{
  display:block;
  width:18px;
  height:2px;
  background:var(--green-dark);
  border-radius:2px;
  transition:all .25s;
}
.mobile-nav{
  display:none;
  flex-direction:column;
  gap:10px;
  background:var(--cream);
  padding:20px 32px 24px;
  border-top:1px solid #ddd8c6;
  position:absolute;
  top:100%;left:0;right:0;
  z-index:99;
  box-shadow:0 8px 24px rgba(0,0,0,.08);
}
.mobile-nav.open{display:flex;}
.mobile-nav .nav-btn{display:block;text-align:center;padding:12px 20px;}

/* ===== Hero ===== */
.hero{
  position:relative;
  height:560px;
  overflow:hidden;
  width:100%;
}
.hero .img-box{position:absolute;inset:0;}
.hero .img-box img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 80%;
}
.hero-deco-left,
.hero-deco-right{
  position:absolute;
  top:0;
  height:100%;
  width:48px;
  object-fit:cover;
  z-index:3;
  opacity:.95;
  pointer-events:none;
}
.hero-deco-left{left:0;}
.hero-deco-right{right:0;}
.hero-overlay{
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(20,30,15,.15) 0%,rgba(20,30,15,.45) 100%);
  z-index:2;
}
.hero-content{
  position:relative;
  z-index:4;
  height:100%;
  width:100%;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  align-items:flex-start;
  padding-top:56px;
  padding-left:64px;
  padding-right:64px;
  max-width:var(--max-w);
  margin:0 auto;
  text-align:left;
}

@media (min-width:1024px){
  .hero{
    height:70vh;
    min-height:560px;
  }
}

@media (min-width:1440px){
  .hero{
    height:75vh;
  }
}

.hero-content h1{
  display:flex;
  flex-direction:column;
  gap:0;
  font-size:clamp(28px, 4.6vw, 56px);
  line-height:1.08;
  text-align:left;
  max-width:100%;
}
.hero-line{
  text-shadow:0 2px 12px rgba(0,0,0,.35);
}
.hero-line--accent{
  color:#8aa138;
}
.hero-line--light{
  color:#f4f1e8;
}
.journey-buttons{
  position:absolute;
  bottom:36px;left:0;right:0;
  display:flex;
  justify-content:space-between;
  padding:0 48px;
  max-width:var(--max-w);
  margin:0 auto;
  z-index:3;
}
.journey-btn{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  border-radius:20px;
  padding:14px 16px 14px 24px;
  cursor:pointer;
  border:none;
  text-align:left;
  min-width:230px;
  transition:transform .2s ease, box-shadow .2s ease;
}
.journey-btn:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 20px rgba(0,0,0,.18);
}
.journey-btn--light{
  background:#ffffff;
  color:var(--green-dark);
}
.journey-btn--dark{
  background:var(--green-dark);
  color:#ffffff;
}
.journey-text{
  display:flex;
  flex-direction:column;
  gap:2px;
}
.journey-text b{
  font-size:15px;
  font-weight:700;
  line-height:1.25;
}
.journey-sub{
  font-size:14px;
  font-weight:400;
  opacity:.8;
}
.play-circle.outline{
  width:34px;height:34px;
  border-radius:50%;
  border:1.6px solid currentColor;
  background:transparent;
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;
}
.play-circle.outline svg{width:13px;height:13px;fill:currentColor;}
.play-circle.outline img{width:13px;height:13px;object-fit:contain;}

/* ===== Persona Strip ===== */
.persona-strip{
  background:#5a6f27;
  color:var(--text-light);
  padding:20px 0;
}
.persona-cols{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}
.persona-card{
  position:relative;
  display:block;
  background:var(--green-dark);
  border-radius:20px;
  padding:26px 28px 28px;
  color:var(--text-light);
  cursor:pointer;
  transition:background .2s ease, transform .2s ease;
}
.persona-card:hover{
  background:#2f3822;
  transform:translateY(-2px);
}
.persona-card-icon{
  position:absolute;
  top:24px;
  right:26px;
  width:40px;
  height:36px;
  color:var(--text-light);
}
.persona-card-icon svg{width:100%;height:100%;}
.persona-card h3{
  font-family:'Fraunces',serif;
  font-weight:500;
  font-size:28px;
  margin-bottom:8px;
}
.persona-card .persona-role{
  font-size:15px;
  font-weight:400;
  opacity:.95;
  margin-bottom:16px;
  padding-right:40px;
}
.persona-card .persona-sub{
  font-size:13px;
  line-height:1.5;
  opacity:.95;
}

/* ===== Feature Grid ===== */
.feature-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
  padding:0 24px 24px;
}
.feature-card{
  background:#42532f;
  border-radius:var(--radius);
  overflow:hidden;
  margin-top:21px;
  border:1px solid rgba(255,255,255,.12);
}
.feature-card .img-box{
  aspect-ratio:3/2;
  height:auto;
  border-radius:10px;
  overflow:hidden;
}
.feature-card .img-box img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform 0.35s ease;
}
.feature-card .img-box:hover img{
  transform:scale(1.08);
}
.feature-card .feature-text{
  padding:14px 18px 22px;
  text-align:center;
}
.feature-card .feature-icon{
  display:flex;
  justify-content:center;
  margin-bottom:10px;
}
.feature-card .feature-icon img{
  width:36px;
  height:36px;
  object-fit:contain;
}
.feature-card h4{
  font-family:'Fraunces',serif;
  font-weight:500;
  font-size:23px;
  margin-bottom:6px;
  color:var(--text-light);
}
.feature-card p{
  font-size:12px;
  line-height:1.5;
  opacity:.88;
  color:var(--text-light);
}

/* ===== Welcome / Categories ===== */
.welcome-section{
  background:var(--green-pale);
  padding:70px 0 60px;
  position:relative;
  overflow:hidden;
}
.welcome-section h2{
  text-align:center;
  color:#5a6f27;
  font-size:28px;
  margin-bottom:36px;
}
.welcome-illustration{
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
  margin-bottom:30px;
}
.welcome-illustration .illustration-center{
  width:420px;
  height:auto;
  object-fit:contain;
}
.deco-left,
.deco-right{
  width:40px;
  height:350px;
  object-fit:contain;
  position:absolute;
  top:18%;
  transform:translateY(-50%);
}
.deco-left{left:0;}
.deco-right{right:0;}
.welcome-section .lede{
  text-align:center;
  max-width:560px;
  margin:0 auto 50px;
  font-size:15px;
  line-height:1.6;
  color:#586c26;
}
.category-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
}
.category-card{
  background: #f1eedf;
  border-radius:var(--radius);
  overflow:hidden;
}
  .category-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    max-width: 100%;
  }
  
  .category-card {
    display: flex;
    flex-direction: column;
    aspect-ratio: 1 / 1;
    min-height: 0;
  }

  /* layout: 3 cards per row */
  .category-cards,
  .categories,
  .category-grid,
  .category-list{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    justify-content:center;
    margin:0 auto;
  }
  .category-card{
    flex: 0 0 calc(30% - 8px);
    max-width: calc(30% - 8px);
  }

  @media (max-width: 800px){
    .category-card{flex:0 0 calc(48% - 6px);max-width:calc(48% - 6px);} 
  }

  @media (max-width: 480px){
    .category-card{flex:0 0 100%;max-width:100%;}
  }
  
  .category-card .img-box {
    flex: 1;
    overflow: hidden;
    border-radius: 8px;
  }
  
  .category-card .img-box img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  
  .category-text {
    padding: 12px 0;
    text-align: center;
  }
  
  .category-text h3 {
    margin: 0;
    font-size: 16px;
    color: #5a6f27;

  }
  
  .category-text span {
    display: block;
    font-size: 12px;
    font-weight: 500;
    }
.category-card .img-box{
  flex:0 0 75%;
}
.category-text{
  flex:0 0 25%;
  padding:10px 12px 12px;
  text-align:center;
}
.category-text h3{
  font-size:18px;
  color:var(--green-dark);
  margin-bottom:2px;
}
.category-text span{
  font-size:11px;
  letter-spacing:.08em;
  color:var(--green-mid);
  font-weight:500;
}

/* ===== Booking Banner ===== */
.booking-banner{
  background:#42532f;
  padding:28px 0;
}
.banner-image{
  display:block;
  width:100%;
  height:auto;
  border-radius:29px;
  object-fit:contain;
}

/* ===== Footer ===== */
footer{
  background:#42532f;
  color:var(--text-light);
  padding:50px 0 30px;
  text-align:center;
}
footer h2{
  font-size:24px;
  margin-bottom:36px;
  display:flex;
  flex-direction:column;
  gap:4px;
}
.footer-brand{
    font-weight:600;
    font-family:'Playfair Display',serif;
}
.footer-tagline{
  font-weight:550;
  font-family:'Playfair Display',serif;
}
.footer-bottom{
  display:flex;
  flex-direction:row;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding-top:30px;
  border-top:1px solid rgba(255,255,255,.12);
  font-size:12px;
  opacity:.85;
  text-align:left;
}
.footer-contact{
  text-align:left;
  line-height:1.6;
  flex:1;
  color:rgb(255, 255, 255);
}
.footer-logo-mark{
  display:flex;
  justify-content:center;
  margin-bottom:0;
  flex:1;
}
.footer-logo-mark svg{width:34px;height:34px;}
.social-icons{display:flex;gap:10px;justify-content:flex-end;flex:1;}
.social-icons a{
  width:32px;height:32px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.4);
  display:flex;align-items:center;justify-content:center;
  font-size:11px;
  transition:background-color .2s ease, border-color .2s ease, transform .2s ease;
}
.social-icons a:hover{
  background-color:#42532f;
  color:#fdfcf8;
  border-color:var(--text-light);
  transform:translateY(-2px);
}

/* ===== Responsive ===== */
@media(max-width:900px){
  nav.main-nav{display:none;}
  .hamburger{display:flex;}
  .feature-grid{grid-template-columns:repeat(2,1fr);}
  .persona-cols{grid-template-columns:1fr;}
  .category-grid{grid-template-columns:repeat(2,1fr);}
  .hero{height:500px;}
  .hero-content{padding-top:40px;padding-left:28px;padding-right:28px;}
  .journey-buttons{padding:0 28px;bottom:24px;}
  .hero-deco-left,
  .hero-deco-right{width:32px;}
  .booking-banner{padding:20px 0;}
  .banner-image{border-radius:24px;}
}

@media(max-width:560px){
  body{padding-top:var(--header-h-mobile);}
  header{padding:14px 20px;}
  .mobile-nav{padding:16px 20px 20px;}
  .feature-grid{grid-template-columns:1fr 1fr;padding:0 12px 12px;}
  .category-grid{grid-template-columns:1fr;}
  .hero{height:460px;}
  .hero-content{padding-top:32px;padding-left:20px;padding-right:20px;}
  .journey-buttons{flex-direction:column;align-items:stretch;gap:10px;bottom:20px;padding:0 20px;}
  .journey-btn{min-width:0;width:100%;}
  .wrap{padding:0 20px;}
  .welcome-section h2{font-size:22px;}
  footer h2{font-size:20px;}
  .banner-image{border-radius:18px;}
}

/* Hide decorative side patterns on mobile widths — no room for them.
   They remain visible on tablets/laptops/desktops above this breakpoint. */
@media(max-width:767px){
  .deco-left,
  .deco-right,
  .hero-deco-left,
  .hero-deco-right{display:none !important;}

  .footer-bottom{
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
  }
  .footer-contact{
    text-align:center;
    flex:none;
  }
  .footer-logo-mark{flex:none;}
  .social-icons{justify-content:center;flex:none;}
}

/* ================================================
   NESTERS (FACILITATORS) SUB-PAGE
   ================================================ */

/* ----- Sub-page hero ----- */
.subhero{
  position:relative;
  height:340px;
  overflow:hidden;
  width:100%;
}
.subhero-img{
  position:absolute;
  inset:0;
}
.subhero-img img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
.subhero-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(20,30,15,.55) 0%,rgba(20,30,15,.15) 55%,rgba(20,30,15,0) 75%);
  z-index:2;
}
.subhero-content{
  position:relative;
  z-index:3;
  height:100%;
  max-width:var(--max-w);
  margin:0 auto;
  padding:40px 48px;
  top:-75px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.subhero-eyebrow{
  color:#8ca339;
  font-family:'Playfair Display',serif;
  font-weight:600;
  font-size:clamp(20px, 3.6vw, 40px);
  margin-bottom:8px;
  text-shadow:0 2px 10px rgba(0,0,0,.3);
}
.subhero-title{
  color:#ffffff;
  font-size:clamp(24px,3.2vw,36px);
  line-height:1.25;
  max-width:420px;
  text-shadow:0 2px 12px rgba(0,0,0,.35);
}

@media(min-width:1024px){
  .subhero{height:400px;}
}

/* ----- Checklist section ----- */
.checklist-section{
  background:#d3d1c3;
  padding:60px 0 70px;
}
.checklist-wrap{
  display:grid;
  grid-template-columns:1.3fr 1fr;
  gap:32px;
  align-items:start;
  margin-bottom:48px;
}
.checklist-intro h2{
  color:#6b8032;
  font-family:'Jost',sans-serif;
  font-size:clamp(30px, 3.4vw, 42px);
  font-weight:800;
  line-height:1.15;
  margin-bottom:20px;
}
.checklist-intro p{
  font-size:18px;
  line-height:1.6;
  color:#394d1e;
  max-width:480px;
}

.checklist{
  list-style:none;
  display:flex;
  flex-direction:column;
  gap:26px;
  margin-bottom:56px;
}
.checklist h4{
  font-weight:600;
  font-size:20px;
  color:#3d5022;
  margin-bottom:6px;
}
.checklist p{
  font-size:16px;
  line-height:1.65;
  color:#47592d;
  max-width:1150px;
}
.checklist-note{
  opacity:.75;
  margin-top:4px;
}

.special-block{
  margin-bottom:56px;
}
.special-block h2{
    color:#637b31;
  font-family:'Jost',sans-serif;
  font-size:clamp(20px, 3.4vw, 28px);
  font-weight:800;
  letter-spacing:.008em;
  margin-bottom:18px;
}
.special-item{margin-bottom:16px;}
.special-item h4{
  font-weight:600;
  font-size:20px;
  margin-bottom:4px;
  color:#3b4f20;
}
.special-item p{
  font-size:16px;
  line-height:1.65;
  color:#4a4636;
  max-width:820px;
}
.special-note{
  font-size:14.5px;
  margin-top:10px;
}
.special-thanks{
  font-weight:600;
  font-size:20px;
  margin-top:6px;
}

/* ----- Join us buttons (designer-supplied images) ----- */
.join-image-btn{
  display:block;
}
.join-image-btn img{
  display:block;
  width:100%;
  height:auto;
}

.join-triple{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px;
  margin-bottom:8px;
}

/* ----- Responsive ----- */
@media(max-width:900px){
  .checklist-wrap{
    grid-template-columns:1fr 200px;
    gap:20px;
    align-items:center;
  }
  .checklist-intro h2{font-size:26px;}
  .checklist-intro p{font-size:14px;}
  .subhero{height:320px;}
  .subhero-content{top:-40px;}
  .join-triple{gap:8px;}
}

@media(max-width:560px){
  .checklist-section{padding:40px 0 50px;}
  .checklist-intro h2{font-size:15px;}
  .checklist-intro p{font-size:13px;}
  .checklist-wrap{
    display:block;
  }
  .checklist-intro{
    width:100%;
  }
  .nester-join-card--desktop{
    display:none;
  }
  .join-image-btn.nester-join-card--mobile{
    display:block;
    float:right;
    width:176px;
    margin:0 0 14px 14px;
  }
  .special-block h2{font-size:22px;}
  .subhero-content{padding:20px;top:0;}
  .subhero-eyebrow{font-size:22px;margin-bottom:4px; margin-top: -95px;}
  .subhero-title{font-size:18px;}
  .subhero{height:260px;}
  .join-triple{gap:6px;}
}