@import url('https://fonts.googleapis.com/css2?family=Shrikhand&family=Special+Elite&family=Inter:wght@400;500;600;700;800&display=swap');

:root{
  --khaki:#92947B;
  --brown:#715A42;
  --green:#255B3D;
  --ice:#CFE4E5;
  --sage:#ACC8C9;
  --cream:#FBFAF5;
  --ink:#173421;
  --white:#fff;
  --shadow:0 18px 40px rgba(23,52,33,.12);
  --radius:28px;
}
*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;background:var(--cream);color:var(--ink);font-family:Inter,Arial,sans-serif;font-size:17px;line-height:1.65} img{max-width:100%;display:block} a{color:inherit;text-decoration:none}.container{width:min(1160px,92%);margin:auto}.brand-font,h1,h2,h3,.logo-text{font-family:Shrikhand,cursive;letter-spacing:.02em}.typewriter,.eyebrow,.tag{font-family:'Special Elite',monospace;letter-spacing:.08em;text-transform:uppercase}.site-header{position:sticky;top:0;z-index:10;background:rgba(251,250,245,.92);backdrop-filter:blur(12px);border-bottom:1px solid rgba(37,91,61,.08)}.nav{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:14px 0}.brand{display:flex;align-items:center;gap:14px}.brand img{width:70px;height:70px;object-fit:contain;background:white;border-radius:18px;box-shadow:0 8px 20px rgba(23,52,33,.08)}.logo-text{font-size:1.35rem;color:var(--green)}.nav-links{display:flex;align-items:center;gap:28px;font-weight:800}.nav-links a{color:#32483a}.nav-links a:hover{color:var(--green)}.btn{display:inline-flex;align-items:center;justify-content:center;background:var(--green);color:#fff;border:3px solid var(--green);border-radius:999px;padding:14px 24px;font-weight:900;box-shadow:0 10px 24px rgba(37,91,61,.18);transition:.2s}.btn:hover{transform:translateY(-2px);box-shadow:0 14px 28px rgba(37,91,61,.22)}.btn.secondary{background:transparent;color:var(--green)}.btn.light{background:#fff;color:var(--green);border-color:#fff}.hero{position:relative;overflow:hidden;padding:82px 0 70px;background:linear-gradient(135deg,#fff 0%,var(--ice) 120%)}.hero:before{content:'GG';position:absolute;right:-30px;top:20px;font-family:Shrikhand,cursive;font-size:260px;color:rgba(172,200,201,.28);line-height:1}.hero-grid{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:58px;align-items:center}.eyebrow{color:var(--green);font-weight:800;margin-bottom:16px}.hero h1{font-size:clamp(3.2rem,7vw,6.8rem);line-height:1.02;margin:0 0 22px;color:var(--green)}.hero p{font-size:1.22rem;color:#53665a;max-width:650px}.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px}.hero-card{position:relative}.hero-card img{border-radius:32px;box-shadow:var(--shadow);aspect-ratio:4/5;object-fit:cover}.hero-badge{position:absolute;left:30px;bottom:26px;background:#fff;border-radius:20px;padding:16px 22px;color:var(--green);font-weight:900;box-shadow:var(--shadow)}.section{padding:78px 0}.section.alt{background:#fff}.section h2{font-size:clamp(2.5rem,4.5vw,4.5rem);line-height:1.05;color:var(--green);margin:0 0 14px}.section-lead{color:#586a5f;font-size:1.12rem;max-width:760px;margin:0 0 34px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.card{background:#fff;border:1px solid rgba(37,91,61,.08);border-radius:var(--radius);padding:28px;box-shadow:0 14px 28px rgba(23,52,33,.06)}.card h3{font-size:1.65rem;color:var(--green);margin:0 0 12px}.card p{color:#56675d;margin:0}.split{display:grid;grid-template-columns:1fr 1fr;gap:42px;align-items:center}.photo-card img,.gallery-grid img{border-radius:24px;box-shadow:var(--shadow);width:100%;height:100%;object-fit:cover}.green-panel{background:var(--green);color:#fff;border-radius:var(--radius);padding:46px}.green-panel h2,.green-panel h3{color:#fff}.green-panel p{color:rgba(255,255,255,.87)}.event-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.event-pill{background:var(--ice);border:1px solid rgba(37,91,61,.12);border-radius:22px;padding:22px;text-align:center;font-weight:900;color:var(--green)}.event-pill span{display:block;font-size:2rem;margin-bottom:8px}.price-table{overflow:hidden;background:#fff;border-radius:28px;box-shadow:var(--shadow);border:1px solid rgba(37,91,61,.08)}table{width:100%;border-collapse:collapse}th{background:var(--green);color:#fff;text-align:left;padding:18px 22px}td{padding:22px;border-bottom:1px solid rgba(37,91,61,.08)}td.price{font-size:1.35rem;font-weight:900;color:var(--green)}tr:last-child td{border-bottom:0}.included{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.included div{background:#fff;border-left:6px solid var(--sage);border-radius:16px;padding:18px;font-weight:800;color:var(--green);box-shadow:0 10px 22px rgba(23,52,33,.06)}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.gallery-grid img{aspect-ratio:4/3}.gallery-grid .tall{aspect-ratio:3/4}.quote-box{background:var(--green);color:#fff;border-radius:32px;padding:46px;display:flex;align-items:center;justify-content:space-between;gap:30px}.quote-box h2{color:#fff}.quote-box p{color:rgba(255,255,255,.9);margin:0}.footer{background:#163620;color:#eef7ef;padding:54px 0}.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:30px}.footer img{width:96px;background:#fff;border-radius:18px;margin-bottom:14px}.footer h3{color:#fff;margin:0 0 12px}.footer a,.footer p{color:rgba(255,255,255,.82)}.page-hero{padding:68px 0;background:linear-gradient(135deg,var(--ice),#fff)}.page-hero h1{font-size:clamp(3rem,6vw,5.8rem);color:var(--green);line-height:1;margin:0}.form-card{background:#fff;border-radius:28px;box-shadow:var(--shadow);padding:34px}.form-note{background:var(--ice);padding:18px;border-radius:18px;color:var(--green);font-weight:700}.faq{display:grid;gap:18px}.faq-item{background:#fff;border-radius:20px;padding:22px;box-shadow:0 10px 22px rgba(23,52,33,.05)}.faq-item h3{margin:0 0 6px;color:var(--green)}.mobile-menu{display:none}
@media(max-width:900px){.nav{position:relative}.nav-links{display:none;position:absolute;top:100%;left:0;right:0;z-index:20;background:rgba(251,250,245,.98);border:1px solid rgba(37,91,61,.12);border-radius:0 0 22px 22px;box-shadow:0 18px 32px rgba(23,52,33,.12);padding:18px;flex-direction:column;align-items:stretch;gap:12px}.nav-links.open{display:flex}.nav-links a{padding:10px 12px}.nav-links .btn{width:100%;text-align:center}.mobile-menu{display:block;font-weight:800;cursor:pointer;background:var(--green);color:#fff;border-radius:999px;padding:10px 16px}.hero-grid,.split,.footer-grid{grid-template-columns:1fr}.hero{padding-top:54px}.hero-card img{aspect-ratio:4/3}.cards{grid-template-columns:1fr}.event-grid,.included{grid-template-columns:repeat(2,1fr)}.quote-box{display:block}.quote-box .btn{margin-top:22px}.gallery-grid{grid-template-columns:1fr 1fr}.brand img{width:58px;height:58px}.logo-text{font-size:1.1rem}}
@media(max-width:560px){body{font-size:16px}.hero h1{font-size:3.1rem}.section{padding:56px 0}.event-grid,.included,.gallery-grid{grid-template-columns:1fr}th,td{padding:14px 12px}.hero-actions{display:grid}.btn{width:100%}.hero:before{font-size:180px;right:-60px}.page-hero h1{font-size:3rem}}

.form-embed{margin-top:26px;border-radius:24px;overflow:hidden;background:#fff;border:1px solid rgba(37,91,61,.08);box-shadow:0 12px 28px rgba(23,52,33,.08)}
.form-embed iframe{display:block;width:100%;min-height:1400px;background:#fff}
.quote-form-card{max-width:980px;margin:0 auto}

/* Header Request Quote white text */
.nav .btn, .nav .quote-btn, .header .btn-primary, .header-quote-btn { color:#FFFFFF !important; }


/* Gallery video */
.gallery-video-section { padding-top: 34px; }
.video-card { background: #fff; border-radius: 28px; box-shadow: var(--shadow); overflow: hidden; border: 1px solid rgba(37,91,61,.08); }
.video-card video { display: block; width: 100%; height: auto; max-height: 720px; object-fit: contain; background: #000; }


/* Clickable Gallery Lightbox */
.lightbox-gallery img {
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.lightbox-gallery img:hover {
  transform: translateY(-3px);
  box-shadow: 0 18px 40px rgba(0,0,0,0.18);
}

.lightbox {
  position: fixed;
  inset: 0;
  background: rgba(9, 24, 16, 0.88);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  padding: 28px;
}

.lightbox.open {
  display: flex;
}

.lightbox img {
  max-width: min(92vw, 1200px);
  max-height: 82vh;
  border-radius: 24px;
  box-shadow: 0 24px 80px rgba(0,0,0,0.35);
  background: #fff;
}

.lightbox-close,
.lightbox-prev,
.lightbox-next {
  position: absolute;
  border: 0;
  cursor: pointer;
  color: #255B3D;
  background: #FFFFFF;
  font-weight: 800;
  line-height: 1;
  box-shadow: 0 12px 30px rgba(0,0,0,0.25);
}

.lightbox-close {
  top: 22px;
  right: 24px;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  font-size: 32px;
}

.lightbox-prev,
.lightbox-next {
  top: 50%;
  transform: translateY(-50%);
  width: 54px;
  height: 54px;
  border-radius: 50%;
  font-size: 42px;
}

.lightbox-prev { left: 22px; }
.lightbox-next { right: 22px; }

@media (max-width: 700px) {
  .lightbox { padding: 14px; }
  .lightbox-prev, .lightbox-next {
    width: 42px;
    height: 42px;
    font-size: 32px;
  }
  .lightbox-prev { left: 10px; }
  .lightbox-next { right: 10px; }
}


/* Mobile + Desktop Responsive Improvements */
* {
  box-sizing: border-box;
}

html, body {
  max-width: 100%;
  overflow-x: hidden;
}

img, video, iframe {
  max-width: 100%;
}

.container {
  width: min(1120px, calc(100% - 32px));
  margin-left: auto;
  margin-right: auto;
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
}

.nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.brand {
  flex-shrink: 0;
}

.brand img {
  max-width: 72px;
  height: auto;
}

.logo-text {
  line-height: 0.9;
}

.nav-links {
  align-items: center;
}

.mobile-menu {
  cursor: pointer;
  user-select: none;
}

.hero-grid,
.split,
.footer-grid,
.cards,
.event-grid,
.gallery-grid {
  min-width: 0;
}

.hero-grid,
.split {
  display: grid;
  gap: 36px;
}

.hero-card img,
.photo-card img,
.gallery-grid img {
  width: 100%;
  height: auto;
  object-fit: cover;
}

.price-table {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.price-table table {
  width: 100%;
  min-width: 520px;
}

.form-embed iframe {
  width: 100%;
  min-height: 1200px;
  border: 0;
}

.video-card video {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 24px;
}

@media (max-width: 900px) {
  body {
    font-size: 16px;
  }

  .container {
    width: min(100% - 24px, 1120px);
  }

  .site-header {
    padding: 8px 0;
  }

  .nav {
    align-items: center;
  }

  .brand img {
    max-width: 56px;
  }

  .logo-text {
    font-size: 1.15rem;
  }

  .mobile-menu {
    display: block;
    color: #255B3D;
    font-weight: 800;
    border: 2px solid #255B3D;
    border-radius: 999px;
    padding: 8px 14px;
    background: #ffffff;
  }

  .nav-links {
    display: none;
    position: absolute;
    top: calc(100% + 8px);
    left: 12px;
    right: 12px;
    background: #ffffff;
    border: 1px solid rgba(37, 91, 61, 0.18);
    border-radius: 22px;
    padding: 16px;
    box-shadow: 0 18px 44px rgba(0,0,0,0.14);
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
  }

  .nav-links.active,
  .nav-links.open,
  body.menu-open .nav-links {
    display: flex;
  }

  .nav-links a {
    display: block;
    width: 100%;
    text-align: center;
    padding: 12px 14px;
  }

  .nav-links .btn {
    color: #ffffff !important;
  }

  .hero {
    padding: 44px 0 36px;
  }

  .hero-grid,
  .split {
    grid-template-columns: 1fr !important;
    gap: 24px;
  }

  .hero h1,
  .page-hero h1 {
    font-size: clamp(2.4rem, 12vw, 4.2rem);
    line-height: 0.95;
    word-break: normal;
  }

  .hero p,
  .section-lead,
  p {
    font-size: 1rem;
    line-height: 1.65;
  }

  .hero-actions {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
  }

  .hero-actions .btn,
  .quote-box .btn,
  .green-panel .btn {
    width: 100%;
    text-align: center;
  }

  .hero-card,
  .photo-card,
  .green-panel,
  .quote-box,
  .form-card {
    border-radius: 24px;
  }

  .hero-badge {
    left: 16px;
    right: 16px;
    bottom: 16px;
    width: auto;
    text-align: center;
  }

  .section {
    padding: 48px 0;
  }

  .section h2 {
    font-size: clamp(2rem, 10vw, 3.4rem);
    line-height: 1;
  }

  .cards,
  .event-grid,
  .gallery-grid,
  .included {
    grid-template-columns: 1fr !important;
    gap: 16px;
  }

  .card {
    padding: 22px;
  }

  .card h3 {
    font-size: 1.45rem;
    line-height: 1.1;
  }

  .gallery-grid img {
    max-height: none;
    aspect-ratio: auto;
  }

  .quote-box {
    display: grid;
    grid-template-columns: 1fr !important;
    gap: 20px;
    padding: 28px;
  }

  .footer {
    padding: 40px 0 24px;
  }

  .footer-grid {
    grid-template-columns: 1fr !important;
    gap: 26px;
  }

  .footer img {
    max-width: 110px;
  }

  .social-placeholder {
    width: min(100% - 24px, 1120px);
    margin: 22px auto 0;
    text-align: left;
  }

  .price-table table {
    font-size: 0.95rem;
  }

  .price-table th,
  .price-table td {
    padding: 14px 12px;
  }
}

@media (max-width: 520px) {
  .container {
    width: min(100% - 20px, 1120px);
  }

  .brand {
    gap: 8px;
  }

  .brand img {
    max-width: 48px;
  }

  .logo-text {
    font-size: 0.95rem;
  }

  .mobile-menu {
    font-size: 0.9rem;
    padding: 7px 12px;
  }

  .hero h1,
  .page-hero h1 {
    font-size: clamp(2.2rem, 14vw, 3.5rem);
  }

  .eyebrow {
    letter-spacing: 0.08em;
    font-size: 0.82rem;
  }

  .btn {
    padding: 13px 18px;
    font-size: 0.95rem;
  }

  .green-panel {
    padding: 26px 22px;
  }

  .green-panel h2 {
    font-size: clamp(2rem, 11vw, 3.2rem);
  }

  .page-hero {
    padding: 42px 0 24px;
  }

  .form-embed iframe {
    min-height: 1350px;
  }
}


/* Social Icon Buttons */
.social-placeholder {
  width: min(1120px, calc(100% - 32px));
  margin: 24px auto 0;
}

.social-icons {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 10px;
}

.social-icon {
  width: 46px;
  height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: #ffffff;
  color: #255B3D;
  border: 2px solid rgba(255,255,255,0.8);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.social-icon:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(0,0,0,0.18);
}

.social-icon svg {
  width: 24px;
  height: 24px;
  fill: currentColor;
}

@media (max-width: 700px) {
  .social-icons {
    justify-content: flex-start;
  }
}


/* Fix Social Icon Visibility */
.social-icon {
  background: #FFFFFF !important;
  color: #255B3D !important;
}

.social-icon svg,
.social-icon svg path {
  fill: #255B3D !important;
}

.social-icon:hover {
  background: #CFE4E5 !important;
  color: #255B3D !important;
}
