/* GolfNews Polska — components (gn-*). Requires tokens.css. */
.gn-root{background:var(--sand-100);color:var(--ink);font-family:var(--font-sans);font-size:15px;line-height:24px;-webkit-font-smoothing:antialiased}
.gn-root *,.gn-root *::before,.gn-root *::after{box-sizing:border-box}
:where(.gn-root) a{color:inherit;text-decoration:none}
.gn-icon{width:20px;height:20px;flex:none;display:inline-block;vertical-align:middle}
.gn-icon--sm{width:16px;height:16px}
.gn-icon--lg{width:24px;height:24px}
.gn-container{max-width:var(--container);margin:0 auto;padding:0 var(--space-5)}
:where(.gn-root) :focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:2px}

/* ---------- Ticker (pasek bieżący) ---------- */
.gn-ticker{height:var(--ticker-height);background:var(--green-900);color:var(--cream);display:flex;align-items:stretch;overflow:hidden;font-family:var(--font-mono);font-size:13px;line-height:16px;font-weight:500}
.gn-ticker__label{flex:none;display:flex;align-items:center;gap:var(--space-2);padding:0 var(--space-4);background:var(--green-800);font-family:var(--font-sans);font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;position:relative;z-index:1}
.gn-ticker__label::after{content:"";position:absolute;right:-10px;top:0;bottom:0;width:10px;background:var(--green-800);clip-path:polygon(0 0,100% 50%,0 100%)}
.gn-ticker__viewport{flex:1;overflow:hidden;display:flex;align-items:center;padding-left:var(--space-5);-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 24px,#000 calc(100% - 48px),transparent);mask-image:linear-gradient(90deg,transparent 0,#000 24px,#000 calc(100% - 48px),transparent)}
.gn-ticker__track{display:inline-flex;align-items:center;white-space:nowrap;animation:gn-marquee var(--gn-ticker-speed,70s) linear infinite;will-change:transform}
.gn-ticker:hover .gn-ticker__track,.gn-ticker:focus-within .gn-ticker__track{animation-play-state:paused}
.gn-ticker__item{display:inline-flex;align-items:center;gap:var(--space-2);padding-right:var(--space-5)}
.gn-ticker__item::after{content:"";width:5px;height:5px;border-radius:50%;background:var(--brass);margin-left:var(--space-3)}
.gn-ticker__tour{font-family:var(--font-sans);font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--brass)}
.gn-ticker__muted{color:var(--cream-muted)}
.gn-ticker__score{font-weight:500;color:var(--cream);background:rgba(239,227,198,.12);padding:1px 6px;border-radius:var(--radius-sm)}
.gn-ticker a:hover{text-decoration:underline;text-underline-offset:3px}
@keyframes gn-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.gn-ticker__track{animation:none}.gn-ticker__viewport{overflow-x:auto;-webkit-mask-image:none;mask-image:none}}

