:root{
  color-scheme:light;
}
* {
  box-sizing:border-box;
}

body{
  margin:0;
  font-family: Roboto,'Helvetica Neue',system-ui,-apple-system,Segoe UI,Ubuntu,Helvetica,Arial,sans-serif;
  line-height:1.6;
  font-size: 1rem;
  color:#1a1a1a;
  background:#fff;
  min-height:100vh;
  display:flex;
  flex-direction:column;
}

a{color:inherit;text-decoration:underline;}
img{max-width:100%;height:auto;}
figure{margin:16px 0;display:flex;justify-content:center;}
figure img{max-width:100%;height:auto;}
main{display:block;padding:0;flex:1 0 auto;}
article{margin:0 auto;}
.content-section{max-width:960px;margin:0 auto;padding:0 24px;}
.content-section--full{max-width:none;width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);padding:0;}
.content-section--full > *{margin:0;}
.cms-styled-block{padding:24px;margin:0;font-weight:600;text-align:center;}

.columns{background:transparent;display:grid;grid-template-columns:repeat(var(--columns-count,2), minmax(0,1fr));gap:0;}
.columns__column{min-width:0;padding:3rem;display:flex;align-items:center;justify-content:center;}
.columns__content{width:100%;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;}
.columns__column--media{padding:0;min-height:400px;max-height:400px;height:400px;flex-grow:0;}
.columns__media{margin:0;height:100%;width:100%;display:flex;flex-direction:column;}
.columns__media img,.columns__media-img{width:100%;height:100%;object-fit:cover;display:block;cursor:pointer;}
.columns__media figcaption{padding:0.5rem 1rem;font-size:0.9rem;}
@media (max-width: 1024px){
  .columns{grid-auto-rows:400px;}
  .columns__column{padding:2rem;overflow:auto;}
  .columns__column--media{padding:0;min-height:0;max-height:none;height:auto;flex-grow:0;}
}
@media (max-width: 768px){
  .columns{grid-template-columns:1fr;grid-auto-rows:auto;}
  .columns__column{padding:1.5rem;overflow:visible;}
  .columns__column--media{padding:0;min-height:400px;max-height:400px;height:400px;flex-grow:0;}
}

