:root{
  --bg:#181b21;
  --surface:#181b21;
  --surface-2:#1d2128;
  --surface-3:#242932;
  --line:#303641;
  --line-soft:#292e37;
  --text:#f1f3f5;
  --muted:#9da6b2;
  --muted-2:#737d89;
  --accent:#5e8fdc;
  --accent-soft:#233754;
  --good:#5bbd87;
  --danger:#d26d6d;
  --shadow:0 18px 50px rgba(0,0,0,.22);
  --radius:10px;
}
*{box-sizing:border-box}
html
{
	scroll-behavior:smooth
	}
body
{
	margin:0;background:var(--bg);
	color:var(--text);
	font-family:Arial,"Segoe UI",sans-serif;
	font-size:15px;
	line-height:1.55
	}
a
{
	color:inherit;
	text-decoration:none
	}

a {
    color: #f1f3f5;
    text-decoration: none;
    position: relative;
    transition: color 0.2s ease;
}

a:hover {
    color: #ff4545;
}

a:not(.nav-link):not(.play-button)::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -3px;

    width: 0;
    height: 1px;

    background: #ff4545;
    transition: width 0.2s ease;
}

a:not(.nav-link):not(.play-button):hover::after {
    width: 100%;
}


.download-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    justify-content: center;
    color: #fff;
    text-decoration: none;
    transition: color .2s ease;
}

.download-link:hover {
    color: #ff4545;
}

.download-link svg {
    flex-shrink: 0;
}

button,input
{
	font:inherit
	}
.site-shell
{
	width:min(1560px,calc(100% - 40px));
	margin:0 auto;
	display:grid;
	grid-template-columns:250px minmax(0,1fr) 300px;
	gap:18px;
	align-items:start;
	padding:22px 0 40px
	}
.left-rail
{
	position:relative;
	align-self:start;
	min-height:calc(100vh - 44px)
	}
.left-rail__inner
{
	position:fixed;
	top:22px;
	width:250px;
	height:calc(100vh - 44px);
	min-height:0;
	display:flex;
	flex-direction:column;
	overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable
	}
.rail-card,.content-card
{
	background:var(--surface);
	border:1px solid var(--line);
	border-radius:var(--radius);
	box-shadow:var(--shadow)
	}
.rail-card
{
	padding:18px
	}
.rail-title,.widget-kicker,.rail-label,.eyebrow
{
	font-size:11px;
	font-weight:800;
	letter-spacing:.14em;
	text-transform:uppercase;
	color:var(--muted)
	}
.rail-title
{
	padding:1px 8px 15px
	}
.main-nav
{
	display:flex;
	flex-direction:column;
	gap:4px
	}
.nav-link
{
	min-height:45px;
	display:grid;
	grid-template-columns:28px 1fr auto;
	align-items:center;gap:8px;
	padding:0 10px;
	border-radius:7px;
	color:#cbd1d8;
	font-weight:650;
	transition:.18s ease
	}
.nav-link:hover
{
	background:var(--surface-3);
	color:#fff
	}
.nav-link.is-active
{
	background:#262c35;
	color:#fff;
	box-shadow:inset 3px 0 0 var(--accent)
	}
.nav-icon
{
	width:23px;
	text-align:center;
	color:#85909e;
	font-size:14px;
	font-weight:900
	}
.nav-link.is-active .nav-icon
{
	color:#b7c9e8
	}
.nav-badge
{
	min-width:26px;
	padding:2px 7px;
	border-radius:999px;
	background:#242c37;
	color:#b9c6d6;
	font-size:11px;
	text-align:center
	}
.status-dot
{
	width:8px;
	height:8px;
	border-radius:50%;
	background:#5b626c;box-shadow:0 0 0 3px rgba(91,98,108,.09)
	}
.status-dot.is-online
{
	background:var(--good);
	box-shadow:0 0 0 3px rgba(91,189,135,.1)
	}
.rail-divider
{
	height:1px;
	background:var(--line-soft);
	margin:18px 8px
	}
.rail-section
{
	padding:0 8px
	}
.rail-label
{
	margin-bottom:10px
	}
.quiet-link
{
	display:block;
	color:var(--muted);
	padding:6px 0
	}
.quiet-link:hover
{
	color:#fff
	}
