/* ==========================================================================
   Content / Service / Location pages
   ========================================================================== */
.page-hero { background: radial-gradient(120% 130% at 78% 0, var(--teal-700), var(--teal-900)); color:#eafafb; padding-block: 1rem clamp(2.5rem,2rem+3vw,4rem); }
.page-hero .breadcrumbs { color:#9fc6c9; }
.page-hero .breadcrumbs a { color:#cfe6e8; }
.page-hero .breadcrumbs .bc-cur { color:#fff; }
.page-hero__eyebrow { color:var(--teal-300); margin-top:1rem; }
.page-hero h1 { color:#fff; margin-top:.8rem; max-width:20ch; }
.page-hero__lede { color:#bfe0e3; font-size:var(--step-1); max-width:62ch; margin-top:1rem; }
.page-hero__cta { margin-top:1.8rem; display:flex; gap:.7rem; flex-wrap:wrap; }

/* Two-column content + rail */
.content-layout { display:grid; gap:2.5rem; grid-template-columns:1fr; }
@media (min-width:940px){ .content-layout{ grid-template-columns: minmax(0,1fr) 320px; align-items:start; } }

/* Prose */
.prose { max-width:75ch; }
.prose > *:first-child { margin-top:0; }
.prose h2 { font-size:var(--step-2); margin:2.2rem 0 .8rem; }
.prose h3 { font-size:var(--step-1); margin:1.8rem 0 .6rem; }
.prose h4 { font-size:1.1rem; margin:1.4rem 0 .5rem; font-family:var(--font-display); }
.prose p { margin:0 0 1.1rem; color:var(--ink); }
.prose ul, .prose ol { margin:0 0 1.2rem; padding-left:1.3rem; }
.prose li { margin-bottom:.5rem; }
.prose ul li::marker { color:var(--teal-500); }
.prose a { color:var(--teal-600); text-decoration:underline; text-underline-offset:2px; text-decoration-color:var(--teal-300); }
.prose a:hover { text-decoration-color:var(--teal-600); }
.prose img { border-radius:var(--radius); margin:1.5rem 0; box-shadow:var(--shadow); }
.prose strong { color:var(--ink); font-weight:600; }
.prose blockquote { border-left:4px solid var(--teal-500); background:var(--teal-50); margin:1.5rem 0; padding:1rem 1.3rem; border-radius:0 12px 12px 0; font-style:italic; color:var(--teal-700); }
.prose table { width:100%; border-collapse:collapse; margin:1.5rem 0; font-size:.95rem; }
.prose th, .prose td { border:1px solid var(--line); padding:.7rem .9rem; text-align:left; }
.prose th { background:var(--teal-50); font-family:var(--font-display); font-weight:600; color:var(--teal-700); }
.prose tr:nth-child(even) td { background:var(--mist); }
.prose figure { margin:1.5rem 0; }
.prose figcaption { font-size:.85rem; color:var(--slate); text-align:center; margin-top:.5rem; }
.prose hr { border:0; border-top:1px solid var(--line); margin:2rem 0; }

/* Sidebar rail */
.content-rail { display:grid; gap:1.2rem; position:sticky; top:90px; }
@media (max-width:939px){ .content-rail{ position:static; } }
.rail-card { background:var(--mist); border:1px solid var(--line); border-radius:var(--radius-lg); padding:1.5rem; }
.rail-card h3 { font-size:var(--step-1); }
.rail-card h4 { font-family:var(--font-display); font-size:1rem; margin-bottom:.8rem; }
.rail-card p { color:var(--slate); font-size:.92rem; margin:.5rem 0 1.1rem; }
.rail-call { text-align:center; margin-top:.9rem; font-family:var(--font-display); font-weight:600; }
.rail-call a { color:var(--teal-700); }
.rail-services ul { list-style:none; display:grid; gap:.55rem; }
.rail-services a { color:var(--ink); font-size:.94rem; }
.rail-services a:hover { color:var(--teal-600); }

/* Blog */
.blog-grid { display:grid; gap:var(--gap); grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); }
.post-card { background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; display:flex; flex-direction:column; transition:.18s; }
.post-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-lg); }
.post-card__img { aspect-ratio:16/10; object-fit:cover; width:100%; background:var(--teal-50); }
.post-card__body { padding:1.3rem; display:flex; flex-direction:column; flex:1; }
.post-card__date { font-size:.82rem; color:var(--teal-500); font-family:var(--font-display); font-weight:500; }
.post-card h3 { font-size:1.15rem; margin:.4rem 0 .6rem; line-height:1.25; }
.post-card h3 a { color:var(--ink); }
.post-card h3 a:hover { color:var(--teal-600); }
.post-card p { color:var(--slate); font-size:.92rem; flex:1; }
.post-card__link { margin-top:.9rem; font-family:var(--font-display); font-weight:600; color:var(--teal-600); font-size:.9rem; }

/* Blog post */
.post-hero { background:radial-gradient(120% 130% at 78% 0,var(--teal-700),var(--teal-900)); color:#eafafb; padding-block:1rem clamp(2rem,1.5rem+2vw,3rem); }
.post-hero h1 { color:#fff; max-width:24ch; margin-top:.8rem; }
.post-hero .meta { color:#9fc6c9; font-family:var(--font-display); font-size:.9rem; margin-top:1rem; }
.post-body { max-width:760px; margin-inline:auto; }

.video-embed { margin:1.5rem 0; }
.video-embed iframe { width:100%; aspect-ratio:16/9; border:0; border-radius:14px; box-shadow:var(--shadow); }

/* ==========================================================================
   Gallery + lightbox
   ========================================================================== */
.gallery-intro { max-width:60ch; }
.gallery-tabs { display:flex; flex-wrap:wrap; gap:.6rem; margin:1.8rem 0; }
.gallery-tab { border:1.5px solid var(--line); background:#fff; border-radius:999px; padding:.5rem 1.1rem;
  font-family:var(--font-display); font-weight:500; font-size:.92rem; cursor:pointer; transition:.15s; color:var(--ink); }
.gallery-tab:hover { border-color:var(--teal-300); }
.gallery-tab.active { background:var(--teal-600); color:#fff; border-color:var(--teal-600); }

.gallery-grid { display:grid; gap:.9rem; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); }
.gallery-item { position:relative; border-radius:var(--radius); overflow:hidden; cursor:pointer; aspect-ratio:4/3;
  box-shadow:var(--shadow); background:var(--teal-50); }
.gallery-item img { width:100%; height:100%; object-fit:cover; transition:transform .3s ease; }
.gallery-item:hover img { transform:scale(1.05); }
.gallery-item__tag { position:absolute; top:.6rem; left:.6rem; z-index:2; background:rgba(6,52,58,.82); color:#fff;
  font-family:var(--font-display); font-weight:600; font-size:.72rem; letter-spacing:.06em; text-transform:uppercase;
  padding:.3rem .7rem; border-radius:999px; backdrop-filter:blur(4px); }
.gallery-item__tag.after { background:var(--accent); color:var(--teal-900); }
.gallery-item.hide { display:none; }

/* Lightbox */
.lightbox { position:fixed; inset:0; background:rgba(4,28,32,.94); z-index:200; display:none; align-items:center; justify-content:center; padding:2rem; }
.lightbox.open { display:flex; }
.lightbox img { max-width:92vw; max-height:86vh; border-radius:var(--radius); box-shadow:var(--shadow-lg); }
.lightbox__close { position:absolute; top:1.2rem; right:1.6rem; background:none; border:0; color:#fff; font-size:2.4rem; cursor:pointer; line-height:1; }
.lightbox__nav { position:absolute; top:50%; transform:translateY(-50%); background:rgba(255,255,255,.12); border:0; color:#fff;
  width:54px; height:54px; border-radius:50%; font-size:1.6rem; cursor:pointer; transition:.15s; }
.lightbox__nav:hover { background:var(--teal-600); }
.lightbox__nav.prev { left:1.5rem; } .lightbox__nav.next { right:1.5rem; }
.lightbox__cap { position:absolute; bottom:1.4rem; left:0; right:0; text-align:center; color:#cfe6e8; font-family:var(--font-display); font-size:.92rem; }
@media (max-width:600px){ .lightbox__nav{width:44px;height:44px;} }
