:root {
    --rs-body: #474448;
    --rs-heading: #18120e;
    --rs-accent: #e87714;
    --rs-panel: #f0ece5;
    --rs-muted: #7e8083;
    --rs-shell: 1230px;
    --rs-pad: 45px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    background: #fff;
    color: var(--rs-body);
    font-family: "Lato", Arial, Helvetica, sans-serif;
    font-size: 14px;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button, input { font: inherit; }
button { cursor: pointer; }
.screen-reader-text {
    position: absolute !important;
    width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

.site-header {
    background: #fff;
    position: relative;
    z-index: 20;
}
.site-header__inner {
    width: min(var(--rs-shell), calc(100% - 40px));
    height: 68px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    position: relative;
}
.site-branding { justify-self: start; }
.site-title {
    font-family: "Prata", Georgia, serif;
    color: var(--rs-heading);
    font-size: 23px;
    line-height: 1;
    white-space: nowrap;
}
.desktop-nav { height: 68px; justify-self: center; }
.main-menu, .footer-menu, .mobile-menu {
    list-style: none;
    padding: 0;
    margin: 0;
}
.main-menu { display: flex; align-items: stretch; height: 68px; }
.main-menu > li { position: relative; height: 68px; }
.main-menu > li > a {
    display: flex;
    align-items: center;
    height: 68px;
    padding: 0 19px;
    color: #53585c;
    font-size: 13px;
    line-height: 1;
    transition: color .18s ease;
}
.main-menu > li > a:hover { color: var(--rs-accent); }
.main-menu > li.current-menu-item::before,
.main-menu > li.current_page_item::before,
.main-menu > li.current-menu-ancestor::before {
    content: "";
    position: absolute;
    top: 0; left: 19px; right: 19px;
    height: 3px;
    background: var(--rs-accent);
}
.main-menu .sub-menu {
    display: none;
    position: absolute;
    top: 68px;
    left: 0;
    min-width: 180px;
    list-style: none;
    padding: 8px 0;
    margin: 0;
    background: white;
    box-shadow: 0 8px 24px rgba(0,0,0,.08);
}
.main-menu li:hover > .sub-menu { display: block; }
.main-menu .sub-menu a { display: block; padding: 9px 16px; }
.header-actions {
    justify-self: end;
    display: flex;
    align-items: center;
    gap: 13px;
}
.social-icons { display: flex; gap: 14px; align-items: center; }
.social-icon {
    width: 14px;
    height: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #53585c;
}
.social-icon svg, .icon-button svg { width: 100%; height: 100%; fill: currentColor; }
.social-icon:hover { color: var(--rs-accent); }
.icon-button {
    width: 17px;
    height: 17px;
    padding: 0;
    border: 0;
    background: transparent;
    color: #53585c;
}
.menu-toggle { display: none; width: 21px; height: 21px; }
.header-search {
    position: absolute;
    right: 0;
    top: 58px;
    background: white;
    padding: 10px;
    box-shadow: 0 8px 26px rgba(0,0,0,.12);
    width: 260px;
}
.header-search form { display: flex; border: 1px solid #ddd; }
.header-search input { flex: 1; min-width: 0; border: 0; outline: none; padding: 8px 10px; }
.header-search button { width: 36px; border: 0; background: transparent; color: #53585c; padding: 9px; }
.mobile-nav {
    width: min(var(--rs-shell), calc(100% - 40px));
    margin: 0 auto 12px;
    border-top: 1px solid #eee;
}
.mobile-menu a { display: block; padding: 11px 4px; border-bottom: 1px solid #eee; }

.site-main { min-height: 300px; }
.site-frame {
    width: min(var(--rs-shell), calc(100% - 40px));
    margin: 0 auto;
    background: var(--rs-panel);
}

.front-panel {
    padding: 30px var(--rs-pad) 65px;
}
.hero-slider {
    position: relative;
    overflow: hidden;
    width: 100%;
    aspect-ratio: 1180 / 600;
    background: #ddd;
}
.hero-slider__track, .hero-slide { position: absolute; inset: 0; margin: 0; }
.hero-slide {
    opacity: 0;
    visibility: hidden;
    transition: opacity .65s ease, visibility .65s ease;
}
.hero-slide.is-active { opacity: 1; visibility: visible; }
.hero-slide img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hero-slider__dots {
    position: absolute;
    left: 50%;
    bottom: 18px;
    transform: translateX(-50%);
    display: flex;
    gap: 4px;
    z-index: 3;
}
.slider-dot {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    padding: 0;
    border: 1px solid rgba(255,255,255,.65);
    background: rgba(188,188,188,.8);
}
.slider-dot.is-active { background: rgba(112,112,112,.9); }
.front-contact { margin-top: 39px; }
.front-contact h1 {
    margin: 0 0 16px;
    font-family: "Prata", Georgia, serif;
    font-weight: 400;
    color: var(--rs-heading);
    font-size: 29px;
    line-height: 1.25;
}
.front-contact p { margin: 0; font-size: 15px; }

.page-panel {
    padding: 24px var(--rs-pad) 56px;
}
.reporting-panel { min-height: 765px; }
.video-panel { min-height: 850px; }
.about-panel { min-height: 435px; }
.generic-panel, .archive-panel, .single-panel { min-height: 500px; }
.breadcrumb {
    display: flex;
    gap: 6px;
    align-items: center;
    margin: 0 0 11px;
    color: #838589;
    font-size: 10.5px;
    line-height: 1.4;
}
.breadcrumb a:hover { color: var(--rs-accent); }
.page-title {
    margin: 0 0 22px;
    font-family: "Prata", Georgia, serif;
    font-size: 40px;
    font-weight: 400;
    line-height: 1.18;
    color: var(--rs-heading);
}
.page-content { color: var(--rs-body); }
.page-content a { color: var(--rs-accent); }
.page-content p { margin: 0 0 17px; }
.reporting-content { font-size: 14px; line-height: 1.75; }
.reporting-content p { margin: 0 0 9px; }
.reporting-content strong { color: #282828; }
.about-content {
    font-family: "Lora", Georgia, serif;
    font-size: 15.5px;
    line-height: 1.42;
    color: #3f3b38;
}
.about-content p { margin: 0 0 19px; }

.video-playlist {
    width: 100%;
    display: grid;
    grid-template-columns: minmax(0, 2.12fr) minmax(250px, 1fr);
    background: #111;
    color: white;
}
.video-main { aspect-ratio: 16 / 9; background: #000; }
.video-main iframe { display: block; width: 100%; height: 100%; border: 0; }
.video-list {
    min-height: 100%;
    background: #161616;
    display: flex;
    min-width: 0;
    flex-direction: column;
    overflow: hidden;
}
.video-list__now {
    background: var(--rs-accent);
    padding: 12px 14px 10px;
    min-height: 58px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    line-height: 1.25;
}
.video-list__now small { display: block; font-size: 10px; margin-bottom: 2px; }
.video-list__now strong {
    display: block;
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.video-list__items { overflow: auto; max-height: 407px; }
.video-item {
    width: 100%;
    border: 0;
    border-bottom: 1px solid #2d2d2d;
    background: #161616;
    color: #fff;
    text-align: left;
    display: grid;
    grid-template-columns: 86px 1fr;
    gap: 12px;
    padding: 9px 12px;
    align-items: center;
}
.video-item:hover, .video-item.is-active { background: #242424; }
.video-item.is-active .video-thumb { outline: 2px solid var(--rs-accent); outline-offset: -2px; }
.video-thumb { display: block; aspect-ratio: 16 / 9; overflow: hidden; background: #333; }
.video-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.video-item__text strong {
    font-size: 10.5px;
    line-height: 1.35;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.archive-item { padding: 18px 0; border-bottom: 1px solid rgba(0,0,0,.08); }
.archive-item h2 { font-family: "Prata", Georgia, serif; font-weight: 400; margin: 0 0 8px; }
.archive-item h2 a:hover { color: var(--rs-accent); }
.single-content { font-family: "Lora", Georgia, serif; font-size: 16px; }

.site-footer {
    width: min(var(--rs-shell), calc(100% - 40px));
    margin: 0 auto;
    background: #fff;
    text-align: center;
    overflow: hidden;
}
.site-footer__inner { padding-top: 45px; }
.footer-social-title {
    font-family: "Lora", Georgia, serif;
    font-weight: 700;
    font-size: 13px;
    text-decoration: underline;
    color: #494541;
    margin-bottom: 24px;
}
.social-icons--footer { justify-content: center; gap: 10px; }
.social-icons--footer .social-icon {
    width: 32px;
    height: 32px;
    padding: 10px;
    background: #e6e6e6;
    color: #71767a;
}
.social-icons--footer .social-icon:hover { color: var(--rs-accent); }
.footer-badge {
    display: inline-block;
    margin-top: 60px;
    padding: 2px 5px;
    background: #fff0df;
    color: #695e55;
    font-size: 8px;
    line-height: 1.5;
}
.footer-nav { margin-top: 44px; }
.footer-menu { display: flex; justify-content: center; gap: 24px; flex-wrap: wrap; }
.footer-menu a {
    color: #4c4b4a;
    font-size: 11px;
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: .02em;
}
.footer-menu a:hover { color: var(--rs-accent); }
.site-copyright {
    margin-top: 27px;
    font-family: "Lora", Georgia, serif;
    color: #77716c;
    font-size: 11px;
}
.footer-mountain {
    width: 100%;
    height: 225px;
    margin-top: 35px;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center top;
}

@media (max-width: 980px) {
    :root { --rs-pad: 28px; }
    .site-header__inner { grid-template-columns: 1fr auto; }
    .desktop-nav { display: none; }
    .header-actions .social-icons { display: none; }
    .menu-toggle { display: inline-flex; }
    .front-panel { padding-top: 28px; }
    .video-playlist { grid-template-columns: 1fr; }
    .video-list__items { max-height: 320px; }
    .video-item { grid-template-columns: 105px 1fr; }
}

@media (max-width: 640px) {
    :root { --rs-pad: 18px; }
    body { font-size: 14px; }
    .site-header__inner, .site-frame, .site-footer, .mobile-nav { width: calc(100% - 24px); }
    .site-header__inner { height: 60px; }
    .site-title { font-size: 20px; }
    .front-panel { padding-top: 18px; padding-bottom: 40px; }
    .front-contact { margin-top: 27px; }
    .front-contact h1 { font-size: 25px; }
    .page-panel { padding-top: 20px; padding-bottom: 38px; min-height: 0; }
    .page-title { font-size: 34px; margin-bottom: 18px; }
    .about-content { font-size: 15px; }
    .video-item { grid-template-columns: 88px 1fr; }
    .site-footer__inner { padding-top: 38px; }
    .footer-badge { margin-top: 45px; }
    .footer-nav { margin-top: 34px; }
    .footer-menu { gap: 16px; }
    .footer-mountain { height: 150px; margin-top: 28px; background-size: cover; }
}
