/* Basic styles for Reptile Adventures template */
:root{
  --accent:#2a7a2e;
  --accent-blue: #1976d2;
  --card-tan: #f5eee6;
  --muted:#6b7280;
  --bg:#fbfbfb;
  --maxw:1100px;
}
*{box-sizing:border-box}
body{font-family:Inter,Segoe UI,Arial,sans-serif;margin:0;background:var(--bg);color:#111}
.wrap{max-width:var(--maxw);margin:0 auto;padding:1.25rem}
.site-header{background:white;border-bottom:1px solid #eee}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between}
.brand{display:inline-flex;align-items:center;gap:.6rem;text-decoration:none}
.site-logo{height:48px;width:auto;display:block;border-radius:6px}
.logo-text{font-size:1.25rem;color:var(--accent);font-weight:700;line-height:1}
.logo{margin:0;font-size:1.25rem;color:var(--accent)}
.site-header nav a{margin-left:1rem;color:#333;text-decoration:none}
.hero{background:#e9f6eb;border-radius:8px;padding:2rem;text-align:center;margin:1.25rem 0}
.hero h2{margin:0 0 .5rem}
.cta{display:inline-block;margin-top:1rem;background:var(--accent);color:white;padding:.6rem 1rem;border-radius:6px;text-decoration:none}
/* Feature cards on home page */
.feature-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:1.25rem 0}
.feature-card{background:#fff;border:1px solid #eee;border-radius:10px;padding:1rem;display:flex;flex-direction:column;align-items:flex-start;gap:.6rem;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,background .16s ease,color .16s ease;text-decoration:none;color:inherit}
.feature-card{display:flex}
.feature-card:hover{transform:translateY(-6px);box-shadow:0 8px 28px rgba(16,24,40,.08)}
.feature-card:focus{outline:3px solid rgba(25,118,210,.14);outline-offset:2px}
.feature-card .fc-title{font-weight:700;color:var(--accent);font-size:1.05rem}
.feature-card .fc-desc{color:var(--muted);font-size:.95rem}
.feature-card .fc-cta{margin-top:auto;background:transparent;border:1px solid #e6e2dc;padding:.45rem .6rem;border-radius:6px;color:var(--accent);text-decoration:none}
/* Secondary (cancel) variant matching .cta sizing but muted color */
.cta.secondary, .secondary{background:#f3f4f6;color:#333;padding:.6rem 1rem;border-radius:6px;border:1px solid #e6e2dc}
.cta.secondary:hover{background:#e9eef6}
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:12px 0}
.gallery-grid img{width:100%;height:180px;object-fit:cover;border-radius:8px;cursor:pointer;display:block}
@media (max-width:900px){.gallery-grid{grid-template-columns:repeat(2,1fr)}.gallery-grid img{height:140px}}
/* Gallery mode menu (tabs) */
.gallery-menu{display:flex;gap:8px;align-items:center;margin:0 0 12px;justify-content:center;width:100%;flex-wrap:wrap}
.gallery-tab{background:#fff;border:1px solid #e6e2dc;padding:.5rem .8rem;border-radius:8px;cursor:pointer;color:var(--muted);font-weight:600}
.gallery-tab[aria-selected="true"]{background:var(--accent);color:#fff;border-color:var(--accent)}
.gallery-tab:focus{outline:3px solid rgba(25,118,210,.12);outline-offset:2px}
/* simple arrow styles for gallery pagination */
.top-nav-arrows,.bottom-nav-arrows{display:flex;justify-content:center;gap:12px;margin-top:12px}
.arrow{font-size:1rem;cursor:pointer;padding:.45rem .75rem;background:#333;color:#fff;border-radius:6px;user-select:none}
.arrow.disabled{opacity:.5;cursor:not-allowed;background:#999}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}
.grid img{width:100%;height:140px;object-fit:cover;border-radius:8px;cursor:pointer;display:block}
.dismiss-btn{position:absolute;top:10px;right:10px;background:rgba(0,0,0,0.54);color:#fff;border:none;width:34px;height:34px;border-radius:6px;display:flex;align-items:center;justify-content:center;opacity:0;transform:translateY(-4px);transition:opacity .18s ease,transform .18s ease;cursor:pointer;z-index:600}
.dismiss-btn:hover{background:rgba(0,0,0,0.72)}
.dismiss-btn:focus{outline:2px solid rgba(255,255,255,.16);outline-offset:2px}
/* ensure sections containing dismiss btn are positioned */
#gallery, #gallery-live-home, #video{position:relative}
/* reveal dismiss button when hovering the section */
#gallery:hover .dismiss-btn, #gallery-live-home:hover .dismiss-btn, #video:hover .dismiss-btn{opacity:1;transform:translateY(0)}
.carousel{display:flex;align-items:center;gap:12px;margin:12px 0}
.carousel-track{flex:1;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:8px;padding:8px}
.carousel-image{max-width:100%;max-height:360px;border-radius:8px;cursor:pointer}
.carousel-prev,.carousel-next{background:white;border:1px solid #eee;border-radius:8px;padding:8px 12px;font-size:1.5rem;cursor:pointer}
.carousel-prev:hover,.carousel-next:hover{background:#f3f4f6}
.thumb-selected{outline:3px solid var(--accent)}

/* Social links under feature cards */
.social-links{display:flex;justify-content:center;margin-top:12px}
.social-inner{display:flex;gap:12px;align-items:center}
.social-link{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:8px;background:#fff;border:1px solid #eee;color:var(--muted);text-decoration:none;transition:background .16s ease,color .16s ease,transform .12s ease}
.social-link svg{display:block}
.social-link:hover{background:var(--accent);color:#fff;transform:translateY(-3px)}
.social-link:focus{outline:3px solid rgba(25,118,210,.12);outline-offset:2px}
/* Harmonize social icon sizes across pages */
.social-icon{display:block;width:22px;height:22px;object-fit:contain}

/* Feature card hover: highlight background and fade text to white */
.feature-card:hover{background:var(--accent);border-color:var(--accent);color:#fff}
.feature-card .fc-title,.feature-card .fc-desc,.feature-card .fc-cta{transition:color .16s ease}
.feature-card:hover .fc-title,.feature-card:hover .fc-desc{color:#fff}
.feature-card:hover .fc-cta{color:#fff;border-color:rgba(255,255,255,.65)}
.video-carousel{display:flex;align-items:center;gap:12px;margin:12px 0}
.video-track{flex:1;display:flex;align-items:center;justify-content:center;border-radius:8px;padding:8px}
.video-player{max-width:100%;height:auto;border-radius:6px;background:transparent}
.video-thumb{height:80px;object-fit:cover;border-radius:6px;cursor:pointer}

/* Contact form styling */
.contact-form{background:var(--card-tan);padding:1rem;border-radius:10px;box-shadow:0 2px 6px rgba(0,0,0,.06);max-width:780px;margin:1.5rem auto;width:100%}
.contact-form .form-row{margin-bottom:.75rem}
.contact-form label{display:block;font-weight:600;margin-bottom:.35rem}
.contact-form input[type="text"],.contact-form input[type="email"],.contact-form input[type="tel"],.contact-form textarea{width:100%;padding:.6rem;border:1px solid #e6e2dc;border-radius:6px;font-size:1rem}
.contact-form textarea{resize:vertical;min-height:180px}
.sr-only{position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}

/* Selected date pills in contact page */
.selected-date-pill{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid #e6e2dc;padding:.3rem .45rem;border-radius:999px;margin-right:.45rem;margin-bottom:.35rem}
.selected-date-text{font-size:.95rem;color:#111}
.remove-date-btn{background:transparent;border:none;color:#888;cursor:pointer;padding:0 .2rem;font-size:0.95rem;line-height:1}
.remove-date-btn:hover{color:#c53030}
.remove-date-btn:focus{outline:2px solid rgba(25,118,210,.25);border-radius:4px}

/* Selected time pill (same style as date pill) */
.selected-time-pill{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid #e6e2dc;padding:.3rem .45rem;border-radius:999px;margin-right:.45rem;margin-bottom:.35rem}
.selected-time-text{font-size:.95rem;color:#111}
.remove-time-btn{background:transparent;border:none;color:#888;cursor:pointer;padding:0 .2rem;font-size:0.95rem;line-height:1}
.remove-time-btn:hover{color:#c53030}
.remove-time-btn:focus{outline:2px solid rgba(25,118,210,.25);border-radius:4px}

/* Collapsible thumbnails for gallery */
.gallery-toggle{background:none;border:none;color:var(--muted);cursor:pointer;padding:0;font-size:1rem}
.gallery-toggle::after{content:'▾';display:inline-block;margin-left:6px;opacity:.9;transform-origin:center;transition:transform .22s ease}
.gallery-toggle[aria-expanded="true"]::after{transform:rotate(180deg)}
.thumbs-container{margin-top:8px;max-height:0;overflow:hidden;transition:max-height .32s ease,opacity .22s ease;opacity:0}
.thumbs-container[aria-hidden="false"]{max-height:800px;opacity:1}
.muted{color:var(--muted);font-size:.95rem}
.video-wrap{margin-top:.5rem}
.video-wrap video{width:100%;max-height:480px;border-radius:8px;background:#000}
.site-footer{padding:1rem 0;text-align:center;color:var(--muted)}
.bubble{display:inline-block;background:var(--accent-blue);color:#fff;padding:.75rem 1rem;border-radius:999px;margin:1rem 0}
.lightbox{position:fixed;inset:0;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,.8);z-index:1000}
.lightbox img{max-width:90%;max-height:90%;border-radius:6px}
.lightbox .lb-close{position:absolute;top:20px;right:20px;background:transparent;border:none;color:white;font-size:1.5rem;cursor:pointer}
.lightbox[aria-hidden="false"]{display:flex}
/* Ensure media inside the lightbox is centered and captions are readable */
.lightbox img, .lightbox video{margin:0 auto;display:block;max-width:90%;max-height:90%}
.lightbox video{background:#000}
/* Hide per-thumbnail caption elements; captions will appear only in the lightbox */
.gallery-item .lightboxCaption{display:none}

/* Lightbox caption overlay: centered, shadowed box over the bottom of the media; appears on hover */
/* caption box centered over media, above images/videos */
#lbCaption{position:absolute;left:50%;bottom:32px;transform:translateX(-50%) translateY(8px);background:rgba(0,0,0,0.62);color:#fff;padding:.6rem .9rem;border-radius:8px;opacity:0;transition:opacity .28s ease,transform .28s ease;pointer-events:none;max-width:90%;text-align:center;font-size:1rem;box-shadow:0 8px 20px rgba(0,0,0,0.5);z-index:1011}
/* reveal caption when hovering the lightbox container OR the media itself */
.lightbox[aria-hidden="false"]:hover #lbCaption,
.lightbox img:hover ~ #lbCaption,
.lightbox video:hover ~ #lbCaption{
  opacity:1;transform:translateX(-50%) translateY(0);
}
/* also reveal caption when caption-visible class is present (used for click/tap) */
.lightbox.caption-visible #lbCaption{opacity:1;transform:translateX(-50%) translateY(0)}
.about-page .about-hero{background:white;padding:1rem;border-radius:8px;margin:1.25rem 0}
.about-hero-figure{margin:0 0 0.8rem}
.about-hero-figure .team-photo{display:block;margin:0.6rem auto;border-radius:8px;max-width:520px;width:100%;height:auto}
.team-figure{margin-top:0.8rem}
.social-grid{display:flex;gap:12px;flex-wrap:wrap}
.social-btn{display:inline-flex;align-items:center;gap:8px;padding:.5rem 1rem;background:#fff;border:1px solid #eee;border-radius:8px;text-decoration:none;color:#111}
.social-btn svg{opacity:.9}
@media (max-width:600px){.grid img{height:110px}}
@media (max-width:600px){
  /* adjust thumbs grid to 2 columns on small screens for readability */
  #thumbs{grid-template-columns:repeat(2,1fr) !important;grid-auto-rows:110px !important}
}
/* Ensure the feature cards stack vertically on narrow screens for symmetry */
@media (max-width:720px){
  .feature-cards{grid-template-columns:1fr !important;gap:12px}
  .feature-card{width:100%}
}
@media (max-width:800px){
  .contact-form{padding:1rem 0.9rem;max-width:680px}
}

/* Date picker table styles */
.date-picker{background:#fff;padding:.6rem;border-radius:8px;border:1px solid #e9e5df;box-shadow:0 6px 16px rgba(16,24,40,.04)}
.dp-header{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-bottom:.45rem}
/* Make header month/arrow look like calendar date pills */
.dp-header button{background:#f3f4f6;border:1px solid #e6e2dc;padding:.45rem;border-radius:6px;cursor:pointer;display:inline-flex;align-items:center}
.dp-header button:hover{background:#e9eef6}
.dp-header button:focus{outline:2px solid rgba(25,118,210,.15);border-radius:6px}
.dp-header .dp-month{flex:0 0 auto;text-align:center;font-weight:600;margin:0 .5rem;padding:.45rem;border-radius:6px;border:1px solid #e6e2dc;background:#f3f4f6}
.dp-header .dp-month:hover{background:#e9eef6}
.dp-table{width:100%;border-collapse:collapse;margin-top:.25rem;background:#fff}
.dp-table th{padding:.35rem 0;color:var(--muted);font-weight:600;border:1px solid #e6e2dc}
.dp-table td{width:14.2857%;text-align:center;padding:.25rem;border:1px solid #e6e2dc}
.dp-day{width:100%;padding:.45rem;border-radius:6px;border:1px solid transparent;background:transparent;cursor:pointer}
.dp-day:hover{background:#f3f4f6}
.dp-day.selected{background:var(--accent-blue);color:#fff;border-color:rgba(0,0,0,.06)}
.dp-empty{background:transparent}

/* When a background image is applied to the date picker show a translucent calendar so background is visible */
/* When a background image is applied keep a consistent area so the image doesn't jump
  when the month grid changes rows. Use a min-height large enough for a 6-row month.
  On very narrow screens we allow the height to collapse for space reasons. */
.date-picker.has-bg{background-size:cover;background-position:center center;background-repeat:no-repeat;padding-top:8%;padding-bottom:.75rem;padding-left:10%;padding-right:10%;min-height:460px;display:flex;flex-direction:column;justify-content:center}
.date-picker.has-bg .dp-table{background:rgba(255,255,255,0.82);margin-top:.25rem;margin-bottom:.25rem}

/* reduce side padding on very small screens */
@media (max-width:480px){
  .date-picker.has-bg{padding-left:12px;padding-right:12px;min-height:auto;display:block}
}

/* Disabled past dates */
.dp-day--disabled{color:#a0a0a0;background:transparent;border-color:transparent;cursor:not-allowed}
.dp-day--disabled:hover{background:transparent}

/* Time picker styles */
.tp-header{font-weight:600}
#timePicker input[type="time"]{padding:.35rem;border:1px solid #e6e2dc;border-radius:6px}
#timePicker label{font-size:.95rem;margin-right:.25rem}

/* Time picker input wrapper: standard left-to-right order so Start appears left and End appears right */
.tp-time-wrap{display:inline-flex;align-items:center;gap:.5rem}
.tp-time-input{direction:ltr;text-align:left;padding:.35rem;border:1px solid #e6e2dc;border-radius:6px}

/* small non-blocking tooltip that appears near the confirm button */
.tp-tooltip{position:fixed;z-index:2000;background:#232324;color:#fff;padding:.45rem .6rem;border-radius:6px;font-size:.9rem;box-shadow:0 6px 14px rgba(16,24,40,.2);opacity:0;transform:translateY(6px);transition:opacity .22s ease,transform .22s ease}
.tp-tooltip.visible{opacity:1;transform:translateY(0)}

/* small actions area used for Confirm/Cancel buttons placed outside the calendar background */
.dp-actions{margin-top:.5rem;display:flex;gap:.5rem;align-items:center}

/* image fade-in helper used for thumbnails, main carousel image and lightbox */
.img-fade{opacity:0;transition:opacity .6s ease-in-out;will-change:opacity}
.img-fade.loaded{opacity:1}

/* ensure thumbnail images fill their grid cell and allow fade to apply */
#thumbs img.img-fade{width:100%;height:100%;object-fit:cover;display:block}
/* Utility to hide entire gallery/video sections until requested */
.hidden-section{display:none !important}