.rail-footer
{
	margin-top:auto;
	padding:20px 8px 0;color:var(--muted-2);
	font-size:12px;
	display:flex;
	align-items:center;gap:8px
	}
.rail-footer__dot
{
	width:6px;
	height:6px;
	border-radius:50%;
	background:var(--good)
	}
.main-column
{
	min-width:0
	}
.site-header
{
	text-align:center;
	padding:8px 0 22px
	}
.brand
{
	display:inline-flex;
	flex-direction:column;
	align-items:center;
	line-height:.9
	}
.brand-main
{
	font-size:48px;
	letter-spacing:-.06em;
	font-weight:900;
	color:#f6f7f8
	}
.brand-sub
{
	margin-top:8px;
	font-size:12px;
	letter-spacing:.34em;font-weight:800;color:#aab2bc
	}
.brand-tagline
{
	margin-top:11px;
	color:var(--muted-2);
	font-size:12px
	}
.content-card
{
	padding:28px 30px;
	min-height:720px
	}
.page-head
{
	max-width:780px;
	padding:6px 0 26px;
	border-bottom:1px solid var(--line-soft)
	margin-bottom:26px
	}
.page-head--compact
{
	padding-top:0
	}
.page-head h1
{
	font-size:34px;
	line-height:1.15;
	margin:7px 0 12px;letter-spacing:-.025em
	}
.page-head p
{
	margin:0;
	color:#b5bcc5;
	max-width:760px
	}
.eyebrow
{
	color:#7f9fc9
	}
.service-grid
{
	display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px
	}
.service-card
{
	position:relative;
	border:1px solid var(--line-soft);
	background:var(--surface-2);
	border-radius:8px;
	padding:22px;
	min-height:185px;
	transition:.18s ease
	}
.service-card:hover
{
	border-color:#445061;
	background:#20252d;
	transform:translateY(-1px)
	}
.service-card__index
{
	font-size:11px;
	color:#75808d;
	font-weight:800
	}
.service-card h2
{
	font-size:20px;
	margin:20px 0 8px
	}
.service-card p
{
	color:var(--muted);
	margin:0 0 22px
	}
.service-card__cta
{
	font-size:12px;
	color:#b4c8e7;
	font-weight:800
	}
.section-block
{
	margin-top:30px;
	padding-top:25px;
	border-top:1px solid var(--line-soft)
	}
.section-heading
{
	display:flex;
	align-items:center;
	justify-content:space-between;
	margin-bottom:15px
	}
.section-heading h2
{
	margin:0;
	font-size:19px
	}
.section-heading span
{
	font-size:11px;
	color:var(--muted-2);
	text-transform:uppercase;
	letter-spacing:.12em
	}
.metric-row
{
	display:grid;
	grid-template-columns:repeat(3,1fr);
	gap:12px
	}
.metric
{
	padding:18px;
	border:1px solid var(--line-soft);
	border-radius:8px;
	background:#15181d
	}
.metric__label
{
	display:block;
	color:var(--muted);
	font-size:12px
	}
.metric strong
{
	display:block;
	font-size:28px;
	margin-top:4px
	}
.right-rail
{
	display:flex;
	flex-direction:column;
	gap:14px;
	padding-top:86px
	}
.side-widget
{
	box-shadow:none
	}
.listener-total
{
	display:flex;
	align-items:baseline;
	gap:10px;
	margin-top:10px
	}
.listener-total strong
{
	font-size:14px;
	line-height:1
	}
.listener-total span
{
	color:#b8c0c9;
	font-size:13px
	}
.listener-note,.small-copy
{
	color:var(--muted);
	font-size:12px
	}
.service-status-list
{
	margin-top:12px
	}
.service-status-list>div
{
	display:flex;
	justify-content:space-between;
	align-items:center;
	padding:9px 0;
	border-top:1px solid var(--line-soft);
	font-size:13px
	}
.service-status-list>div:first-child
{
	border-top:0
	}
.service-status-list b
{
	font-size:11px;
	color:#8d96a0
	}
.service-status-list b.is-online
{
	color:var(--good)
	}
.notice-placeholder
{
	margin-top:12px;
	min-height:116px;
	border:1px dashed #3a414c;
	border-radius:7px;
	display:flex;
	align-items:center;
	justify-content:center;
	text-align:center;
	padding:18px;
	color:#747e89;
	font-size:12px
	}