.gallery{margin:24px 0;}
.gallery__grid{display:grid;gap:16px;grid-template-columns:repeat(var(--gallery-columns,3), minmax(0,1fr));grid-auto-rows:1fr;list-style:none;margin:0;padding:0;}
.gallery__item{aspect-ratio:4/3;}
.gallery__item figure{margin:0;width:100%;height:100%;position:relative;overflow:hidden;}
.gallery__item img{width:100%;height:100%;object-fit:cover;border:0.5px solid rgba(0,0,0,0.12);display:block;}
.gallery__caption{position:absolute;left:0;right:0;bottom:0;padding:6px 8px;font-size:0.85rem;line-height:1.2;color:#fff;background:rgba(0,0,0,0.6);opacity:0;transition:opacity 150ms ease-in-out;overflow:hidden;white-space:nowrap;pointer-events:auto;}
.gallery__caption-text{display:inline-block;white-space:nowrap;will-change:transform;}
.gallery__item:hover .gallery__caption,.gallery__item:focus-within .gallery__caption{opacity:1;}
@media (max-width: 1024px){
  .gallery__caption{opacity:1;top:0;bottom:auto;}
}
@media (max-width: 1024px){
  .gallery__grid{grid-template-columns:repeat(2, minmax(0,1fr));}
}
@media (max-width: 768px){
  .gallery__grid{grid-template-columns:1fr;}
}

/* Header / main nav */
.site-header{position:sticky;top:0;background:#fff;border-bottom:1px solid #eee;z-index:10;height:100px;}
.main-nav{max-width:960px;margin:0 auto;padding:0 24px;display:flex;align-items:stretch;gap:24px;height:100%;position:relative;}
.main-nav__desktop{margin-left:auto;}
.main-nav__logo{display:flex;align-items:center;height:100%;flex:0 0 auto;}
.main-nav__logo img{height:100px;width:auto;max-height:none;display:block;}
.main-nav__list{list-style:none;display:flex;gap:0;margin:0;padding:0;align-items:stretch;height:100%;}
.main-nav__link{text-decoration:none;color:inherit;font-weight:600;padding:0 16px;border-radius:0;transition:background-color 150ms ease-in-out;display:flex;align-items:center;height:100%;min-height:56px;}
.main-nav__link.is-active{background:#e0e0e0;}
@media (min-width: 769px){
  .main-nav__link:hover{background:#e0e0e0;}
}
.main-nav__mobile{display:none;}
.main-nav__toggle{list-style:none;cursor:pointer;font-weight:600;height:100%;display:flex;align-items:center;}
.main-nav__toggle::-webkit-details-marker{display:none;}

/* Footer */
.site-footer{border-top:1px solid #eee;padding:16px 24px;margin-top:auto;background:#fafafa;}
.site-footer nav{max-width:960px;margin:0 auto;}
.site-footer__list{list-style:none;display:flex;flex-wrap:wrap;gap:16px;margin:0;padding:0;justify-content:center;align-items:center;}
.site-footer__list a{text-decoration:underline;color:inherit;}

/* Preview badge */
.preview-badge{position:fixed;z-index:2000;background:rgba(255,255,255,0.95);border:1px solid #111;padding:8px 12px;font-size:0.85rem;cursor:pointer;}
.preview-badge--tl{top:12px;left:12px;}
.preview-badge--tr{top:12px;right:12px;}
.preview-badge--br{bottom:12px;right:12px;}
.preview-badge--bl{bottom:12px;left:12px;}

/* Generic responsive layout helpers */
.layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:24px;align-items:start;}
.layout__content{min-width:0;}
.layout__sidebar{min-width:0;}

@media (max-width: 1024px){
  .layout{grid-template-columns:minmax(0,1fr) 260px;}
}

@media (max-width: 768px){
  .content-section{padding:0 16px;}
  .content-section--full{padding:0;margin:0;width:100vw;}
  .layout{grid-template-columns:1fr;}
  .layout__sidebar{order:2;}
  .layout__content{order:1;}
  .main-nav{padding:0 16px;flex-wrap:nowrap;justify-content:space-between;}
  .main-nav__logo{flex:0 0 auto;max-width:none;}
  .main-nav__logo img{height:100px;width:auto;object-fit:contain;}
  .main-nav__desktop{display:none;}
  .main-nav__mobile{display:block;flex:0 0 auto;margin-left:auto;position:static;}
  .main-nav__toggle{justify-content:flex-end;}
  .main-nav__backdrop{position:fixed;inset:100px 0 0 0;background:rgba(0,0,0,0.3);opacity:0;pointer-events:none;transition:opacity 200ms ease;}
  .main-nav__overlay{position:fixed;top:100px;right:0;bottom:0;width:62vw;max-width:420px;background:rgba(255,255,255,0.98);padding:24px 0;overflow:auto;box-shadow:-16px 0 32px rgba(0,0,0,0.15);transform:translateX(100%);opacity:0;transition:transform 240ms ease, opacity 200ms ease;}
  .main-nav__mobile[open] .main-nav__overlay{transform:translateX(0);opacity:1;}
  .main-nav__mobile[open] .main-nav__backdrop{opacity:1;pointer-events:auto;}
  .main-nav__list{flex-direction:column;gap:0;margin-top:0;}
  .main-nav__list li{border-bottom:0.5px solid rgba(0,0,0,0.1);}
  .main-nav__list li:last-child{border-bottom:none;}
  .main-nav__link{width:100%;justify-content:space-between;}
  .main-nav__link::after{content:'›';opacity:0.6;}
  .site-footer{padding:16px;}
  .site-footer__list{flex-direction:column;gap:8px;align-items:center;text-align:center;}
}