/* ---------- Live dot ---------- */
.gn-dot{width:8px;height:8px;border-radius:50%;background:var(--live);display:inline-block;flex:none;position:relative}
.gn-dot--pulse::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid var(--live);opacity:.6;animation:gn-pulse 1.6s ease-out infinite}
.gn-dot--on-dark{background:#ff7a5c}.gn-dot--on-dark::after{border-color:#ff7a5c}
@keyframes gn-pulse{from{transform:scale(.6);opacity:.7}to{transform:scale(1.5);opacity:0}}
@media (prefers-reduced-motion:reduce){.gn-dot--pulse::after{animation:none}}

/* ---------- Header ---------- */
.gn-header{background:var(--green-800);color:var(--cream);position:sticky;top:0;z-index:20}
.gn-header__inner{max-width:var(--container);margin:0 auto;padding:0 var(--space-5);height:var(--header-height);display:flex;align-items:center;gap:var(--space-6)}
.gn-header__logo{display:block;flex:none}
.gn-header__logo img{height:44px;width:auto;display:block}
.gn-nav{display:flex;gap:var(--space-5);font-size:14px;font-weight:600;line-height:18px}
.gn-nav a{color:var(--cream-muted);padding:26px 0 24px;border-bottom:2px solid transparent;display:inline-flex;gap:var(--space-2);align-items:center}
.gn-nav a:hover{color:var(--cream)}
.gn-nav a[aria-current=page]{color:var(--cream);border-bottom-color:var(--brass)}
.gn-header__end{margin-left:auto;display:flex;align-items:center;gap:var(--space-3)}
.gn-iconbtn{width:40px;height:40px;display:grid;place-items:center;border-radius:var(--radius-md);border:1px solid rgba(239,227,198,.28);background:transparent;color:var(--cream);cursor:pointer}
.gn-iconbtn:hover{background:rgba(239,227,198,.1)}
.gn-iconbtn--light{border-color:var(--line);color:var(--accent-ink)}
.gn-iconbtn--light:hover{background:var(--sand-200)}
.gn-header__menu{display:none}
@media (max-width:860px){.gn-header__inner{height:60px;gap:var(--space-3)}.gn-header__logo img{height:36px}.gn-nav,.gn-header .gn-time{display:none}.gn-header__menu{display:grid}}

/* ---------- Time chip PL / UA ---------- */
.gn-time{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:12px;line-height:16px;white-space:nowrap;background:var(--sand-50);color:var(--ink)}
.gn-time>span{padding:4px 8px;display:inline-flex;gap:6px}
.gn-time>span+span{border-left:1px solid var(--line)}
.gn-time b{font-weight:500;font-family:var(--font-sans);font-size:10px;letter-spacing:.8px;color:var(--ink-muted)}
.gn-time--dark{background:transparent;border-color:rgba(239,227,198,.28);color:var(--cream)}
.gn-time--dark>span+span{border-left-color:rgba(239,227,198,.28)}
.gn-time--dark b{color:var(--cream-muted)}

/* ---------- Buttons ---------- */
.gn-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:11px 18px;border-radius:var(--radius-md);border:1px solid transparent;font-family:var(--font-sans);font-size:14px;line-height:18px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .15s}
.gn-btn--primary{background:var(--green-800);color:var(--cream)}
.gn-btn--primary:hover{background:var(--green-700)}
.gn-btn--secondary{background:transparent;color:var(--accent-ink);border-color:var(--accent-ink)}
.gn-btn--secondary:hover{background:var(--green-100)}
.gn-btn--cream{background:var(--cream);color:var(--green-900)}
.gn-btn--cream:hover{background:#f6edd8}
.gn-btn--ghost{background:transparent;color:var(--accent-ink);padding-left:0;padding-right:0;text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
.gn-btn--sm{padding:7px 12px;font-size:13px}
.gn-btn[disabled]{opacity:.45;cursor:not-allowed}

/* ---------- Badges ---------- */
.gn-badge{display:inline-flex;align-items:center;gap:6px;padding:3px 8px;border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:11px;line-height:14px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;white-space:nowrap;border:1px solid transparent}
.gn-badge--tour{background:var(--green-100);color:var(--accent-ink)}
.gn-badge--live{background:var(--live);color:var(--on-live);border-radius:var(--radius-pill);padding:3px 10px}
.gn-badge--live .gn-dot{background:var(--on-live);width:6px;height:6px}
.gn-badge--today{background:var(--sand-200);color:var(--ink)}
.gn-badge--soon{border-color:var(--brass);color:var(--brass-ink)}
.gn-badge--done{border-color:var(--line);color:var(--ink-muted)}
.gn-badge--major{background:var(--green-800);color:var(--cream)}
.gn-badge--pl{background:var(--sand-50);color:var(--ink);border-color:var(--line)}
.gn-badge--pl::before{content:"";width:12px;height:8px;border-radius:1px;background:linear-gradient(#fff 50%,#d4213d 50%);box-shadow:0 0 0 1px rgba(0,0,0,.15)}

/* ---------- Chips / tabs ---------- */
.gn-chips{display:flex;gap:var(--space-2);flex-wrap:wrap}
.gn-chip{padding:7px 14px;border-radius:var(--radius-pill);border:1px solid var(--line);background:var(--sand-50);color:var(--ink);font-size:13px;line-height:18px;font-weight:600;cursor:pointer;display:inline-flex;gap:6px;align-items:center}
.gn-chip:hover{border-color:var(--green-500)}
.gn-chip[aria-pressed=true],.gn-chip[aria-selected=true]{background:var(--green-800);border-color:var(--green-800);color:var(--cream)}
.gn-chip small{font-family:var(--font-mono);font-size:11px;opacity:.75}

/* ---------- Section heading ---------- */
.gn-sechead{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-5)}
.gn-overline{font-family:var(--font-sans);font-size:11px;line-height:14px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--brass-ink);margin:0 0 var(--space-2)}
.gn-sechead h2{font-family:var(--font-serif);font-size:28px;line-height:34px;font-weight:600;letter-spacing:-.4px;margin:0;color:var(--ink)}
.gn-sechead h2 em{font-weight:500;color:var(--brass-ink)}
.gn-link{display:inline-flex;align-items:center;gap:4px;font-size:14px;font-weight:600;color:var(--accent-ink);white-space:nowrap}
.gn-link:hover{text-decoration:underline;text-underline-offset:4px}

/* ---------- Fairway stripes (motif) ---------- */
.gn-stripes{background-color:var(--green-800);background-image:repeating-linear-gradient(115deg,rgba(255,255,255,.045) 0 28px,transparent 28px 56px)}

/* ---------- Hero ---------- */
.gn-hero{display:grid;grid-template-columns:1.1fr 1fr;border-radius:var(--radius-lg);overflow:hidden;background:var(--green-800);color:var(--cream);min-height:400px}
.gn-hero__copy{padding:var(--space-7) var(--space-6) var(--space-6);display:flex;flex-direction:column;gap:var(--space-4)}
.gn-hero__copy .gn-overline{color:var(--brass);margin:0;display:flex;gap:var(--space-3);align-items:center}
.gn-hero h1{font-family:var(--font-serif);font-size:56px;line-height:58px;font-weight:600;letter-spacing:-1.2px;margin:0}
.gn-hero h1 em{display:block;font-weight:500;color:var(--brass)}
.gn-hero__meta{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-4);color:var(--cream-muted);font-size:14px;line-height:20px}
.gn-hero__meta span{display:inline-flex;gap:6px;align-items:center}
.gn-hero__actions{display:flex;gap:var(--space-4);align-items:center;flex-wrap:wrap;margin-top:auto}
.gn-hero__media{position:relative;min-height:240px}
.gn-hero__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.gn-countdown{position:absolute;left:var(--space-5);bottom:var(--space-5);background:var(--green-900);color:var(--cream);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);display:flex;gap:var(--space-4);font-family:var(--font-mono)}
.gn-countdown div{text-align:center}
.gn-countdown b{display:block;font-size:24px;line-height:28px;font-weight:500}
.gn-countdown small{font-family:var(--font-sans);font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--cream-muted)}
@media (max-width:760px){.gn-hero{grid-template-columns:1fr}.gn-hero h1{font-size:38px;line-height:42px}.gn-hero__copy{padding:var(--space-6) var(--space-5)}}