.site-footer
{
	padding:18px 4px 0;
	color:#616a75;
	grid-column: 1 / 4;
    	width: 100%;
	font-size:11px;
	text-align:center
	}
.radio-list
{
	display:flex;
	flex-direction:column;
	gap:14px
	}
.radio-station {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(230px, 1fr);
    gap: 24px;

    padding: 18px;
    margin-bottom: 18px;

    background: rgba(255, 255, 255, 0.025);
    border: 1px solid rgba(255, 255, 255, 0.09);
    border-radius: 10px;

    box-shadow:
        0 1px 0 rgba(255,255,255,0.02) inset,
        0 8px 24px rgba(0,0,0,0.08);
}

.radio-station {
    transition:
        background-color 0.2s ease,
        border-color 0.2s ease;
}

.radio-station:hover {
    background: rgba(255, 255, 255, 0.035);
    border-color: rgba(255, 255, 255, 0.14);
}

.radio-list {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.radio-station__main {
    display: grid;
    grid-template-columns: 132px minmax(0, 1fr);
    gap: 20px;
    min-width: 0;
}

.radio-station__body {
    min-width: 0;
}
.radio-station.is-offline
{
	opacity:.62
	}
.radio-art
{
	width:132px;
	height:132px;
	border-radius:7px;
	overflow:hidden;
	background:#121419;
	border:1px solid #313742;
	display:grid;place-items:center
	}
.radio-art img
{
	width:100%;
	height:100%;
	object-fit:cover
	}
.radio-art__placeholder
{
	font-weight:900;
	letter-spacing:-.06em;
	font-size:30px;
	color:#e4e7ea
	}
.station-topline
{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:12px
	}
.live-pill,.status-chip
{
	font-size:10px;
	font-weight:900;
	letter-spacing:.08em;
	border-radius:4px;
	padding:3px 7px;
	background:#27322d;
	color:#7ad6a1
	}
.station-listeners
{
	font-size:12px;
	color:var(--muted)
	}
.radio-station h2
{
	margin:12px 0 8px;
	font-size:12px
	}
.track-title
{
	font-weight:800;
	font-size:16px
	}
.track-artist
{
	color:var(--muted);
	font-size:13px;
	margin-top:2px
	}
.track-progress
{
	height:4px;
	background:#343a44;
	margin-top:18px;
	border-radius:999px;
	overflow:hidden
	}
.track-progress span
{
	display:block;
	height:100%;
	width:0;
	background:#7b96bb
	}
.station-actions
{
	display:flex;
	gap:10px;
	align-items:center;
	margin-top:17px
	}
.play-button,.text-button
{
	height:38px;
	border-radius:6px;
	border:1px solid #3b4655;
	background:#2a3442;
	color:#f5f7f9;
	padding:0 17px;
	font-weight:800;
	font-size:12px;
	cursor:pointer
	}
.play-button:hover
{
	background:#334154
	}
.text-button
{
	display:inline-flex;
	align-items:center;
	background:transparent;
	color:#aeb8c5
	}
.text-button:hover
{
	color:#fff;
	border-color:#4b5563
	}
.data-panel
{
	border:1px solid var(--line-soft);
	border-radius:8px;
	background:var(--surface-2);
	padding:20px
	}
.loading-line,.empty-state
{
	color:var(--muted);
	font-size:13px
	}
.panel-status
{
	margin-bottom:15px
	}
.status-chip
{
	display:inline-block;
	background:#332526;
	color:#df8b8b
	}
.status-chip.is-online
{
	background:#243329;
	color:#7bd6a3
	}
.data-row
{
	display:flex;
	justify-content:space-between;
	gap:20px;
	padding:11px 0;
	border-top:1px solid var(--line-soft)
	}
.data-row span
{
	color:var(--muted)
	}
.data-row strong
{
	text-align:right
	}
.sub-table,.player-table
{
	margin-top:20px;
	border-top:1px solid var(--line)
	}
.sub-table__head,.player-table__head
{
	padding:12px 0;
	color:#d8dde3;
	font-weight:800
	}
.player-table__head,.player-table>div
{
	display:grid;
	grid-template-columns:1fr 80px
	}
.player-table>div
{
	padding:9px 0;
	border-top:1px solid var(--line-soft)
	}
.player-table strong
{
	text-align:right
	}
.panel-error
{
	margin-top:18px;
	padding:10px;
	border-radius:6px;
	background:#2d2224;
	color:#d88d92;
	font-size:12px
	}
	
.visitor-counter {
    display: flex;
    flex-wrap: wrap;
	justify-content: center;
    gap: 8px 14px;

    padding: 12px 14px;

    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.10em;
    text-transform: uppercase;

    color: var(--muted);
    border-top: 1px solid var(--border);
}

.visitor-counter span {
    white-space: nowrap;
}

.visitor-counter span + span::before {
    content: "•";
    margin-right: 14px;
    color: #4fbf91;
}	


/* =========================================================
   CONTACTS
   ========================================================= */

.contact-card {
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
    gap: 0;

    width: 100%;
    margin-top: 22px;

    overflow: hidden;

    background: #1b1f25;
    border: 1px solid #343b46;
    border-radius: 10px;
}


/* LEFT SIDE
   --------------------------------------------------------- */

.contact-card__identity {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    min-height: 390px;
    padding: 32px 24px;

    text-align: center;

    background:
        radial-gradient(
            circle at 50% 40%,
            rgba(100, 160, 255, 0.08),
            transparent 55%
        ),
        #14181e;

    border-right: 1px solid #303741;
}


.contact-logo {
    display: flex;
    flex-direction: column;
    align-items: center;
}


.contact-logo__main {
    display: block;

    font-size: 54px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: -0.06em;

    color: #f4f6f8;
}


.contact-logo__sub {
    display: block;

    margin-top: 10px;

    font-size: 12px;
    line-height: 1;
    font-weight: 800;
    letter-spacing: 0.34em;

    color: #aab2bf;
}


.contact-since {
    max-width: 190px;
    margin-top: 28px;

    font-size: 13px;
    line-height: 1.6;

    color: #77818f;
}


/* RIGHT SIDE
   --------------------------------------------------------- */

.contact-card__content {
    min-width: 0;
    padding: 34px 38px;
}


.contact-kicker {
    margin-bottom: 9px;

    font-size: 11px;
    line-height: 1;
    font-weight: 800;
    letter-spacing: 0.18em;
    text-transform: uppercase;

    color: #8eb9ef;
}


.contact-card__content h2 {
    margin: 0 0 12px;

    font-size: 28px;
    line-height: 1.2;
    font-weight: 800;

    color: #f2f4f7;
}


.contact-intro {
    max-width: 650px;
    margin: 0 0 27px;

    font-size: 15px;
    line-height: 1.65;

    color: #aeb6c2;
}


/* CONTACT ROWS
   --------------------------------------------------------- */

.contact-list {
    width: 100%;

    border-top: 1px solid #303741;
}


.contact-row {
    display: flex;
    align-items: center;
    gap: 16px;

    min-width: 0;
    padding: 16px 0;

    border-bottom: 1px solid #303741;
}


.contact-row__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 42px;

    width: 42px;
    height: 42px;

    font-size: 16px;
    font-weight: 700;

    color: #9eb3cb;

    background: #202630;
    border: 1px solid #37404c;
    border-radius: 8px;
}


