*{box-sizing:border-box}html,body{margin:0;max-width:100%;overflow-x:hidden;color:#1b140f;background:#f4eadb;font-family:'Cormorant Garamond',serif}a{color:inherit}.site-header{position:sticky;top:0;z-index:1000;background:#e5d2b3;border-bottom:1px solid rgba(0,0,0,.12)}.nav-shell{width:min(1280px,94%);min-height:72px;margin:auto;display:flex;align-items:center;gap:24px}.brand{text-decoration:none;font:2rem/1 'Great Vibes',cursive;white-space:nowrap}.brand span{display:block;margin-left:42px;margin-top:5px;font:700 .58rem/1 Montserrat,sans-serif;letter-spacing:.34em}.main-nav{margin-left:auto;display:flex;align-items:center;gap:18px}.main-nav a{text-decoration:none;text-transform:uppercase;font:700 .73rem/1.2 Montserrat,sans-serif;white-space:nowrap}.book-link,.btn{border-radius:999px;padding:12px 18px;text-decoration:none;text-transform:uppercase;font:700 .76rem/1 Montserrat,sans-serif;letter-spacing:.03em}.book-link,.btn.dark{background:#283016;color:white}.btn.gold{background:#d2a157;color:#17120f}.menu-toggle{display:none;border:0;background:transparent;font-size:2rem}.home-desktop-hero{position:relative;background:#17130f}.home-desktop-hero img{display:block;width:100%;height:auto}.home-sample-link{position:absolute;left:42%;top:67%;width:20%;height:9%}.home-mobile-hero{display:none}.inner-hero{min-height:440px;padding:70px 5%;display:flex;align-items:center;justify-content:center;background:linear-gradient(rgba(239,219,190,.4),rgba(45,30,20,.25)),url('assets/inner-sunset-clean.jpg') center/cover no-repeat}.inner-hero>div{width:min(1040px,90%);padding:42px;text-align:center;background:rgba(239,219,190,.8);border-radius:18px}.inner-hero h1{font-size:clamp(3rem,6vw,5.5rem);line-height:.95;margin:20px 0}.kicker{font:700 .9rem Montserrat,sans-serif;letter-spacing:.18em}.inner-hero.venue-theme{background:linear-gradient(rgba(239,219,190,.25),rgba(45,30,20,.18)),url('assets/blairs-ferry-building-color.jpg') center/cover no-repeat}.content-section{padding:64px 5%;background:#fffaf2}.split{width:min(1120px,100%);margin:auto;display:grid;grid-template-columns:1fr 1.35fr;gap:36px;align-items:center}.video-frame{aspect-ratio:16/9}.video-frame iframe{width:100%;height:100%;border:0}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.gallery img{width:100%;height:260px;object-fit:cover}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-card input,.form-card select,.form-card textarea{width:100%;padding:12px}footer{padding:28px 5%;background:#211b16;color:#f8eee1}.footer-grid{width:min(1120px,100%);margin:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}footer a{color:inherit}.mobile-hero-content{display:none}
@media(max-width:980px){.nav-shell{min-height:72px;width:92%;justify-content:space-between}.brand{font-size:2rem}.menu-toggle{display:block}.main-nav{display:none;position:absolute;top:100%;left:0;right:0;margin:0;padding:12px 18px 20px;background:#ead9bf;flex-direction:column;align-items:stretch;gap:0;box-shadow:0 12px 24px rgba(0,0,0,.18)}.main-nav.open{display:flex}.main-nav a{padding:14px 10px;border-bottom:1px solid rgba(0,0,0,.12);font-size:.78rem}.main-nav .book-link{text-align:center;margin-top:10px;border-bottom:0}.home-desktop-hero{display:none!important}.home-mobile-hero{display:flex!important;min-height:calc(100svh - 72px);padding:28px 16px;align-items:center;justify-content:center;background:linear-gradient(180deg,rgba(246,224,190,.1),rgba(31,21,14,.45)),url('assets/inner-sunset-clean.jpg') center/cover no-repeat}.mobile-hero-content{display:block;width:min(94%,560px);padding:26px 20px;text-align:center;background:rgba(244,225,195,.92);border-radius:18px;box-shadow:0 14px 32px rgba(0,0,0,.2)}.mobile-kicker{margin:0 0 8px;font:700 .72rem/1.35 Montserrat,sans-serif;letter-spacing:.12em;text-transform:uppercase}.mobile-hero-content h1{margin:0 0 8px;font:3.6rem/.95 'Great Vibes',cursive}.mobile-role{margin:0 0 18px;font:700 .86rem/1.3 Montserrat,sans-serif;letter-spacing:.08em}.mobile-hero-content>p:not(.mobile-kicker):not(.mobile-role){font-size:1.05rem;line-height:1.45}.mobile-actions{display:grid;gap:10px;margin-top:20px}.mobile-actions .btn{display:block;border-radius:10px;padding:16px}.inner-hero{min-height:300px;padding:36px 14px}.inner-hero>div{width:100%;padding:24px 16px}.inner-hero h1{font-size:clamp(2.6rem,12vw,4.2rem)}.content-section{padding:40px 16px}.split,.gallery,.form-grid,.footer-grid{grid-template-columns:1fr}.gallery img{height:auto}.video-frame{width:100%}footer{text-align:center}}
@media(max-width:430px){.brand{font-size:1.8rem}.mobile-hero-content{width:100%;padding:22px 16px}.mobile-hero-content h1{font-size:3.1rem}}

/* GUARANTEED MOBILE HOMEPAGE VISIBILITY */
.home-desktop-hero{display:block;}
.home-mobile-hero{display:none;}

@media (max-width:980px){
  .home-desktop-hero{
    display:none !important;
  }

  .home-mobile-hero{
    display:flex !important;
    position:relative !important;
    visibility:visible !important;
    opacity:1 !important;
    min-height:calc(100vh - 62px) !important;
    width:100% !important;
    align-items:center !important;
    justify-content:center !important;
    padding:28px 16px !important;
    background:
      linear-gradient(180deg,rgba(246,224,190,.12),rgba(31,21,14,.48)),
      url('assets/inner-sunset-clean.jpg') center center / cover no-repeat !important;
  }

  .mobile-hero-content{
    display:block !important;
    visibility:visible !important;
    opacity:1 !important;
    width:min(92%,560px) !important;
    margin:0 auto !important;
    padding:24px 20px !important;
    text-align:center !important;
    background:rgba(244,225,195,.92) !important;
    border-radius:18px !important;
    box-shadow:0 14px 32px rgba(0,0,0,.22) !important;
    color:#17120f !important;
  }

  .mobile-hero-content *{
    visibility:visible !important;
    opacity:1 !important;
  }

  .mobile-kicker{
    margin:0 0 8px !important;
    font:700 .72rem/1.35 Montserrat,sans-serif !important;
    letter-spacing:.12em !important;
    text-transform:uppercase !important;
    color:#17120f !important;
  }

  .mobile-hero-content h1{
    margin:0 0 8px !important;
    font:3.4rem/.95 'Great Vibes',cursive !important;
    color:#17120f !important;
  }

  .mobile-role{
    margin:0 0 16px !important;
    font:700 .9rem/1.3 Montserrat,sans-serif !important;
    letter-spacing:.08em !important;
    color:#17120f !important;
  }

  .mobile-copy{
    margin:0 auto 20px !important;
    font-size:1rem !important;
    line-height:1.5 !important;
    color:#17120f !important;
  }

  .mobile-actions{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:10px !important;
    margin-top:16px !important;
  }

  .mobile-actions .btn{
    display:block !important;
    width:100% !important;
    margin:0 !important;
    padding:15px 12px !important;
  }
}

@media (max-width:430px){
  .home-mobile-hero{
    min-height:calc(100vh - 58px) !important;
    padding:20px 12px !important;
  }
  .mobile-hero-content{
    width:100% !important;
    padding:22px 16px !important;
  }
  .mobile-hero-content h1{
    font-size:3rem !important;
  }
}

/* MOBILE HOMEPAGE — SAME AI GREG AS DESKTOP */
@media (max-width:980px){
  .home-desktop-hero{display:none !important}

  .home-mobile-hero{
    display:flex !important;
    min-height:calc(100svh - 62px) !important;
    align-items:center !important;
    justify-content:center !important;
    padding:22px 12px 30px !important;
    background:
      linear-gradient(180deg,rgba(246,224,190,.08),rgba(31,21,14,.48)),
      url('assets/mobile-sunset-bg.jpg') center/cover no-repeat !important;
  }

  .mobile-hero-shell{
    width:min(94%,580px) !important;
    margin:0 auto !important;
    display:grid !important;
    grid-template-columns:1fr !important;
    overflow:hidden !important;
    border-radius:20px !important;
    background:rgba(244,225,195,.94) !important;
    box-shadow:0 16px 38px rgba(0,0,0,.24) !important;
  }

  .mobile-greg-photo{
    width:100% !important;
    overflow:hidden !important;
    background:#2a2119 !important;
  }

  .mobile-greg-photo img{
    display:block !important;
    width:100% !important;
    height:300px !important;
    object-fit:cover !important;
    object-position:center 30% !important;
  }

  .mobile-hero-content{
    display:block !important;
    width:100% !important;
    margin:0 !important;
    padding:22px 18px 24px !important;
    text-align:center !important;
    background:transparent !important;
    box-shadow:none !important;
    color:#17120f !important;
  }

  .mobile-kicker{
    margin:0 0 8px !important;
    font:700 .72rem/1.35 Montserrat,sans-serif !important;
    letter-spacing:.12em !important;
    text-transform:uppercase !important;
    color:#17120f !important;
  }

  .mobile-hero-content h1{
    margin:0 0 8px !important;
    font:3.15rem/.95 'Great Vibes',cursive !important;
    color:#17120f !important;
  }

  .mobile-role{
    margin:0 0 14px !important;
    font:700 .88rem/1.3 Montserrat,sans-serif !important;
    letter-spacing:.07em !important;
    color:#17120f !important;
  }

  .mobile-copy{
    margin:0 auto 18px !important;
    font-size:1rem !important;
    line-height:1.5 !important;
    color:#17120f !important;
  }

  .mobile-actions{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:10px !important;
  }

  .mobile-actions .btn{
    width:100% !important;
    display:block !important;
    padding:14px 12px !important;
  }
}

@media (max-width:430px){
  .mobile-greg-photo img{
    height:270px !important;
  }
  .mobile-hero-content h1{
    font-size:2.9rem !important;
  }
}

/* MOBILE GREG HEAD CROP FIX */
@media (max-width:980px){
  .mobile-greg-photo img{
    height:300px !important;
    object-fit:cover !important;
    object-position:center 18% !important;
  }
}
@media (max-width:430px){
  .mobile-greg-photo img{
    height:280px !important;
    object-position:center 16% !important;
  }
}

.video-quality-note{
  margin:28px 0 10px;
  padding:20px 22px;
  background:#f1dfc4;
  border-left:5px solid #9b6b3e;
  border-radius:10px;
}
.video-quality-note h3{
  margin:0 0 8px;
  font-size:1.5rem;
}
.video-quality-note p{
  margin:0;
}

/* YouTube recording note — visible on both desktop and mobile */
.video-quality-note{
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
}
@media (max-width:980px){
  .video-quality-note{
    display:block !important;
    width:100% !important;
    margin:24px 0 10px !important;
    padding:18px 16px !important;
  }
  .video-quality-note h3{
    font-size:1.3rem !important;
  }
  .video-quality-note p{
    font-size:1rem !important;
    line-height:1.55 !important;
  }
}

.booking-summary{
  max-width:760px;
  margin:0 auto 22px;
  padding:22px;
  text-align:center;
  background:#f2dfc2;
  border-radius:14px;
  border:1px solid #b79674;
}
.booking-summary h2{margin-top:0}
.booking-phone-card{
  max-width:760px;
  margin:0 auto 24px;
  padding:18px 20px;
  background:#f7ead7;
  border-left:5px solid #8a5d31;
  border-radius:10px;
  text-align:center;
}
.booking-phone-card h3{margin:0 0 8px}
.booking-phone-card p{margin:0}
.booking-phone-card a{font-weight:700;text-decoration:none}
.calendar-note{text-align:center;margin-top:-8px;margin-bottom:22px}
.price-estimate{
  margin:18px 0 24px;
  padding:16px;
  text-align:center;
  font-size:1.15rem;
  background:#f2dfc2;
  border-radius:10px;
}
.booking-fineprint{
  margin:14px 0 0;
  font-size:.9rem;
  text-align:center;
}
@media(max-width:600px){
  .booking-summary,.booking-phone-card{padding:16px 14px}
}

.booking-policy{
  max-width:760px;
  margin:0 auto 22px;
  padding:22px;
  background:#fff7e9;
  border:2px solid #9b6b3e;
  border-radius:14px;
  text-align:center;
}
.booking-policy h2{margin:0 0 12px}
.booking-policy p{margin:8px 0;line-height:1.55}
@media(max-width:600px){
  .booking-policy{padding:17px 14px}
}

.payment-terms{
  max-width:760px;
  margin:0 auto 22px;
  padding:22px;
  background:#f7ead7;
  border:1px solid #b79674;
  border-radius:14px;
  text-align:center;
}
.payment-terms h2{margin:0 0 12px}
.payment-terms p{margin:8px 0;line-height:1.55}
.booking-payment-reminder{
  margin:18px 0 4px;
  padding:14px;
  text-align:center;
  background:#fff7e9;
  border-radius:10px;
}
@media(max-width:600px){
  .payment-terms{padding:17px 14px}
}

/* Prominent always-visible booking action and responsive navigation */
.nav-shell{width:min(1500px,98%);gap:12px}
.main-nav{gap:clamp(7px,1vw,15px);margin-left:auto}
.main-nav a{font-size:clamp(.62rem,.82vw,.73rem)}
.header-book-now{order:3;flex-shrink:0;display:inline-block;background:#283016;color:#fff;text-decoration:none;text-transform:uppercase;font:700 .76rem/1 Montserrat,sans-serif;padding:15px 20px;border-radius:999px;white-space:nowrap;box-shadow:0 2px 8px rgba(0,0,0,.16)}
.menu-toggle{order:4}
@media(max-width:1320px){.nav-shell{width:96%;justify-content:space-between}.main-nav{display:none;position:absolute;top:100%;left:0;right:0;margin:0;padding:12px 18px 20px;background:#ead9bf;flex-direction:column;align-items:stretch;gap:0;box-shadow:0 12px 24px rgba(0,0,0,.18)}.main-nav.open{display:flex}.main-nav a{padding:14px 10px;border-bottom:1px solid rgba(0,0,0,.12);font-size:.78rem}.menu-toggle{display:block}.header-book-now{margin-left:auto}}
@media(max-width:430px){.header-book-now{padding:12px 14px;font-size:.67rem}.nav-shell{gap:8px}}
.booking-top-intro{text-align:center;max-width:850px;margin:0 auto 22px}
.booking-top-intro h2{font-size:clamp(2rem,4vw,3rem);margin:0 0 8px}
.booking-top-intro p{font-size:1.25rem;margin:0}
.rate-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;max-width:1050px;margin:22px auto 24px}
.rate-card{padding:22px;border:1px solid #d9b77d;border-radius:15px;background:#f7ecd9;text-align:center}
.rate-card h3{font:700 .9rem/1.4 Montserrat,sans-serif;text-transform:uppercase;margin:0 0 14px}
.rate-card>strong{font:700 2.7rem/1.2 'Cormorant Garamond',serif}
.rate-card>strong small{font-size:1.1rem}
.rate-card p{font-size:1.2rem;margin:8px 0 0}
.form-card{max-width:1050px;margin:0 auto 36px;padding:clamp(18px,3vw,36px);border:2px solid #d9b77d;border-radius:16px;background:#fff}
.form-card h2{margin-top:0}
.form-card #event-date{border:2px solid #b58b46;border-radius:8px;background:#fff9ee;font-weight:700}
@media(max-width:650px){.rate-cards{grid-template-columns:1fr}.rate-card{padding:15px}.rate-card>strong{font-size:2.3rem}}

/* Always-visible navigation: no dropdown. Book Now stays prominent. */
.nav-shell{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px 16px;width:min(1480px,96%);padding:12px 0}
.brand{grid-column:1;grid-row:1;justify-self:start}
.header-book-now{grid-column:2;grid-row:1;order:initial;margin:0;justify-self:end}
.menu-toggle{display:none!important}
.main-nav,.main-nav.open{grid-column:1/-1;grid-row:2;display:flex!important;position:static!important;flex-direction:row;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 22px;margin:0;padding:10px 0 3px;background:transparent;box-shadow:none}
.main-nav a{display:inline-block;padding:5px 2px;border:0;font-size:clamp(.65rem,.88vw,.82rem);text-align:center}
@media(max-width:700px){
 .nav-shell{width:94%;gap:9px 10px}
 .brand{font-size:1.8rem}
 .main-nav,.main-nav.open{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px 8px;padding:6px 0}
 .main-nav a{font-size:.66rem;line-height:1.3;padding:7px 2px;border-bottom:1px solid rgba(0,0,0,.12);white-space:normal}
}

/* Live monthly calendar */
.live-calendar{max-width:1050px;margin:0 auto 25px;padding:clamp(16px,3vw,28px);background:#fffaf0;border:2px solid #c49c5b;border-radius:16px;color:#263323}
.calendar-heading{text-align:center}.calendar-heading h2{margin:0 0 8px}.calendar-heading p{margin:0 0 18px}
.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:16px}.calendar-toolbar h3{margin:0;text-align:center;font:700 1.7rem 'Cormorant Garamond',serif}
.calendar-toolbar button{background:#283016;color:#fff;border:0;border-radius:9px;font-size:2rem;min-width:45px;min-height:43px;cursor:pointer}.calendar-toolbar button:disabled{opacity:.4;cursor:default}
.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.calendar-weekday{text-align:center;font-weight:700;font-size:.75rem;padding:8px 0}.calendar-day{min-height:54px;border:1px solid #c8d4bc;border-radius:8px;background:#e4f1da;color:#22391d;font-weight:700;font-size:1rem;cursor:pointer}.calendar-day:hover:not(:disabled){outline:3px solid #5a7b40}.calendar-day.is-selected{background:#254b32;color:white;outline:3px solid #d7a65a}.calendar-day.is-blocked{background:#e3ddd4;color:#716a60;text-decoration:line-through}.calendar-day:disabled{cursor:not-allowed}.calendar-day:not(.is-blocked):disabled{background:#f0eee9;color:#aaa}.calendar-status{text-align:center;font-weight:600;min-height:1.5em;margin:15px 0 4px}.calendar-key{text-align:center;font-size:.85rem}.calendar-unavailable-key{text-decoration:line-through;color:#777}
@media(max-width:600px){.calendar-day{min-height:43px}.calendar-grid{gap:3px}.calendar-weekday{font-size:.65rem}.calendar-toolbar h3{font-size:1.4rem}}

/* Calendar error state + booking form messages (added with the server-side calendar fix) */
.calendar-status.is-error{color:#7a1f14;background:#fbeae6;border:1px solid #d9a79d;border-radius:8px;padding:12px 14px;font-weight:700}
.calendar-grid.is-error .calendar-day{background:#f0eee9;color:#aaa;border-style:dashed}
.calendar-retry{display:block;margin:10px auto 6px;padding:12px 22px;border:0;border-radius:999px;background:#283016;color:#fff;font:700 .8rem/1 Montserrat,sans-serif;letter-spacing:.03em;text-transform:uppercase;cursor:pointer}
.calendar-retry[hidden]{display:none}
.form-alert{margin:0 0 18px;padding:14px 16px;border:1px solid #d9a79d;border-radius:8px;background:#fbeae6;color:#7a1f14;font-weight:700}
.form-alert[hidden],.form-success[hidden],.form-card[hidden]{display:none}
.form-success{text-align:center}
.form-success h2{margin-top:0}
.hp-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
#booking-submit:disabled{opacity:.6;cursor:wait}
