/*
Theme Name: Fragman
Theme URI: https://fragman.gr/
Author: blackdesk
Description: Fullwidth, fluid-scaling creative magazine theme for perfume news & reviews. Henrik-style editorial layout (uppercase bold headlines, hairlines, red accent, asymmetric grid). Greek-only. Companion to "Aromata Core" plugin.
Version: 1.1.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: Fragman
*/

:root{
  --bg:#ffffff;
  --ink:#0d0d0d;
  --ink-soft:#1c1c1c;
  --muted:#8a8a8a;
  --line:#e6e6e6;
  --line-strong:#111;
  --accent:#e11d2a;          /* henrik-style red */
  --accent-ink:#c2121d;

  --gutter:clamp(20px, 5vw, 88px);
  --step--2:clamp(0.66rem, 0.62rem + 0.2vw, 0.74rem);
  --step--1:clamp(0.78rem, 0.74rem + 0.2vw, 0.86rem);
  --step-0:clamp(0.98rem, 0.94rem + 0.2vw, 1.06rem);
  --step-1:clamp(1.15rem, 1rem + 0.6vw, 1.45rem);
  --step-2:clamp(1.5rem, 1.15rem + 1.6vw, 2.4rem);
  --step-3:clamp(2rem, 1.2rem + 3.6vw, 4rem);
  --hero:clamp(2.6rem, 1rem + 7vw, 7rem);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:'Inter Tight',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  font-size:var(--step-0);line-height:1.6;font-weight:400;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  min-height:100vh;display:flex;flex-direction:column;
}
.site-main{flex:1 0 auto}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{margin:0;font-weight:800;line-height:1;}

.aw-full{width:100%;padding-inline:var(--gutter)}
.aw-wide{width:100%;padding-inline:var(--gutter)}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

.rule{height:1px;background:var(--line);border:0;margin:0}

/* uppercase meta helper */
.eyebrow,.meta,.cat-pill,.header-link,.section-label,.viewall,.filter-label{
  text-transform:uppercase;letter-spacing:.14em;font-weight:600;font-size:var(--step--1);
}

/* ============================ HEADER ============================ */
.site-header{position:sticky;top:0;z-index:50;background:var(--bg);border-bottom:1px solid var(--line)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:clamp(66px,6vw,104px)}
.site-logo{display:flex;align-items:center}
.site-logo svg,.site-logo img{height:clamp(24px,2.6vw,34px);width:auto;fill:var(--ink)}
.header-actions{display:flex;align-items:center;gap:clamp(16px,2vw,34px)}
.header-link{display:inline-flex;align-items:center;gap:9px;color:var(--ink);white-space:nowrap;position:relative}
.header-link:hover{color:var(--accent)}
.header-link .dot{width:9px;height:9px;border-radius:50%;background:var(--ink);display:inline-block}
.header-link:hover .dot{background:var(--accent)}
.wishlist-toggle svg{width:19px;height:19px}
.wishlist-count{min-width:19px;height:19px;padding:0 5px;background:var(--accent);color:#fff;border-radius:999px;font-size:11px;font-weight:700;display:none;align-items:center;justify-content:center;line-height:19px;letter-spacing:0}
.wishlist-count.on{display:inline-flex}
.header-sep{width:1px;height:20px;background:var(--line)}

/* ============================ HERO (featured post) ============================ */
.hero{padding-top:clamp(30px,5vw,72px);padding-bottom:clamp(24px,3vw,44px)}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(24px,4vw,72px);align-items:start}
.hero-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:clamp(14px,2vw,22px);color:var(--muted)}
.hero-meta .sep{color:var(--line-strong)}
.hero-title{font-size:clamp(2.1rem, 0.7rem + 6vw, 6rem);text-transform:uppercase;letter-spacing:-.02em;line-height:.95;margin:0}
.hero-title a{display:inline;background-image:linear-gradient(var(--accent),var(--accent));background-size:0 3px;background-repeat:no-repeat;background-position:0 calc(100% - 0.1em);transition:background-size .4s ease}
.hero-title a:hover{background-size:100% 3px}
.hero-excerpt{color:var(--ink-soft);font-size:var(--step-1);max-width:44ch;margin:clamp(20px,3vw,34px) 0 0}
.hero-media{align-self:stretch}
.hero-media a{display:block;overflow:hidden;aspect-ratio:4/5}
.hero-media img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.hero-media a:hover img{transform:scale(1.05)}