.contact-row__info {
    display: flex;
    flex-direction: column;
    min-width: 0;
    gap: 3px;
}


.contact-row__info span {
    font-size: 11px;
    line-height: 1.2;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;

    color: #737e8d;
}


.contact-row__info strong,
.contact-row__info a {
    min-width: 0;

    font-size: 15px;
    line-height: 1.4;
    font-weight: 700;

    color: #eef1f5;

    text-decoration: none;
    overflow-wrap: anywhere;
}


.contact-row__info a {
    transition:
        color 0.15s ease,
        opacity 0.15s ease;
}


.contact-row__info a:hover {
    color: #8eb9ef;
    text-decoration: none;
}


/* BOTTOM STATUS
   --------------------------------------------------------- */

.contact-note {
    display: flex;
    align-items: center;
    gap: 8px;

    margin-top: 24px;

    font-size: 12px;
    color: #737e8d;
}


.contact-note__dot {
    display: block;

    width: 7px;
    height: 7px;

    background: #55c991;
    border-radius: 50%;

    box-shadow: 0 0 0 4px rgba(85, 201, 145, 0.08);
}


/* =========================================================
   CONTACTS — TABLET
   ========================================================= */

@media (max-width: 900px) {

    .contact-card {
        grid-template-columns: 210px minmax(0, 1fr);
    }

    .contact-card__identity {
        min-height: 350px;
        padding: 28px 18px;
    }

    .contact-logo__main {
        font-size: 46px;
    }

    .contact-card__content {
        padding: 30px 28px;
    }
}