/* ---------- Key facts strip ---------- */
.gn-facts{display:grid;grid-template-columns:repeat(4,1fr);background:var(--sand-50);border:1px solid var(--line);border-radius:var(--radius-md)}
.gn-facts>div{padding:var(--space-4) var(--space-5);display:flex;gap:var(--space-3);align-items:flex-start}
.gn-facts>div+div{border-left:1px solid var(--line)}
.gn-facts .gn-icon{color:var(--green-500);margin-top:2px}
.gn-facts small{display:block;font-size:11px;line-height:14px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--ink-muted);margin-bottom:4px}
.gn-facts b{font-size:15px;line-height:20px;font-weight:600}
@media (max-width:760px){.gn-facts{grid-template-columns:1fr 1fr}.gn-facts>div:nth-child(3){border-left:0}.gn-facts>div:nth-child(n+3){border-top:1px solid var(--line)}}

/* ---------- Event list (calendar rows) ---------- */
.gn-list{background:var(--sand-50);border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden}
.gn-list__head{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--sand-200);font-size:12px;line-height:16px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--ink)}
.gn-list__head span{margin-left:auto;font-family:var(--font-mono);font-weight:400;letter-spacing:0;text-transform:none;color:var(--ink-muted)}
.gn-event{display:grid;grid-template-columns:64px minmax(0,1fr) auto 36px;gap:var(--space-4);align-items:center;padding:var(--space-4);border-top:1px solid var(--line)}
.gn-list__head+.gn-event{border-top:0}
.gn-event:hover{background:var(--sand-100)}
.gn-event--live{box-shadow:inset 3px 0 0 var(--live)}
.gn-date{text-align:center;border:1px solid var(--line);border-radius:var(--radius-md);padding:6px 0 5px;background:var(--sand-100)}
.gn-date b{display:block;font-family:var(--font-serif);font-size:24px;line-height:26px;font-weight:600;color:var(--accent-ink)}
.gn-date small{display:block;font-family:var(--font-mono);font-size:11px;line-height:14px;color:var(--ink-muted);text-transform:uppercase}
.gn-event__tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px}
.gn-event h3{font-family:var(--font-serif);font-size:18px;line-height:23px;font-weight:600;margin:0 0 2px}
.gn-event p{margin:0;font-size:13px;line-height:20px;color:var(--ink-muted);display:flex;gap:6px;align-items:center}
.gn-event__go{width:36px;height:36px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;color:var(--accent-ink)}
.gn-event:hover .gn-event__go{background:var(--green-800);border-color:var(--green-800);color:var(--cream)}
@media (max-width:640px){.gn-event{grid-template-columns:52px minmax(0,1fr) 32px;gap:var(--space-3)}.gn-event .gn-time{grid-column:2;grid-row:2;justify-self:start}.gn-event__go{grid-column:3;grid-row:1;width:32px;height:32px}}

