/* Mobile / responsive overrides for SEGS site */
/* Mobile-first: base rules for small viewports */
html,body{height:100%;}
body{min-width:0;padding:0;margin:0;}
img, .gallery img {max-width:100%;height:auto;display:block}
#wrap, #columns, #header, #footer{width:100%;margin:0;padding:0}
#columns{width:100%;margin:3px;padding:0}
.onecolumn{width:100%;margin:3px;padding:0}
#header{position:relative;height:auto;background-size:cover;background-position:center top}
#toptitle{position:relative;width:100%;height:auto;font-size:28px;padding:18px 10px;text-align:center}
#toptitle h1, #toptitle h2{margin:0;padding:0}
#logo{position:relative;left:auto;right:auto;width:80px;height:auto;background-size:contain;background-repeat:no-repeat;margin:6px auto}
#menu{position:relative;top:auto;width:100%;height:auto;background:none;}
#menu{background:#3a8b5a}
#menu ul{display:none;max-height:0;overflow:hidden;list-style:none;padding:0;margin:0;text-align:left;transition:max-height .28s ease}
#menu.open ul, #menu.open ul li{display:block}
#menu.open ul{max-height:1200px}
#menu ul li{float:none;width:auto;border-bottom:1px solid rgba(255,255,255,0.06)}
#menu ul li a{display:block;padding:12px 16px;width:auto;color:#fff}
#menu.open{position:relative;z-index:9999}

/* Position mobile menu on the left of the header */
@media(max-width:759px){
  /* Strong left-side placement for mobile: override any other layout */
  /* place menu to the right of the hamburger */
  #menu{position:absolute !important;left:56px !important;right:auto !important;top:12px !important;width:auto !important;background:transparent !important;padding:0;margin:0;z-index:0}
  /* Make the collapsed desktop-style bar invisible on mobile */
  #menu ul{display:block !important;max-height:0;overflow:hidden;background:rgba(58,139,90,0.98);padding:6px 0;border-radius:6px;min-width:160px}
  #menu.open ul{max-height:1200px}
  #menu ul li{float:none;display:block}
  #menu ul li a{padding:10px 12px;display:block}
}
#menu.open ul{background:rgba(58,139,90,0.98);padding:6px 0}
#menu.open ul li a{color:#fff !important;background:transparent;padding:10px 14px;border-radius:2px}
#menu ul li a:hover{background:#2f7a4d}
#menutoggle{display:inline-block;padding:8px;margin:8px;border:0;background:rgba(0,0,0,0.35);color:transparent;position:absolute;left:12px;right:auto;top:12px;border-radius:6px;box-shadow:0 2px 6px rgba(0,0,0,0.25);pointer-events:auto}
#menutoggle:focus{outline:2px solid #fff}
.hamburger{display:inline-block;width:28px;height:20px;vertical-align:middle}