/* =========================================================
   CONTACTS — MOBILE
   ========================================================= */

@media (max-width: 700px) {

    .contact-card {
        display: block;

        margin-top: 18px;

        border-radius: 10px;
    }


    .contact-card__identity {
        min-height: 0;
        padding: 34px 20px 30px;

        border-right: 0;
        border-bottom: 1px solid #303741;
    }


    .contact-logo__main {
        font-size: 50px;
    }


    .contact-logo__sub {
        margin-top: 9px;

        font-size: 11px;
        letter-spacing: 0.3em;
    }


    .contact-since {
        max-width: none;
        margin-top: 20px;
    }


    .contact-card__content {
        padding: 25px 20px 26px;
    }


    .contact-card__content h2 {
        font-size: 25px;
    }


    .contact-intro {
        margin-bottom: 22px;

        font-size: 14px;
        line-height: 1.6;
    }


    .contact-row {
        gap: 13px;
        padding: 14px 0;
    }


    .contact-row__icon {
        flex-basis: 38px;

        width: 38px;
        height: 38px;
    }


    .contact-row__info strong,
    .contact-row__info a {
        font-size: 14px;
    }
}


/* VERY SMALL PHONES */

@media (max-width: 420px) {

    .contact-card__content {
        padding-left: 16px;
        padding-right: 16px;
    }

    .contact-card__identity {
        padding-left: 16px;
        padding-right: 16px;
    }

    .contact-logo__main {
        font-size: 46px;
    }

    .contact-row {
        align-items: flex-start;
    }
}
	



/* =========================================================
   RADIO AUDIO CONTROLS / EQ
   ========================================================= */

.station-audio-controls {
    margin-top: 18px;
    padding-top: 16px;

    border-top: 1px solid var(--line-soft);
}

.station-eq {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;

    margin-top: 14px;
}

.audio-control {
    min-width: 0;
}

.audio-control__head {
    display: flex;
    align-items: center;
    justify-content: space-between;

    margin-bottom: 7px;

    font-size: 10px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;

    color: var(--muted);
}

.audio-control__head strong {
    color: #b9c7d9;
    font-size: 10px;
}


/* RANGE */

.audio-slider {
    width: 100%;
    height: 4px;

    appearance: none;
    -webkit-appearance: none;

    border-radius: 999px;

    background: #353c47;

    outline: none;
    cursor: pointer;
}


/* Chrome / Safari */

.audio-slider::-webkit-slider-thumb {
    appearance: none;
    -webkit-appearance: none;

    width: 14px;
    height: 14px;

    border: 2px solid #9db7da;
    border-radius: 50%;

    background: #202630;

    cursor: pointer;

    transition:
        transform .15s ease,
        border-color .15s ease;
}

.audio-slider:hover::-webkit-slider-thumb {
    transform: scale(1.12);
    border-color: #ff5757;
}


/* Firefox */

.audio-slider::-moz-range-thumb {
    width: 11px;
    height: 11px;

    border: 2px solid #9db7da;
    border-radius: 50%;

    background: #202630;

    cursor: pointer;
}

.audio-slider::-moz-range-track {
    height: 4px;

    border: 0;
    border-radius: 999px;

    background: #353c47;
}


/* MOBILE */