/* ---------- Sidebar widget ---------- */
.gn-sidebar{display:flex;flex-direction:column;gap:var(--space-5)}
.gn-widget{background:var(--sand-50);border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden}
.gn-widget__head{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--line)}
.gn-widget__head .gn-icon{color:var(--accent-ink)}
.gn-widget__head h3{margin:0;font-size:12px;line-height:16px;font-weight:700;letter-spacing:1px;text-transform:uppercase}
.gn-widget__head a{margin-left:auto;font-size:12px;font-weight:600;color:var(--accent-ink)}
.gn-widget__head a:hover{text-decoration:underline;text-underline-offset:3px}
.gn-widget__foot{padding:var(--space-3) var(--space-4);border-top:1px solid var(--line);font-size:12px;line-height:16px;color:var(--ink-muted)}
.gn-widget--dark{background:var(--green-800);border-color:var(--green-800);color:var(--cream)}
.gn-widget--dark .gn-widget__head{border-color:rgba(239,227,198,.18)}
.gn-widget--dark .gn-widget__head .gn-icon,.gn-widget--dark .gn-widget__head a{color:var(--brass)}

/* rows inside widgets */
.gn-rows{list-style:none;margin:0;padding:0}
.gn-rows li{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:var(--space-3);align-items:center;padding:10px var(--space-4);font-size:14px;line-height:20px}
.gn-rows li+li{border-top:1px solid var(--line)}
.gn-rows__pos{font-family:var(--font-mono);font-size:13px;color:var(--accent-ink);font-weight:500}
.gn-rows__name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gn-rows__name small{display:block;font-weight:400;font-size:12px;line-height:16px;color:var(--ink-muted)}
.gn-rows__val{font-family:var(--font-mono);font-size:14px;font-weight:500;text-align:right}
.gn-rows__val small{display:block;font-size:11px;color:var(--ink-muted);font-weight:400}
.gn-rows li.is-top .gn-rows__pos{background:var(--green-800);color:var(--cream);border-radius:var(--radius-sm);text-align:center;padding:2px 0}
.gn-under{color:var(--under-par)}
.gn-over{color:var(--over-par)}

/* tee times */
.gn-tee{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--space-3);align-items:center;padding:10px var(--space-4);font-size:13px;line-height:18px}
.gn-tee+.gn-tee{border-top:1px solid var(--line)}
.gn-tee b{font-weight:600}
.gn-tee small{display:block;color:var(--ink-muted);font-size:12px}

