/*
Theme Name: LumaPress
Theme URI: https://example.com/lumapress
Author: Codex
Description: A refined, responsive publishing theme inspired by modern content platforms. Includes hero layout, post cards, dark mode, sidebar widgets and full block editor support.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: lumapress
Tags: blog, news, grid-layout, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready, wide-blocks
*/
:root{--lp-bg:#f6f7fb;--lp-surface:#fff;--lp-text:#172033;--lp-muted:#6b7280;--lp-line:#e7e9f0;--lp-primary:#6759e8;--lp-primary-2:#9b62e9;--lp-shadow:0 12px 36px rgba(30,36,60,.08);--lp-radius:18px;--lp-max:1180px}
html[data-theme="dark"]{--lp-bg:#0e1220;--lp-surface:#171c2d;--lp-text:#edf0fa;--lp-muted:#a2a9bb;--lp-line:#2a3147;--lp-shadow:0 15px 42px rgba(0,0,0,.22)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--lp-bg);color:var(--lp-text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;font-size:16px;line-height:1.75;transition:background .25s,color .25s}a{color:inherit;text-decoration:none}img{display:block;max-width:100%;height:auto}button,input,textarea,select{font:inherit}.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}.skip-link:focus{clip:auto!important;width:auto;height:auto;margin:8px;padding:10px 14px;background:var(--lp-surface);z-index:9999}.site-header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--lp-bg) 88%,transparent);border-bottom:1px solid color-mix(in srgb,var(--lp-line) 70%,transparent);backdrop-filter:blur(16px)}.admin-bar .site-header{top:32px}.header-inner{max-width:var(--lp-max);height:76px;margin:auto;padding:0 22px;display:flex;align-items:center;gap:32px}.site-branding{display:flex;align-items:center;gap:11px;min-width:max-content}.custom-logo{max-height:42px;width:auto}.brand-mark{display:grid;place-items:center;width:39px;height:39px;border-radius:13px;background:linear-gradient(135deg,var(--lp-primary),var(--lp-primary-2));color:white;font-weight:900;box-shadow:0 8px 20px color-mix(in srgb,var(--lp-primary) 30%,transparent)}.site-title{font-size:18px;font-weight:800;letter-spacing:-.02em}.primary-nav{margin-left:auto}.primary-nav ul{list-style:none;display:flex;align-items:center;gap:27px;margin:0;padding:0}.primary-nav a{position:relative;color:var(--lp-muted);font-size:14px;font-weight:600}.primary-nav a:hover,.primary-nav .current-menu-item>a{color:var(--lp-primary)}.header-tools{display:flex;align-items:center;gap:8px}.icon-button,.menu-toggle{display:grid;place-items:center;width:39px;height:39px;padding:0;border:1px solid var(--lp-line);border-radius:12px;background:var(--lp-surface);color:var(--lp-text);cursor:pointer}.menu-toggle{display:none}.hero{position:relative;overflow:hidden;padding:80px 22px 70px}.hero:before,.hero:after{content:"";position:absolute;border-radius:50%;filter:blur(1px);pointer-events:none}.hero:before{width:440px;height:440px;right:-130px;top:-210px;background:radial-gradient(circle,color-mix(in srgb,var(--lp-primary) 19%,transparent),transparent 70%)}.hero:after{width:360px;height:360px;left:-190px;bottom:-240px;background:radial-gradient(circle,color-mix(in srgb,var(--lp-primary-2) 17%,transparent),transparent 70%)}.hero-inner{position:relative;max-width:920px;margin:auto;text-align:center}.hero-badge{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border:1px solid color-mix(in srgb,var(--lp-primary) 28%,var(--lp-line));border-radius:999px;background:color-mix(in srgb,var(--lp-primary) 7%,var(--lp-surface));color:var(--lp-primary);font-size:12px;font-weight:700}.hero h1{max-width:820px;margin:20px auto 17px;font-size:clamp(38px,6vw,70px);line-height:1.1;letter-spacing:-.055em}.gradient-text{background:linear-gradient(100deg,var(--lp-primary),var(--lp-primary-2));-webkit-background-clip:text;background-clip:text;color:transparent}.hero p{max-width:650px;margin:auto;color:var(--lp-muted);font-size:18px}.hero-actions{display:flex;justify-content:center;gap:11px;margin-top:28px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:45px;padding:0 19px;border:1px solid var(--lp-line);border-radius:13px;background:var(--lp-surface);font-size:14px;font-weight:700;box-shadow:0 5px 16px rgba(20,25,45,.05)}.button-primary{border-color:transparent;background:linear-gradient(135deg,var(--lp-primary),var(--lp-primary-2));color:#fff}.site-main{max-width:var(--lp-max);margin:0 auto;padding:25px 22px 80px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:22px}.section-heading h2{margin:0;font-size:27px;line-height:1.25;letter-spacing:-.025em}.section-heading p{margin:5px 0 0;color:var(--lp-muted);font-size:14px}.content-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:28px;align-items:start}.post-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:21px}.post-card{overflow:hidden;background:var(--lp-surface);border:1px solid var(--lp-line);border-radius:var(--lp-radius);box-shadow:var(--lp-shadow);transition:transform .22s,border-color .22s}.post-card:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--lp-primary) 35%,var(--lp-line))}.post-thumbnail{position:relative;display:block;aspect-ratio:16/9;overflow:hidden;background:linear-gradient(135deg,color-mix(in srgb,var(--lp-primary) 15%,var(--lp-surface)),color-mix(in srgb,var(--lp-primary-2) 10%,var(--lp-surface)))}.post-thumbnail img{width:100%;height:100%;object-fit:cover;transition:transform .35s}.post-card:hover .post-thumbnail img{transform:scale(1.035)}.placeholder-thumb{height:100%;display:grid;place-items:center;color:var(--lp-primary);font-size:34px;font-weight:900}.post-card-body{padding:20px}.post-categories{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:10px}.post-categories a{padding:4px 9px;border-radius:99px;background:color-mix(in srgb,var(--lp-primary) 9%,var(--lp-surface));color:var(--lp-primary);font-size:11px;font-weight:700}.post-card h2{margin:0;font-size:20px;line-height:1.45;letter-spacing:-.02em}.post-card h2 a:hover{color:var(--lp-primary)}.post-excerpt{margin:10px 0 0;color:var(--lp-muted);font-size:14px;line-height:1.7}.post-meta{display:flex;align-items:center;gap:9px;margin-top:16px;padding-top:14px;border-top:1px solid var(--lp-line);color:var(--lp-muted);font-size:12px}.post-meta .dot{width:3px;height:3px;border-radius:50%;background:currentColor}.sidebar{display:grid;gap:18px}.widget{padding:21px;background:var(--lp-surface);border:1px solid var(--lp-line);border-radius:var(--lp-radius);box-shadow:var(--lp-shadow)}.widget-title{margin:0 0 15px;font-size:16px}.widget ul{list-style:none;margin:0;padding:0}.widget li+li{margin-top:10px;padding-top:10px;border-top:1px solid var(--lp-line)}.widget a{color:var(--lp-muted);font-size:14px}.widget a:hover{color:var(--lp-primary)}.widget_search .wp-block-search__inside-wrapper,.search-form{display:flex}.search-field,.wp-block-search__input,input[type="text"],input[type="email"],input[type="url"],textarea{width:100%;padding:11px 13px;border:1px solid var(--lp-line);border-radius:11px;background:var(--lp-bg);color:var(--lp-text);outline:none}.search-submit,.wp-block-search__button,input[type="submit"]{padding:0 14px;border:0;border-radius:11px;background:var(--lp-primary);color:#fff;font-weight:700;cursor:pointer}.pagination{grid-column:1/-1;margin-top:30px}.nav-links{display:flex;justify-content:center;gap:7px}.page-numbers{display:grid;place-items:center;min-width:39px;height:39px;padding:0 10px;border:1px solid var(--lp-line);border-radius:10px;background:var(--lp-surface);font-size:13px}.page-numbers.current{border-color:var(--lp-primary);background:var(--lp-primary);color:#fff}.page-header{margin-bottom:28px;padding:29px;background:var(--lp-surface);border:1px solid var(--lp-line);border-radius:var(--lp-radius)}.page-header h1{margin:0;font-size:34px}.archive-description{color:var(--lp-muted)}.single-wrap{max-width:900px;margin:auto}.single-article,.page-article{padding:clamp(24px,5vw,58px);background:var(--lp-surface);border:1px solid var(--lp-line);border-radius:24px;box-shadow:var(--lp-shadow)}.entry-header{text-align:center;margin-bottom:34px}.entry-header .post-categories{justify-content:center}.entry-title{margin:12px auto;font-size:clamp(32px,5vw,52px);line-height:1.2;letter-spacing:-.045em}.entry-meta{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;color:var(--lp-muted);font-size:13px}.entry-featured{margin:0 0 38px}.entry-featured img{width:100%;border-radius:17px}.entry-content{font-size:17px}.entry-content>*{max-width:720px;margin-left:auto;margin-right:auto}.entry-content>.alignwide{max-width:1020px}.entry-content>.alignfull{max-width:none;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}.entry-content h2,.entry-content h3{margin-top:2em;line-height:1.3}.entry-content a{color:var(--lp-primary);text-decoration:underline}.entry-content blockquote{padding:14px 22px;border-left:4px solid var(--lp-primary);background:var(--lp-bg);border-radius:0 12px 12px 0}.entry-content pre{overflow:auto;padding:18px;border-radius:13px;background:#161b2b;color:#e8ebf6}.entry-content code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.entry-footer{margin-top:35px;padding-top:20px;border-top:1px solid var(--lp-line);color:var(--lp-muted);font-size:13px}.author-box{display:flex;gap:16px;margin-top:24px;padding:22px;background:var(--lp-bg);border-radius:16px}.author-box img{border-radius:50%}.author-box h3{margin:0 0 5px}.author-box p{margin:0;color:var(--lp-muted);font-size:14px}.post-navigation{margin-top:22px}.post-navigation .nav-links{display:grid;grid-template-columns:1fr 1fr}.post-navigation a{display:block;padding:17px;border:1px solid var(--lp-line);border-radius:14px;background:var(--lp-surface)}.comments-area{margin-top:25px;padding:28px;background:var(--lp-surface);border:1px solid var(--lp-line);border-radius:var(--lp-radius)}.comment-list{padding-left:22px}.comment-body{margin-bottom:20px;padding-bottom:20px;border-bottom:1px solid var(--lp-line)}.site-footer{padding:45px 22px 28px;background:var(--lp-surface);border-top:1px solid var(--lp-line)}.footer-inner{max-width:var(--lp-max);margin:auto}.footer-grid{display:grid;grid-template-columns:1.4fr repeat(2,1fr);gap:40px}.footer-brand p{max-width:390px;color:var(--lp-muted);font-size:14px}.footer-title{margin:0 0 12px;font-size:14px}.footer-menu{list-style:none;margin:0;padding:0}.footer-menu li{margin:7px 0}.footer-menu a{color:var(--lp-muted);font-size:13px}.site-info{display:flex;justify-content:space-between;gap:16px;margin-top:32px;padding-top:20px;border-top:1px solid var(--lp-line);color:var(--lp-muted);font-size:12px}.empty-state{grid-column:1/-1;padding:60px;text-align:center;background:var(--lp-surface);border:1px solid var(--lp-line);border-radius:var(--lp-radius)}.back-top{position:fixed;right:22px;bottom:22px;width:42px;height:42px;border:0;border-radius:13px;background:var(--lp-primary);color:#fff;box-shadow:var(--lp-shadow);opacity:0;pointer-events:none;transition:.2s}.back-top.visible{opacity:1;pointer-events:auto}
@media(max-width:920px){.primary-nav{position:fixed;inset:76px 16px auto;padding:18px;background:var(--lp-surface);border:1px solid var(--lp-line);border-radius:15px;box-shadow:var(--lp-shadow);opacity:0;transform:translateY(-10px);pointer-events:none;transition:.2s}.primary-nav.open{opacity:1;transform:none;pointer-events:auto}.primary-nav ul{display:grid;gap:6px}.primary-nav a{display:block;padding:9px}.menu-toggle{display:grid}.content-layout{grid-template-columns:1fr}.sidebar{grid-template-columns:repeat(2,1fr)}.hero{padding-top:60px}}
@media(max-width:660px){.header-inner{height:66px;padding:0 15px}.site-description{display:none}.hero{padding:48px 16px 45px}.hero p{font-size:16px}.hero-actions{flex-direction:column;align-items:stretch}.site-main{padding:18px 15px 55px}.post-grid{grid-template-columns:1fr}.sidebar{grid-template-columns:1fr}.single-article,.page-article{padding:24px 18px;border-radius:18px}.entry-title{font-size:33px}.footer-grid{grid-template-columns:1fr}.site-info{display:block}.admin-bar .site-header{top:46px}.post-navigation .nav-links{grid-template-columns:1fr}}