.hamburger span{display:block;height:2px;background:#fff;border-radius:2px;margin:4px 0;transition:transform .22s ease, opacity .22s ease}

/* Ensure banner home link sits under the toggle */
#home{position:relative;z-index:1}

/* Toggle animation when menu open */
#menutoggle{z-index:99999}
#menutoggle[aria-expanded="true"] .hamburger span{background:#fff}
#menutoggle[aria-expanded="true"] .hamburger span:nth-child(1){transform:translateY(6px) rotate(45deg)}
#menutoggle[aria-expanded="true"] .hamburger span:nth-child(2){opacity:0}
#menutoggle[aria-expanded="true"] .hamburger span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
#leftcol, #rightcol{float:none;width:auto;margin:0;padding:8px}
#rightcol{padding:4px 8px 8px 8px;margin-top:0}
#leftcol{padding:8px}
/* Make the submenu scrollable on small screens to avoid long page height */
#submenu {max-height:auto;overflow:auto;margin:0 0 4px 0;padding:0}

/* Mobile: show right column (content) before left column (submenu) so headings appear above long lists */
#columns{display:flex;flex-direction:column}
#rightcol{order:1}
#leftcol{order:2;max-height:50vh;overflow:auto}

/* Remove large desktop spacer elements on small screens to avoid big gaps */
.min550px{height:auto !important;min-height:0 !important}
.prop{display:none !important}
.clear{height:0;margin:0;padding:0}

/* Remove heading top margins that can create gaps in stacked layout */
h1,h2,h3{margin-top:0 !important}
#rightcol h1{margin-top:0 !important}
.container{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px 0}
.container > img, .container img{max-width:100%;height:auto}
#footer{position:relative;padding:12px 10px;font-size:0.95em}

/* Address and global info: make responsive */
#address{position:relative;left:auto;top:auto;width:auto;text-align:center;color:#fff;padding:6px}

/* Improve headings and text sizes for mobile */
h1{font-size:1.4rem}
h2{font-size:1.1rem}
p{line-height:1.4}
.clear{clear:both}
/* Larger screens: restore original layout where appropriate */
@media(min-width:760px){
  /* Desktop: restore visible menu and layout */
  #menu{background: url(../images/menubg.gif) #5DA976 repeat-x}
  #menu ul{display:flex;flex-wrap:nowrap;justify-content:center;align-items:center;max-height:none;overflow:visible;background:transparent;text-align:center;gap:0px;padding:0px 0}
  #menutoggle{display:none}
  #menu ul li{display:block;float:none}
  #menu ul li a{display:inline-block;padding:6px 10px;width:auto;color:#fff}
  #header{height:225px}
  #toptitle{font-size:50px;height:201px;padding-top:20px}
  #headerwrap, #wrap, #columns, #footer{width:100%;margin:0 auto}
  #columns{width:100%;margin:3px}
  #leftcol{width:180px;float:left}
  #rightcol{float:right;width:70%}
  .container{width:150px;float:left;margin:0;display:block}
}

/* Active menu item styling (desktop + mobile) */
#menu ul li a.active{
  background: url(../images/menudn.gif) #2f7a4d repeat-x !important;
  color:#fff !important;
  border-radius:2px;
  box-shadow: inset 0 -3px 0 rgba(0,0,0,0.12);
}

#menu.open ul li a.active{
  background: rgba(0,0,0,0.12) !important;
}

/* Desktop overrides to ensure menu is visible and doesn't overlap content */
@media(min-width:760px){
  #header{height:auto !important;padding-bottom:0px}
  #menu{display:block;clear:both;z-index:50;position:relative}
  #menu ul{background:transparent !important;max-height:none !important;overflow:visible !important}
  #menu ul li a{color:#fff !important;background:transparent !important}
  #menu ul li{float:none;display:inline-block}
}

@media(max-width:360px){
  #toptitle{font-size:22px;padding:14px 8px}
  #menutoggle{padding:10px 14px;margin:6px}
}
/* On small screens make the header home link non-interactive so the hamburger gets clicks */
@media(max-width:759px){
  #home{pointer-events:none}
}
.gallery-container{padding:0;margin:3px}
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;align-items:start}
.photo-item{display:flex;flex-direction:column;align-items:stretch}
.photo-thumb{width:100%;height:auto;display:block;border-radius:4px;object-fit:cover}
.photodesc{font-size:0.9rem;margin:6px 0;color:#333}
.phototitle{font-weight:600;font-size:0.9rem;margin:0 0 8px 0;color:#2f7a4d}

/* Lightbox styles */
.lightbox{position:fixed;left:0;top:0;width:100%;height:100%;background:rgba(0,0,0,0.85);display:flex;align-items:center;justify-content:center;z-index:99999}
.lightbox-inner{position:relative;max-width:96vw;max-height:96vh;padding:12px;color:#fff}
.lightbox { opacity: 0; visibility: hidden; transition: opacity 240ms ease, visibility 240ms ease; }
.lightbox.open { opacity: 1; visibility: visible; }
.lightbox .lb-stage{display:block;max-width:100%;max-height:80vh;text-align:center}
.lightbox img{max-width:100%;max-height:80vh;border-radius:4px;display:block;margin:0 auto;transition:opacity 220ms ease}
.lightbox .lb-close,.lightbox .lb-prev,.lightbox .lb-next{position:absolute;background:transparent;color:#8b8b8b;border:0;font-size:32px;cursor:pointer}
.lightbox .lb-close{right:16px;top:8px}
/* add opacity transition to lightbox controls */
.lightbox .lb-close,.lightbox .lb-prev,.lightbox .lb-next{transition:opacity 180ms ease}
.lightbox .lb-close:hover,.lightbox .lb-prev:hover,.lightbox .lb-next:hover{color:#fff}
.lightbox .lb-prev{left:10px;top:50%;transform:translateY(-50%);font-size:40px}
.lightbox .lb-next{right:10px;top:50%;transform:translateY(-50%);font-size:40px}
.lightbox p#lb-caption{margin-top:8px;text-align:center;color:#ddd}