/* week strip */
.gn-week{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;padding:var(--space-3) var(--space-4)}
.gn-week__day{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 0;border-radius:var(--radius-sm);font-size:11px;line-height:14px;color:var(--ink-muted)}
.gn-week__day b{font-family:var(--font-mono);font-size:14px;line-height:18px;color:var(--ink);font-weight:500}
.gn-week__day i{display:flex;gap:2px;height:5px}
.gn-week__day i::before,.gn-week__day i::after{content:"";width:5px;height:5px;border-radius:50%}
.gn-week__day[data-n="1"] i::before,.gn-week__day[data-n="2"] i::before,.gn-week__day[data-n="2"] i::after{background:var(--green-500)}
.gn-week__day.is-today{background:var(--green-800);color:var(--cream-muted)}
.gn-week__day.is-today b{color:var(--cream)}
.gn-week__day.is-today[data-n] i::before,.gn-week__day.is-today[data-n] i::after{background:var(--brass)}

/* ---------- News card ---------- */
.gn-card{display:flex;flex-direction:column;background:var(--sand-50);border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden;transition:box-shadow .15s,transform .15s}
.gn-card:hover{box-shadow:var(--shadow-card);transform:translateY(-2px)}
.gn-card__media{aspect-ratio:16/9;position:relative;overflow:hidden}
.gn-card__media img{width:100%;height:100%;object-fit:cover;display:block}
.gn-card__media .gn-badge{position:absolute;left:var(--space-3);top:var(--space-3)}
.gn-card__body{padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2);flex:1}
.gn-card h3{font-family:var(--font-serif);font-size:20px;line-height:26px;font-weight:600;margin:0}
.gn-card p{margin:0;font-size:14px;line-height:22px;color:var(--ink-muted)}
.gn-card__meta{margin-top:auto;padding-top:var(--space-2);display:flex;gap:var(--space-3);font-family:var(--font-mono);font-size:12px;line-height:16px;color:var(--ink-muted)}
.gn-card--row{flex-direction:row}.gn-card--row .gn-card__media{width:120px;aspect-ratio:1;flex:none}
.gn-card--row h3{font-size:16px;line-height:21px}

/* ---------- Footer ---------- */
.gn-footer{background:var(--green-900);color:var(--cream-muted);font-size:14px;line-height:22px}
.gn-footer__inner{max-width:var(--container);margin:0 auto;padding:var(--space-7) var(--space-5) var(--space-5);display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:var(--space-6)}
.gn-footer img{height:44px;width:auto;display:block;margin-bottom:var(--space-4)}
.gn-footer h4{margin:0 0 var(--space-3);font-size:11px;line-height:14px;letter-spacing:1.5px;text-transform:uppercase;color:var(--brass)}
.gn-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.gn-footer a:hover{color:var(--cream)}
.gn-footer__base{max-width:var(--container);margin:0 auto;padding:var(--space-4) var(--space-5);border-top:1px solid rgba(239,227,198,.14);display:flex;justify-content:space-between;gap:var(--space-4);font-size:12px;flex-wrap:wrap}
@media (max-width:760px){.gn-footer__inner{grid-template-columns:1fr 1fr}.gn-footer__inner>div:first-child{grid-column:1/-1}}

/* ---------- Page layout ---------- */
.gn-layout{max-width:var(--container);margin:0 auto;padding:var(--space-6) var(--space-5) var(--space-8);display:grid;grid-template-columns:minmax(0,1fr) var(--sidebar);gap:var(--space-6);align-items:start}
.gn-layout>aside{position:sticky;top:calc(var(--header-height) + var(--space-5))}
.gn-stack{display:flex;flex-direction:column;gap:var(--space-7)}
.gn-grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-5)}
@media (max-width:1024px){.gn-layout{grid-template-columns:1fr}.gn-layout>aside{position:static}.gn-grid3{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.gn-layout{padding:var(--space-4) var(--space-4) var(--space-7)}.gn-grid3{grid-template-columns:1fr}.gn-sechead{flex-direction:column;align-items:flex-start}}
@media (max-width:640px){.gn-list__head span{display:none}}
.gn-ticker__label--live,.gn-ticker__label--live::after{background:var(--live);color:var(--on-live)}
.gn-ticker__label--live .gn-dot{background:var(--on-live)}
.gn-ticker__label--live .gn-dot::after{border-color:var(--on-live)}