@media (max-width: 520px) {

    .station-audio-controls {
        margin-top: 16px;
    }

    .station-eq {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .audio-control--volume {
        margin-bottom: 4px;
    }
}


	
/********************* MEDIA SECTION *********************/

@media(max-width:1180px)
{
	.site-shell
	{
		grid-template-columns:220px minmax(0,1fr)
		}
	.left-rail__inner
	{
		width:220px
		}
	.right-rail
	{
		grid-column:2;
		padding-top:0;
		display:grid;
		grid-template-columns:repeat(2,minmax(0,1fr))
		}
	.right-rail 
	.side-widget
	{
		min-height:150px
		}
	}
	
.radio-history {
    border-left: 1px solid var(--border);
    padding-left: 20px;
    min-width: 0;
}

.radio-history__title {
    margin-bottom: 10px;

    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;

    color: var(--muted);
}

.radio-history__list {
    display: flex;
    flex-direction: column;
}

.history-track {
    padding: 8px 0;
    border-bottom: 1px solid rgba(255,255,255,.06);
}

.history-track:last-child {
    border-bottom: 0;
}

.history-track__title {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;

    font-size: 13px;
    font-weight: 600;
    color: var(--text);
}

.history-track__artist {
    margin-top: 2px;

    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;

    font-size: 12px;
    color: var(--muted);
}

.history-empty {
    font-size: 12px;
    color: var(--muted);
}

@media(max-width:820px)
{
	/* Mobile order: logo -> navigation -> content -> right rail -> footer */
	.site-shell
	{
		width:min(100% - 22px,720px);
		display:flex;
		flex-direction:column
		}
	.main-column
	{
		display:contents
		}
	.site-header
	{
		order:1;
		padding:8px 0 16px
		}
	.left-rail
	{
		order:2;
		position:static;
		min-height:0;
		margin-bottom:14px
		}
	.content-card
	{
		order:3;
		padding:21px 18px;
		min-height:0
		}
	.right-rail
	{
		order:4;
		display:flex;
		padding-top:14px
		}
	.site-footer
	{
		order:5;
		grid-column:auto;
		width:100%
		}
	.left-rail__inner
	{
		position:static;
		width:auto;
		height:auto;
		min-height:auto;
		overflow:visible;scrollbar-gutter:auto
		}
	.main-nav
	{
		display:grid;
		grid-template-columns:repeat(2,minmax(0,1fr))
		}
	.rail-section,.rail-divider,.rail-footer
	{
		display:none
		}
	.service-grid,.metric-row
	{
		grid-template-columns:1fr
		}
	.radio-station
	{
		grid-template-columns:92px 1fr
		}
	.radio-art
	{
		width:92px;
		height:92px
		}
	.brand-main
	{
		font-size:42px
		}
	}
@media(max-width:520px)
{
	.site-shell
	{
		width:calc(100% - 14px)
		}
	.main-nav
	{
		grid-template-columns:1fr
		}
	.content-card
	{
		padding:18px 14px
		}
	.page-head h1
	{
		font-size:28px
		}
	.radio-station
	{
		grid-template-columns:1fr
		}
	.radio-art
	{
		width:100%;
		height:180px
		}
	.station-topline
	{
		margin-top:2px
		}
	}

@media (max-width: 900px) {
    .radio-station {
        grid-template-columns: 1fr;
    }


    .radio-history {
        border-left: 0;
        border-top: 1px solid var(--border);
        padding-left: 0;
        padding-top: 16px;
    }
}

/* =========================================================
   iPHONE / SAFARI MOBILE FIX
   ========================================================= */

@media (max-width: 820px) {

    html,
    body {
        width: 100%;
        max-width: 100%;
        overflow-x: hidden;
    }

    .site-shell {
        width: calc(100% - 20px);
        max-width: 720px;
        margin: 0 auto;

        display: flex;
        flex-direction: column;

        /* ВАЖНО ДЛЯ SAFARI */
        align-items: stretch;

        gap: 14px;

        padding-top: 14px;
        padding-bottom: calc(30px + env(safe-area-inset-bottom));
    }

    /*
     * Позволяет header/content участвовать
     * в мобильном порядке отдельно.
     */
    .main-column {
        display: contents;
    }

    /* 1. LOGO */
    .site-header {
        order: 1;

        width: 100%;
        max-width: 100%;

        padding: 16px 0 28px;
        margin: 0;

        text-align: center;
    }

    .brand-main {
        font-size: 46px;
    }

    .brand-tagline {
        padding: 0 10px;
    }

    /* 2. NAVIGATION */
    .left-rail {
        order: 2;

        position: static;

        width: 100%;
        max-width: 100%;

        min-height: 0;
        margin: 0;
    }

    .left-rail__inner {
        position: static;

        width: 100%;
        max-width: 100%;

        height: auto;
        min-height: 0;

        overflow: visible;
        scrollbar-gutter: auto;
    }

    .left-rail .rail-card {
        width: 100%;
        max-width: 100%;

        padding: 18px;
    }

    .main-nav {
        width: 100%;

        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));

        gap: 5px;
    }

    .nav-link {
        width: 100%;
        min-width: 0;
    }

    .rail-section,
    .rail-divider,
    .rail-footer {
        display: none;
    }

    /* 3. MAIN CONTENT */
    .content-card {
        order: 3;

        width: 100%;
        max-width: 100%;
        min-width: 0;
        min-height: 0;

        margin: 0;
        padding: 21px 18px;

        overflow: hidden;
    }

    /* 4. RIGHT SIDEBAR */
    .right-rail {
        order: 4;

        width: 100%;
        max-width: 100%;
        min-width: 0;

        display: flex;
        flex-direction: column;

        gap: 14px;

        padding-top: 0;
        margin: 0;
    }

    .right-rail .rail-card,
    .right-rail .side-widget {
        width: 100%;
        max-width: 100%;
    }

    /* 5. FOOTER */
    .site-footer {
        order: 5;

        grid-column: auto;

        width: 100%;
        max-width: 100%;

        margin: 0;
        padding: 22px 6px
                 calc(12px + env(safe-area-inset-bottom));

        text-align: center;
    }

    /* RADIO */
    .radio-station {
        grid-template-columns: 1fr;
        width: 100%;
        max-width: 100%;
    }

    .radio-history {
        border-left: 0;
        border-top: 1px solid var(--line-soft);

        padding-left: 0;
        padding-top: 16px;
    }

    /* Other grids */
    .service-grid,
    .metric-row {
        grid-template-columns: 1fr;
    }
}


