/*
Theme Name: WF Sky
Theme URI: https://weatherforecast.site/blog/
Description: Blog theme for weatherforecast.site — same shell, colours, type and dark mode as the live forecast app.
Version: 1.0.0
Requires PHP: 8.1
Text Domain: wf-sky
*/

/* Tokens copied from the app (app/globals.css). */
:root{--bg:#f5f6f3;--card:#fff;--text:#253934;--muted:#81908a;--border:#e8ece7;--accent:#397d6b;--sidebar:#fafbf8;--hover:#f3f6f1;--shadow:0 4px 20px #223e2a03;--gold:#a78549;--sage:#9eae8c;color-scheme:light}
[data-theme=dark]{--bg:#182320;--card:#202e28;--text:#d9e2d6;--muted:#859b89;--border:#314137;--sidebar:#1c2923;--hover:#2a3a30;color-scheme:dark}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font:14px 'DM Sans',sans-serif;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button,input{font:inherit}
button{cursor:pointer;color:inherit;border:0;background:none}
a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid #6b9c8a;outline-offset:4px}
svg{flex-shrink:0}
h1,h2,h3,p{margin:0}
h1,h2,h3,h4{font-family:'Manrope',sans-serif}
img{max-width:100%;height:auto;display:block}
.skip-link{position:fixed;top:-60px;left:230px;background:var(--text);color:var(--card);padding:12px;z-index:200}
.skip-link:focus{top:10px}
.screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* Sidebar — identical to the app. */
.sidebar{position:fixed;inset:0 auto 0 0;width:216px;background:var(--sidebar);border-right:1px solid var(--border);display:flex;flex-direction:column;z-index:50}
.brand{display:flex;align-items:center;font:800 35px 'Manrope',sans-serif;letter-spacing:-2px;gap:9px;padding:28px 26px 35px}
.brand-symbol{position:relative;height:36px;width:30px;display:grid;place-items:center;color:var(--gold);overflow:hidden}
.brand-symbol svg{position:relative;top:-5px;animation:sun-turn 40s linear infinite}
.brand-symbol:after{content:'';position:absolute;width:28px;height:1.5px;background:var(--gold);bottom:8px;box-shadow:0 5px 0 var(--gold)}
.brand-dot{color:var(--sage)}
.brand-word{display:flex;flex-direction:column;font-size:.74em;line-height:.95}
.brand-word .brand-dot{margin-left:1px;font-size:.62em;letter-spacing:-.5px}
@keyframes sun-turn{to{transform:rotate(360deg)}}
.sidebar-content{padding:0 15px;flex:1;overflow-y:auto}
.overline{font-size:9px;font-weight:650;letter-spacing:1.6px;color:#829074;display:block}
.side-label{padding-left:15px;margin-bottom:14px}
.topics-label{margin-top:28px}
nav .nav-item{display:flex;align-items:center;width:100%;gap:13px;padding:13px 14px;font-size:12px;font-weight:500;color:#7d8b83;border-radius:7px;margin:2px 0;transition:background .18s,color .18s}
.nav-item:hover{background:var(--hover)}
nav .nav-item.active{color:#3a715c;background:#e8eee1;font-weight:650}
[data-theme=dark] nav .nav-item.active{background:#34462f;color:#c6d8b8}
.nav-active-dot{width:5px;height:5px;border-radius:50%;background:#6f8d50;margin-left:auto}
.sidebar-note{margin:37px 10px 20px;background:linear-gradient(135deg,#f0f0e5,#e9eddf);border:1px solid #e4e8d9;border-radius:10px;padding:18px 16px;color:#5b6d52;overflow:hidden;position:relative}
.note-orbit{position:absolute;right:13px;top:22px;color:#b2b18c}
.sidebar-note p{font-family:'Manrope';font-size:16px;font-weight:650;line-height:1.5;letter-spacing:-.4px;position:relative}
.sidebar-note>span{font-size:9px;display:block;margin-top:13px;color:#88947b}
[data-theme=dark] .sidebar-note{background:#2d412d;border-color:#3d5336;color:#c8d6b8}
[data-theme=dark] .sidebar-note p{color:#bcccab}
.sidebar-bottom{padding:18px 22px 22px;border-top:1px solid var(--border)}
.sidebar-bottom>a{width:100%;display:flex;align-items:center;gap:11px;font-size:11px;color:#839087;padding:9px 3px}
.sidebar-bottom>a>svg:last-child:not(:first-child){margin-left:auto}

/* Topbar. */
.app-shell{margin-left:216px}
.topbar{height:81px;border-bottom:1px solid var(--border);background:var(--card);display:flex;align-items:center;padding:0 37px;gap:18px;position:relative;z-index:60}
.breadcrumb{display:flex;align-items:center;gap:12px;font-size:11px;flex:1;color:#9aa49c;min-width:0}
.breadcrumb strong{font-weight:500;color:#69796d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.breadcrumb a:hover{color:var(--accent)}
.search-wrap{height:36px;border:1px solid var(--border);border-radius:7px;display:flex;align-items:center;gap:10px;padding:0 11px;background:#fcfdfb;width:294px;color:#a3ada5;margin:0}
[data-theme=dark] .search-wrap{background:#1c2923}
.search-wrap input{width:100%;border:0;outline:none;background:none;min-width:0;font-size:11px;color:var(--text)}
.search-wrap input::placeholder{color:#96a198}
.icon-button{padding:7px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center}
.icon-button:hover{background:var(--hover)}
.mobile-menu{display:none}
.mobile-nav-backdrop{display:none}

/* Main column. */
main{max-width:1400px;margin:0 auto;padding:31px 38px 20px}
.eyebrow{display:flex;align-items:center;gap:7px;font-size:8px;color:#7f8b78;letter-spacing:1.45px;font-weight:600;margin-bottom:11px}
.live-dot{width:5px;height:5px;border-radius:50%;background:#71a389;display:inline-block;flex-shrink:0;box-shadow:0 0 0 3px #71a38911}
.page-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:23px;gap:20px}
.page-heading h1{font-size:31px;line-height:1.3;letter-spacing:-1.2px;font-weight:750}
.title-dot{color:var(--sage)}
.page-heading p{font-size:11px;color:#8d988f;margin-top:8px;max-width:560px;line-height:1.65}
.pill-link{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--border);background:var(--card);border-radius:7px;padding:10px 14px;font-size:11px;color:#5f7065;white-space:nowrap}
.pill-link:hover{background:var(--hover)}
.card{background:var(--card);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow)}
.text-button{font-size:10px;color:#84937c;display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.text-button:hover{color:var(--accent)}
.primary-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:#3e6a54;color:#fff;border-radius:6px;padding:12px 18px;margin:16px 0 0;font-size:12px}

/* Post cards. */
.post-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.post-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.post-card{overflow:hidden;display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s}
.post-card:hover{transform:translateY(-2px);box-shadow:0 10px 30px #223e2a0d}
.post-thumb{display:block;aspect-ratio:1200/630;background:linear-gradient(160deg,#4f7f86,#9fc3c4);overflow:hidden}
.post-thumb img{width:100%;height:100%;object-fit:cover}
.thumb-fallback{display:grid;place-items:center;height:100%;color:#f6d393}
.post-body{padding:18px 20px 20px;display:flex;flex-direction:column;gap:9px;flex:1}
.post-body .overline{font-size:8px;letter-spacing:1.35px}
.post-body h2{font-size:17px;line-height:1.35;letter-spacing:-.5px;font-weight:750}
.post-body h2 a:hover{color:var(--accent)}
.post-body p{font-size:12px;line-height:1.65;color:#76857d;flex:1}
.post-card.lead{grid-column:1/-1;flex-direction:row;align-items:center}
.post-card.lead .post-thumb{width:58%;flex-shrink:0;align-self:center;border-radius:0 0 0 0}
.post-card.lead .post-body{padding:30px 32px;justify-content:center}
.post-card.lead h2{font-size:25px;letter-spacing:-.9px}
.post-card.lead p{font-size:13px;flex:0}
.pager{margin:26px 0 8px}
.pager .nav-links{display:flex;gap:8px;justify-content:center;font-size:11px}
.pager .page-numbers{padding:8px 12px;border:1px solid var(--border);border-radius:7px;background:var(--card)}
.pager .page-numbers.current{background:#e8eee1;color:#3a715c;font-weight:650}
.empty-card{padding:40px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px;max-width:620px;margin:20px auto}
.empty-card h2{font-size:21px;letter-spacing:-.6px}
.empty-card p{font-size:12px;color:var(--muted);line-height:1.65}
.cta-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#f6efdc;color:var(--gold);flex-shrink:0}
[data-theme=dark] .cta-icon{background:#3a3a26}

/* Article. */
.article{max-width:820px;margin:0 auto}
.article-head{margin:6px 0 22px}
.article-head h1{font-size:36px;line-height:1.2;letter-spacing:-1.4px;font-weight:800}
.dek{font-size:15px;line-height:1.6;color:#6c7b73;margin-top:12px}
.byline{display:flex;align-items:center;gap:7px;font-size:10px;color:var(--muted);margin-top:14px}
.article-hero{overflow:hidden;margin:0 0 18px}
.article-hero img{width:100%}
.article-card{padding:34px 40px}
.prose{font-size:16px;line-height:1.75;color:var(--text)}
.prose>*+*{margin-top:1.05em}
.prose h2{font-size:22px;letter-spacing:-.6px;font-weight:750;line-height:1.3;margin-top:1.7em}
.prose h3{font-size:17px;letter-spacing:-.3px;font-weight:700;margin-top:1.4em}
.prose a{color:var(--accent);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.prose ul,.prose ol{padding-left:1.3em}
.prose li+li{margin-top:.4em}
.prose strong{font-weight:650}
.prose table{width:100%;border-collapse:collapse;font-size:13px;margin-top:1.4em}
.prose th{text-align:left;font-size:9px;letter-spacing:1.3px;font-weight:650;color:#829074;text-transform:uppercase;padding:9px 10px;border-bottom:1px solid var(--border)}
.prose td{padding:10px;border-bottom:1px solid var(--border)}
.prose tr:last-child td{border-bottom:0}
.prose .wf-table{overflow-x:auto}
.prose .wf-keyfacts{background:linear-gradient(135deg,#f0f0e5,#e9eddf);border:1px solid #e4e8d9;border-radius:10px;padding:18px 22px;color:#4f6147}
[data-theme=dark] .prose .wf-keyfacts{background:#2d412d;border-color:#3d5336;color:#c8d6b8}
.prose .wf-keyfacts p{font-size:9px;font-weight:650;letter-spacing:1.6px;margin:0 0 8px}
.prose .wf-keyfacts ul{margin:0;font-size:14px}
.prose .wf-note{font-size:12px;color:var(--muted)}
.cta-card{display:flex;align-items:center;gap:16px;padding:20px 24px;margin:18px 0 0}
.cta-card>span:nth-child(2){flex:1;display:flex;flex-direction:column;gap:4px}
.cta-card strong{font-family:'Manrope';font-size:17px;letter-spacing:-.4px}
.cta-card small{font-size:11px;color:var(--muted)}
.cta-card:hover{background:var(--hover)}
.related{margin:44px 0 10px}
.related>h2{font-size:19px;letter-spacing:-.6px;font-weight:750;margin-bottom:16px}

/* Footer — same as the app. */
.site-footer{display:flex;align-items:center;gap:16px;padding:22px 0 13px;color:#a7b19a;font-size:9px;border-top:1px solid var(--border);margin-top:34px}
.brand.footer-brand{font-size:22px;padding:0;gap:0;letter-spacing:-1px;color:#6e7e5e}
.footer-brand span{color:var(--sage)}
.footer-sources{margin-left:auto;display:flex;align-items:center;gap:16px}
.footer-sources a:hover{text-decoration:underline}

/* Breakpoint rules copied from the app (app/globals.css) so the shell shrinks exactly like the homepage. */
@media(min-width:1550px){main{padding:37px 46px 25px}}
@media(max-width:1200px){.sidebar{width:190px}.app-shell{margin-left:190px}.brand{font-size:32px;padding-left:23px}.sidebar-content{padding:0 10px}.topbar{padding:0 25px}main{padding:28px 25px 20px}.sidebar-note{margin-left:7px;margin-right:7px}.sidebar-note p{font-size:14px}.sidebar-note>span{font-size:8px}}
@media(max-width:1020px){.sidebar{width:175px}.app-shell{margin-left:175px}.brand{font-size:30px;padding-left:20px}.brand-symbol{width:25px}.sidebar-content{padding:0 8px}nav .nav-item{padding:12px;gap:10px;font-size:11px}.sidebar-note{padding:16px 12px}.sidebar-note .note-orbit{display:none}.topbar{padding:0 22px}.breadcrumb{font-size:9px;gap:8px}.search-wrap{width:255px}main{padding:27px 22px 16px}.page-heading h1{font-size:27px}.page-heading p{font-size:10px}.footer-sources{gap:10px}.footer-sources a{font-size:7px}.footer-brand+span{display:none}}
@media(max-width:800px){.sidebar{transform:translateX(-100%);width:230px;transition:transform .2s}.sidebar.show{transform:translateX(0);box-shadow:15px 0 40px #123b3420;z-index:90}.sidebar.show .brand{padding-top:27px}.app-shell{margin-left:0}.mobile-menu{display:flex}.topbar{height:68px;padding:0 22px;gap:15px;position:sticky;top:0}.breadcrumb{display:none}.search-wrap{flex:1;width:auto;margin-right:auto;max-width:400px}main{padding:26px 24px 20px}.page-heading h1{font-size:29px}.skip-link{left:20px}}
@media(max-width:650px){main{padding:23px 18px 17px}.topbar{padding:0 17px;gap:11px}.search-wrap{height:34px}.search-wrap input{font-size:10px}.page-heading{align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:17px}.page-heading h1{font-size:27px}.page-heading p{font-size:10px}.eyebrow{font-size:7px;margin-bottom:8px}footer{align-items:flex-start;gap:15px;flex-wrap:wrap;padding-top:20px}.footer-sources{width:100%;margin-left:0;gap:15px;font-size:8px}.footer-sources a{font-size:8px}}
@media(max-width:650px){.footer-sources a,.footer-sources button{font-size:9px}}
@media(max-width:800px){.mobile-nav-backdrop{display:block;position:fixed;inset:0;background:#19382e44;backdrop-filter:blur(3px);z-index:89}}
@media(max-width:800px){
 main{padding-bottom:calc(100px + env(safe-area-inset-bottom,0px))}
 .topbar{height:60px;padding:0 16px;background:#fbfcf9f0;backdrop-filter:blur(18px)}
 .search-wrap{height:38px;max-width:none}.search-wrap input{font-size:12px}
 .page-heading{margin-bottom:17px;gap:14px;flex-wrap:wrap}.page-heading h1{font-size:clamp(24px,5vw,30px);letter-spacing:-1px}.page-heading p{font-size:12px}.eyebrow{font-size:8px}.footer-sources a,.footer-sources button{font-size:10px}}
@media(max-width:500px){
 main{padding:19px 16px calc(100px + env(safe-area-inset-bottom,0px))}
 .eyebrow{display:none}.page-heading p{display:none}.page-heading h1{font-size:clamp(24px,6.7vw,29px)}}
@media(max-width:350px){
 main{padding-left:12px;padding-right:12px}.topbar{gap:7px;padding:0 12px}.search-wrap{padding:0 8px}.search-wrap input{font-size:11px}}

/* Breakpoints follow the app. */
@media(min-width:1550px){main{padding:37px 46px 25px}}
@media(max-width:1200px){.sidebar{width:190px}.app-shell{margin-left:190px}.brand{font-size:32px;padding-left:23px}.sidebar-note{margin-left:7px;margin-right:7px}.sidebar-note p{font-size:14px}.topbar{padding:0 25px}main{padding:28px 25px 20px}.post-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1020px){.sidebar{width:175px}.app-shell{margin-left:175px}.brand{font-size:30px;padding-left:20px}.brand-symbol{width:25px}.sidebar-note .note-orbit{display:none}.search-wrap{width:255px}.post-card.lead{flex-direction:column}.post-card.lead .post-thumb{width:100%}}
@media(max-width:800px){
	.sidebar{transform:translateX(-100%);width:230px;transition:transform .2s;z-index:90}
	.sidebar.show{transform:translateX(0);box-shadow:15px 0 40px #123b3420}
	.app-shell{margin-left:0}
	.mobile-menu{display:flex}
	.mobile-nav-backdrop:not([hidden]){display:block;position:fixed;inset:0;background:#19382e44;backdrop-filter:blur(3px);z-index:89}
	.topbar{padding:0 16px;height:66px;gap:10px}
	.breadcrumb{display:none}
	.search-wrap{flex:1;width:auto;height:38px}
	.search-wrap input{font-size:12px}
	main{padding:24px 16px 18px}
	.skip-link{left:20px}
	.page-heading{flex-direction:column;align-items:flex-start}
	.page-heading h1{font-size:clamp(24px,6.7vw,29px)}
	.post-grid,.post-grid.three{grid-template-columns:1fr}
	.article-head h1{font-size:clamp(26px,7vw,34px)}
	.article-card{padding:24px 20px}
	.prose{font-size:15.5px}
	.site-footer{flex-wrap:wrap}
	.footer-sources{margin-left:0;flex-wrap:wrap}
}
@media(prefers-reduced-motion:reduce){.brand-symbol svg{animation:none}.post-card{transition:none}}

/* The app mounts its backdrop only while the menu is open; here it is always in the DOM, toggled by [hidden]. */
.mobile-nav-backdrop[hidden]{display:none!important}

/* Country switcher, tags, video embeds. */
.country-chips{display:flex;flex-wrap:wrap;gap:8px;margin:-6px 0 22px}
.country-chips a{font-size:11px;padding:8px 14px;border-radius:999px;border:1px solid var(--border);background:var(--card);color:#5f7065}
.country-chips a:hover{background:var(--hover)}
.country-chips a.active{background:#e8eee1;color:#3a715c;border-color:#d5e0cc;font-weight:650}
[data-theme=dark] .country-chips a{color:var(--muted)}
[data-theme=dark] .country-chips a.active{background:#34462f;color:#c6d8b8;border-color:#40523a}
.tag-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:26px;padding-top:18px;border-top:1px solid var(--border)}
.tag-chip{font-size:11px;color:var(--accent);background:var(--hover);border-radius:6px;padding:6px 10px}
.tag-chip:hover{text-decoration:underline}
.prose .wp-block-embed{margin:1.4em 0}
.prose .wp-block-embed iframe{width:100%;height:auto;aspect-ratio:16/9;border:0;border-radius:10px;display:block}

/* Menu groups, app card, social links (same as the app). */
nav .nav-item{text-align:left}
.side-label.side-group{margin-top:24px}
.app-card{margin:26px 10px 14px;padding:16px;border-radius:10px;background:linear-gradient(135deg,#f0f0e5,#e9eddf);border:1px solid #e4e8d9;color:#4f6147}
.app-card .overline{font-size:8px;letter-spacing:1.4px;margin-bottom:6px}
.app-card strong{display:block;font-family:'Manrope',sans-serif;font-size:13px;line-height:1.35;letter-spacing:-.2px;color:var(--text)}
.app-card p{font-size:10px;line-height:1.55;color:#7c8a72;margin:5px 0 11px}
.store-buttons{display:flex;flex-wrap:wrap;gap:6px}
.store-buttons a{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:600;padding:7px 10px;border-radius:7px;background:#20302a;color:#fff;transition:background .18s}
.store-buttons a:hover{background:#3e6a54}
.follow-block{margin:4px 10px 18px;padding:0 6px}
.follow-block .overline{font-size:8px;letter-spacing:1.4px;margin-bottom:9px}
.social-row{display:flex;flex-wrap:wrap;gap:6px}
.social-row a{width:32px;height:32px;display:grid;place-items:center;border-radius:8px;border:1px solid var(--border);background:var(--card);color:#6e7e75;transition:color .18s,border-color .18s}
.social-row a:hover{color:var(--accent);border-color:#bdccb0}
.footer-follow{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:6px 0 10px}
[data-theme=dark] .app-card{background:#2d412d;border-color:#3d5336;color:#c8d6b8}
[data-theme=dark] .app-card p{color:#a9bb98}
[data-theme=dark] .store-buttons a{background:#3e5a46}
[data-theme=dark] .store-buttons a:hover{background:#5d8a6b}
@media(max-width:1200px){.app-card{margin-left:7px;margin-right:7px;padding:14px 12px}.follow-block{margin-left:7px;margin-right:7px;padding:0}}
@media(max-width:800px){.footer-follow{justify-content:flex-start}}