/* category outline pills */
.cat-pill{display:inline-flex;align-items:center;border:1px solid var(--line-strong);border-radius:999px;padding:4px 12px;color:var(--ink);letter-spacing:.1em}
.cat-pill:hover{background:var(--ink);color:#fff}
.cat-pill.is-kritikes{border-color:var(--accent);color:var(--accent)}
.cat-pill.is-kritikes:hover{background:var(--accent);color:#fff}

/* ============================ SECTION BAR ============================ */
.section-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:clamp(28px,4vw,54px) 0 clamp(18px,2vw,26px)}
.section-label{display:inline-flex;align-items:center;gap:12px;color:var(--ink);font-size:var(--step--1)}
.section-label .bullet{width:11px;height:11px;border-radius:50%;background:var(--ink)}
.section-tools{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.filter{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.filter-label{color:var(--muted)}
.chip{border:1px solid var(--line-strong);border-radius:999px;padding:6px 14px;font-size:var(--step--1);text-transform:uppercase;letter-spacing:.1em;font-weight:600;color:var(--ink);cursor:pointer;background:transparent}
.chip:hover{background:var(--ink);color:#fff}
.chip.active{background:var(--ink);color:#fff}
.viewall{color:var(--ink);border-bottom:1px solid var(--ink);padding-bottom:2px}
.viewall:hover{color:var(--accent);border-color:var(--accent)}

/* ============================ POST GRID ============================ */
.post-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(26px,3vw,56px) clamp(22px,2.4vw,44px)}
@media (max-width:1100px){.post-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.post-grid{grid-template-columns:1fr}}

.post-card{display:flex;flex-direction:column;min-width:0}
.post-card .thumb{position:relative;overflow:hidden;aspect-ratio:4/3;background:#f2f2f2}
.post-card .thumb img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.post-card:hover .thumb img{transform:scale(1.05)}
.post-card .thumb .noimg{width:100%;height:100%;display:grid;place-items:center;font-weight:800;font-size:clamp(46px,7vw,90px);color:#d8d8d8;background:#f4f4f4}
.post-card .card-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:var(--muted);margin:clamp(14px,1.6vw,20px) 0 10px}
.post-card .card-meta .sep{color:var(--line-strong)}
.post-card h3.card-title{font-size:var(--step-2);text-transform:uppercase;letter-spacing:-.01em;line-height:1}
.post-card h3.card-title a{background-image:linear-gradient(var(--accent),var(--accent));background-size:0 2px;background-repeat:no-repeat;background-position:0 calc(100% - 0.12em);transition:background-size .35s ease}
.post-card:hover h3.card-title a{background-size:100% 2px}
.post-card .card-excerpt{color:var(--muted);font-size:var(--step-0);margin:12px 0 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* featured (first) grid card — large, spans two columns/rows on desktop */
.post-card.feature{grid-column:span 2;grid-row:span 2}
.post-card.feature .thumb{aspect-ratio:16/11}
.post-card.feature h3.card-title{font-size:var(--step-3)}
@media (max-width:1100px){.post-card.feature{grid-column:span 2;grid-row:auto}}
@media (max-width:640px){.post-card.feature{grid-column:span 1}}

/* ============================ LOAD MORE ============================ */
.load-more-wrap{display:flex;justify-content:center;padding:clamp(40px,6vw,90px) 0 clamp(50px,7vw,120px)}
.btn{font-family:inherit;font-size:var(--step--1);font-weight:700;text-transform:uppercase;letter-spacing:.14em;border-radius:999px;padding:16px 40px;border:1px solid var(--ink);background:transparent;color:var(--ink);cursor:pointer;display:inline-flex;align-items:center;gap:12px;transition:all .18s ease}
.btn:hover{background:var(--ink);color:#fff}
.btn[disabled]{opacity:.45;cursor:default;background:transparent;color:var(--ink)}
.btn.solid{background:var(--accent);border-color:var(--accent);color:#fff}
.btn.solid:hover{background:var(--accent-ink);border-color:var(--accent-ink)}
.aw-spinner{width:16px;height:16px;border:2px solid rgba(0,0,0,.2);border-top-color:currentColor;border-radius:50%;animation:aw-spin .7s linear infinite}
@keyframes aw-spin{to{transform:rotate(360deg)}}
.skeleton .thumb{background:linear-gradient(90deg,#efefef 25%,#f7f7f7 37%,#efefef 63%);background-size:400% 100%;animation:aw-shimmer 1.4s ease infinite}
.skeleton .sk-line{height:14px;background:#eee;margin:10px 0}
.skeleton .sk-line.short{width:45%}
@keyframes aw-shimmer{0%{background-position:100% 0}100%{background-position:-100% 0}}

/* ============================ SINGLE ============================ */
.single-head{padding-top:clamp(30px,5vw,72px)}
.single-head .single-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap;color:var(--muted);margin-bottom:clamp(16px,2vw,24px)}
.single-head .single-meta .sep{color:var(--line-strong)}
.single-title{font-size:var(--hero);text-transform:uppercase;letter-spacing:-.02em;line-height:1;max-width:20ch}
.single-featured{margin:clamp(26px,4vw,52px) 0 0;overflow:hidden;aspect-ratio:16/9}
.single-featured img{width:100%;height:100%;object-fit:cover}
.single-body{max-width:760px;margin:clamp(30px,4vw,56px) auto 0}
.entry-content{font-size:var(--step-1);line-height:1.8;color:var(--ink-soft)}
.entry-content p{margin:0 0 1.2em}
.entry-content h2{font-size:var(--step-2);text-transform:uppercase;margin:1.6em 0 .5em}
.entry-content h3{font-size:var(--step-1);margin:1.4em 0 .5em}
.entry-content a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.entry-content img{margin:1.5em 0}
.entry-content blockquote{margin:1.6em 0;padding-left:22px;border-left:3px solid var(--accent);font-style:italic;color:var(--muted)}
.source-box{max-width:760px;margin:clamp(34px,4vw,56px) auto 0;padding:22px 24px;border:1px solid var(--line-strong);display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.source-box .lbl{text-transform:uppercase;letter-spacing:.16em;font-weight:700;font-size:var(--step--1)}
.source-box a{color:var(--accent);font-weight:700;text-decoration:underline;text-underline-offset:3px}

/* pages */
.page-shell{padding-top:clamp(30px,4vw,60px);padding-bottom:clamp(50px,7vw,120px)}
.page-title{font-size:var(--step-3);text-transform:uppercase;letter-spacing:-.01em;margin-bottom:clamp(20px,3vw,36px)}

/* ============================ FOOTER ============================ */
.site-footer{border-top:1px solid var(--line);margin-top:auto;flex-shrink:0}
.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;padding-block:clamp(30px,3vw,50px);color:var(--muted);font-size:var(--step--1)}
.footer-inner .brand svg,.footer-inner .brand img{height:22px;width:auto;fill:var(--ink)}
.footer-inner .up{text-transform:uppercase;letter-spacing:.14em;font-weight:600}

@media (max-width:820px){
  .hero-grid{grid-template-columns:1fr}
  .hero-media{order:-1}
  .hero-media a{aspect-ratio:16/10}
}
@media (max-width:640px){.header-link .txt-full{display:none}.footer-inner .up{margin-left:auto;align-self:flex-end}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* single bottom spacing */
.single .site-main > article{padding-bottom:clamp(64px,8vw,120px)}

/* Lenis smooth scroll */
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: hidden; }
.lenis.lenis-smooth iframe { pointer-events: none; }

/* Laptop range (1280-1440px): smaller hero + card titles */
@media (min-width: 1280px) and (max-width: 1440px) {
  .hero-title, .single-title { font-size: 4rem; }
  .post-card h3.card-title { font-size: 1.9rem; }
  .post-card.feature h3.card-title { font-size: 2.6rem; }
}