/* =========================================================
   SMALL PHONES
   ========================================================= */

@media (max-width: 520px) {

    .site-shell {
        width: calc(100% - 16px);
    }

    .site-header {
        padding-top: 14px;
        padding-bottom: 24px;
    }

    .brand-main {
        font-size: 44px;
    }

    .main-nav {
        grid-template-columns: 1fr;
    }

    .left-rail .rail-card {
        padding: 16px;
    }

    .nav-link {
        min-height: 50px;
    }

    .content-card {
        padding: 18px 14px;
    }

    .page-head h1 {
        font-size: 28px;
    }

    .radio-art {
        width: 100%;
        height: 180px;
    }

    .visitor-counter {
        justify-content: center;
    }
}

@media (max-width: 520px) {

    .radio-station {
        display: block;
        padding: 16px;
    }

    .radio-station__main {
        display: block;
    }

    .radio-art {
        width: 100%;
        height: auto;
        aspect-ratio: 1 / 1;
        margin-bottom: 16px;
    }

    .radio-art img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .radio-station__body {
        width: 100%;
    }

    .station-topline {
        margin-top: 0;
    }

    .track-title {
        font-size: 18px;
        line-height: 1.3;
    }

    .track-artist {
        font-size: 14px;
    }

    .station-actions {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
        margin-top: 18px;
    }

    .station-actions > * {
        width: 100%;
        min-width: 0;
        height: 42px;

        display: inline-flex;
        align-items: center;
        justify-content: center;

        padding: 0 10px;
        white-space: nowrap;
    }

    .text-button {
        text-align: center;
    }

    .radio-history {
        margin-top: 20px;
        padding-top: 18px;
    }
}

@media (min-width: 821px) {
    .right-rail {
        align-self: start;
        margin-top: 0;
        padding-top: 0;
    }
}

.community-banner {
    display: block;
    width: 100%;
    margin-top: 12px;
    text-align: center;
}

.community-banner img {
    display: block;
    width: 100%;
    max-width: 180px;
    height: auto;
    margin: 0 auto;

    border-radius: 6px;

    transition:
        transform .18s ease,
        opacity .18s ease;
}

.community-banner:hover img {
    transform: translateY(-2px);
    opacity: .88;
}

.community-banner,
.community-banner:hover,
.community-banner:focus,
.community-banner:active {
    text-decoration: none;
    border-bottom: none;
    box-shadow: none;
}

.community-banner::after,
.community-banner:hover::after {
    display: none;
    content: none;
}

;