/*
Theme Name: Nice Talking With You
Theme URI: https://nicetalkingwithyou.com
Author: Max Piekart
Description: Modern ESL resources & shop theme. Custom "Exercise" library with Level/Topic/Type filters and WooCommerce shop, in the Nice Talking With You brand (Jost + Space Mono, lime/pink/ink/paper).
Version: 1.1.3
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: ntwy
*/

:root{
  --lime:#CCF600; --pink:#FF0082; --ink:#06050A; --paper:#FBFBF8;
  --sun:#FFDC00; --sky:#B3FDFE; --blue:#2D5BFF; --violet:#8B3DF5;
  --max:1280px;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{background:var(--paper);color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;line-height:1.5;}
a{color:var(--pink);text-decoration:none;}
a:hover{color:var(--ink);}
img{max-width:100%;height:auto;}
::selection{background:var(--lime);color:var(--pink);}
h1,h2,h3{letter-spacing:-0.02em;font-weight:600;margin:0;}

.ntwy-container{max-width:var(--max);margin:0 auto;padding-left:32px;padding-right:32px;}
.eyebrow{font-family:var(--font-mono);font-size:12px;font-weight:700;letter-spacing:0.2em;text-transform:uppercase;color:var(--pink);}
.mono{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:0.14em;}

/* Buttons */
.btn{display:inline-block;font-family:var(--font-mono);font-size:13px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;padding:14px 24px;border-radius:999px;border:2px solid var(--ink);cursor:pointer;transition:all .15s ease;}
.btn-sm{padding:11px 18px;font-size:12px;}
.btn-primary{background:var(--pink);color:var(--lime);}
.btn-primary:hover{background:var(--ink);color:var(--lime);}
.btn-outline{background:var(--paper);color:var(--ink);}
.btn-outline:hover{background:var(--lime);color:var(--pink);}
.btn-lime{background:var(--lime);color:var(--ink);}
.btn-lime:hover{background:var(--ink);color:var(--lime);}

/* Header */
.nav-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;padding:0 10px;background:var(--paper);border:2px solid var(--ink);border-radius:12px;cursor:pointer;}
.nav-toggle span{display:block;height:2px;background:var(--ink);}
.nav-toggle{background:var(--lime);animation:ntwy-ring 2s ease-out infinite;}
.site-header.nav-open .nav-toggle{animation:none;background:var(--ink);}
.site-header.nav-open .nav-toggle span{background:var(--lime);}
@media (prefers-reduced-motion:reduce){.nav-toggle{animation:none;}}
.site-header{position:sticky;top:0;z-index:50;background:var(--paper);border-bottom:2px solid var(--ink);}
.site-header .bar{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:14px;padding-bottom:14px;}
.brand{line-height:0.98;}
.brand .l{font-family:var(--font-sans);font-weight:600;font-size:21px;color:var(--ink);display:block;}
.hl-lime{background-image:linear-gradient(var(--lime),var(--lime));background-size:100% 34%;background-position:0 86%;background-repeat:no-repeat;padding:0 4px;}
.hl-pink{background-image:linear-gradient(var(--pink),var(--pink));background-size:100% 34%;background-position:0 86%;background-repeat:no-repeat;padding:0 4px;}
.main-nav{display:flex;align-items:center;gap:6px;list-style:none;margin:0;padding:0;}
.main-nav a{font-family:var(--font-mono);font-size:12px;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink);padding:9px 15px;border-radius:999px;border:2px solid transparent;white-space:nowrap;}
/* Tighten the bar before it runs out of room, so a menu item never breaks
   in the middle of a word. */
@media (max-width:1240px){.main-nav a{padding:8px 9px;font-size:11px;letter-spacing:0.06em;}.main-nav{gap:2px;}.site-header .bar{gap:14px;}}
@media (max-width:980px){.main-nav a{padding:7px 7px;font-size:10px;}}
.main-nav a:hover{color:var(--pink);}
.main-nav .current-menu-item a,.main-nav a[aria-current="page"]{color:var(--pink);border-color:var(--ink);}

/* Hero */
.hero{display:grid;grid-template-columns:1.08fr 0.92fr;gap:48px;align-items:center;padding-top:56px;padding-bottom:44px;}
.hero-title{font-size:64px;line-height:1.0;margin-top:18px;text-wrap:balance;}
.mark-lime{background-image:linear-gradient(var(--lime),var(--lime));background-size:100% 32%;background-position:0 88%;background-repeat:no-repeat;}
.mark-pink{background-image:linear-gradient(var(--pink),var(--pink));background-size:100% 32%;background-position:0 88%;background-repeat:no-repeat;}
.hero-lead{font-size:19px;color:rgba(6,5,10,.72);max-width:520px;margin-top:22px;text-wrap:pretty;}
.hero-cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px;}
.hero-note{margin-top:26px;font-size:12px;color:rgba(6,5,10,.5);}
.illus{aspect-ratio:1/1;border:2px solid var(--ink);border-radius:24px;background:var(--paper);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;}
.illus .circle{width:66%;aspect-ratio:1;border-radius:50%;background:var(--lime);position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.illus .stripes{position:absolute;inset:0;background:repeating-linear-gradient(45deg,rgba(6,5,10,.08) 0 12px,transparent 12px 24px);}
.illus .lbl{position:relative;font-family:var(--font-mono);font-size:12px;letter-spacing:0.14em;text-transform:uppercase;color:rgba(6,5,10,.6);text-align:center;line-height:1.6;}

/* Section heads */
.sec{padding-top:56px;padding-bottom:56px;}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;}
.sec-head h2{font-size:40px;margin-top:8px;}
.sec-link{font-family:var(--font-mono);font-size:13px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;}
.rule-top{border-top:2px solid var(--ink);padding-top:24px;}

/* Exercise cards (signature) */
.ex-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;margin-top:28px;}
.ex-card{display:flex;flex-direction:column;gap:18px;min-height:210px;border-radius:16px;padding:26px 24px;background:var(--lime);color:var(--pink);transition:transform .15s ease;}
.ex-card:hover{transform:translateY(-3px);color:var(--pink);}
.ex-card:nth-child(6n+2){background:var(--pink);color:var(--lime);}
.ex-card:nth-child(6n+3){background:var(--ink);color:var(--lime);}
.ex-card:nth-child(6n+4){background:var(--sun);color:var(--ink);}
.ex-card:nth-child(6n+5){background:var(--sky);color:var(--ink);}
.ex-card:nth-child(6n+0){background:var(--blue);color:var(--paper);}
.ex-top{display:flex;justify-content:space-between;align-items:center;gap:10px;}
.ex-level{font-family:var(--font-mono);font-size:12px;letter-spacing:0.2em;text-transform:uppercase;opacity:.85;}
.ex-badge{font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:0.16em;padding:3px 9px;border-radius:999px;border:1.5px solid currentColor;}
.ex-title{font-size:26px;line-height:1.08;}
.ex-bottom{margin-top:auto;display:flex;align-items:flex-end;justify-content:space-between;gap:12px;}
.ex-tags{font-family:var(--font-mono);font-size:11px;letter-spacing:0.14em;text-transform:uppercase;opacity:.85;}
.ex-action{font-family:var(--font-mono);font-size:13px;font-weight:700;white-space:nowrap;}

/* Topics band */
.band-dark{background:var(--ink);color:var(--paper);}
.band-dark .eyebrow{color:var(--lime);}
.band-dark h2{color:var(--paper);margin-bottom:28px;}
.topic-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;}
.topic-tile{border-radius:16px;padding:22px;min-height:132px;display:flex;flex-direction:column;justify-content:space-between;transition:transform .15s ease;}
.topic-tile:hover{transform:translateY(-3px);}
.topic-tile .c{font-family:var(--font-mono);font-size:11px;letter-spacing:0.14em;text-transform:uppercase;opacity:.8;}
.topic-tile .n{font-family:var(--font-sans);font-weight:600;font-size:24px;}
.t-lime{background:var(--lime);color:var(--pink);} .t-pink{background:var(--pink);color:var(--lime);}
.t-sun{background:var(--sun);color:var(--ink);} .t-sky{background:var(--sky);color:var(--ink);}
.t-blue{background:var(--blue);color:var(--paper);} .t-violet{background:var(--violet);color:var(--paper);}

/* Filters */
.filter-wrap{display:flex;flex-direction:column;gap:16px;margin:32px 0 4px;}
.filter-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.filter-row .lbl{font-family:var(--font-mono);font-size:11px;letter-spacing:0.16em;text-transform:uppercase;color:rgba(6,5,10,.5);min-width:64px;}
.chip{font-family:var(--font-mono);font-size:12px;letter-spacing:0.08em;text-transform:uppercase;padding:8px 14px;border-radius:999px;cursor:pointer;border:2px solid var(--ink);background:var(--paper);color:var(--ink);}
.chip.is-active{background:var(--ink);color:var(--paper);}
.result-count{font-family:var(--font-mono);font-size:12px;letter-spacing:0.14em;text-transform:uppercase;color:rgba(6,5,10,.5);border-top:2px solid var(--ink);padding-top:16px;margin-top:20px;}
.empty{border:2px dashed var(--ink);border-radius:16px;padding:56px 24px;text-align:center;margin-top:20px;}

/* Page hero (archive/single) */
.page-hero{padding-top:48px;}
.page-hero h1{font-size:56px;margin-top:12px;}
.page-hero p{font-size:18px;color:rgba(6,5,10,.7);max-width:600px;margin-top:14px;}

/* Single exercise */
.single-ex{max-width:760px;margin:0 auto;padding-top:48px;padding-bottom:72px;}
.single-ex .meta{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0 8px;}
.single-ex .content{font-size:18px;line-height:1.7;margin-top:24px;}
.single-ex .content h2{font-size:30px;margin:32px 0 12px;}
.single-ex .content img{border-radius:12px;}

/* Tutoring CTA */
.band-pink{background:var(--pink);}
.band-pink .cta-grid{display:grid;grid-template-columns:1.3fr 0.7fr;gap:40px;align-items:center;}
.band-pink .eyebrow{color:var(--lime);}
.band-pink h2{font-size:48px;line-height:1.02;color:var(--lime);margin-top:10px;}
.band-pink p{font-size:18px;color:var(--paper);max-width:560px;margin-top:16px;}

/* Shop / WooCommerce */
.woocommerce ul.products,.ntwy-products{list-style:none;margin:28px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px;}
.woocommerce ul.products li.product,.ntwy-product{background:var(--paper);border:2px solid var(--ink);border-radius:16px;overflow:hidden;text-align:left;margin:0;padding:0;display:flex;flex-direction:column;}
.woocommerce ul.products li.product a img,.ntwy-product .img{width:100%;aspect-ratio:4/3;object-fit:cover;margin:0;background:var(--lime);position:relative;display:block;}
.ntwy-product .img{display:flex;align-items:center;justify-content:center;}
.ntwy-product .img .stripes{position:absolute;inset:0;background:repeating-linear-gradient(45deg,rgba(6,5,10,.09) 0 11px,transparent 11px 22px);}
.ntwy-product .img .ph{position:relative;font-family:var(--font-mono);font-size:11px;letter-spacing:0.16em;text-transform:uppercase;color:rgba(6,5,10,.5);}
.woocommerce ul.products li.product .woocommerce-loop-product__title,.ntwy-product .t{font-family:var(--font-sans);font-weight:600;font-size:20px;padding:18px 20px 0;color:var(--ink);}
.ntwy-product .k{font-family:var(--font-mono);font-size:11px;letter-spacing:0.14em;text-transform:uppercase;color:rgba(6,5,10,.55);padding:16px 20px 0;}
.ntwy-product .b{font-size:14px;color:rgba(6,5,10,.6);padding:6px 20px 0;}
.woocommerce ul.products li.product .price,.ntwy-product .price{font-family:var(--font-sans);font-weight:700;font-size:22px;color:var(--ink)!important;padding:0 20px;}
.woocommerce ul.products li.product .price{margin:12px 0 0;}
.ntwy-product .foot{margin-top:auto;padding:14px 20px 20px;display:flex;align-items:center;justify-content:space-between;gap:10px;}
.woocommerce ul.products li.product{padding-bottom:18px;}
.woocommerce ul.products li.product .button,.woocommerce a.button,.woocommerce button.button{background:var(--pink)!important;color:var(--lime)!important;font-family:var(--font-mono)!important;font-size:12px!important;font-weight:700!important;letter-spacing:0.1em!important;text-transform:uppercase!important;border-radius:999px!important;border:2px solid var(--ink)!important;padding:10px 16px!important;margin:12px 20px 0!important;}
.woocommerce ul.products li.product .button:hover,.woocommerce a.button:hover{background:var(--ink)!important;color:var(--lime)!important;}
.woocommerce span.onsale{background:var(--lime)!important;color:var(--pink)!important;}

.bundle{background:var(--lime);border:2px solid var(--ink);border-radius:20px;padding:44px;display:grid;grid-template-columns:1.4fr 0.6fr;gap:32px;align-items:center;margin-top:8px;}
.bundle .eyebrow{color:var(--pink);}
.bundle h2{font-size:40px;color:var(--pink);margin-top:8px;}
.bundle p{font-size:17px;color:var(--ink);max-width:520px;margin-top:12px;}
.bundle .price{font-family:var(--font-sans);font-weight:700;font-size:44px;color:var(--ink);}

/* Footer */
.site-footer{background:var(--ink);color:var(--paper);margin-top:0;}
.site-footer .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:32px;padding-top:56px;padding-bottom:36px;}
.ntwy-mark{display:inline-flex;flex-direction:column;line-height:0.9;font-family:var(--font-sans);font-weight:700;font-size:30px;color:var(--paper);}
.ntwy-mark .a{background-image:linear-gradient(var(--lime),var(--lime));background-size:100% 40%;background-position:0 82%;background-repeat:no-repeat;padding:0 3px;}
.ntwy-mark .b{background-image:linear-gradient(var(--pink),var(--pink));background-size:100% 40%;background-position:0 82%;background-repeat:no-repeat;padding:0 3px;}
.site-footer .lbl{font-family:var(--font-mono);font-size:11px;letter-spacing:0.16em;text-transform:uppercase;color:rgba(251,251,248,.5);}
.site-footer ul{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:10px;}
.site-footer a{color:var(--paper);}
.site-footer a.lime{color:var(--lime);}
.site-footer .col p{color:rgba(251,251,248,.85);margin:14px 0 0;}
.footer-bottom{border-top:1px solid rgba(251,251,248,.15);}
.footer-bottom .fb{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-top:18px;padding-bottom:18px;font-family:var(--font-mono);font-size:11px;letter-spacing:0.12em;text-transform:uppercase;color:rgba(251,251,248,.5);}

@media(max-width:900px){
  .hero{grid-template-columns:1fr;} .illus{max-width:420px;}
  .hero-title{font-size:48px;} .page-hero h1{font-size:44px;}
  .band-pink .cta-grid,.bundle,.site-footer .cols{grid-template-columns:1fr;}
  .site-footer .cols{gap:24px;}
}
@media(max-width:600px){
  .ntwy-container{padding-left:20px;padding-right:20px;}
  .hero-title{font-size:40px;}
  .site-header .bar{position:relative;}
  .nav-toggle{display:flex;}
  .site-header nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--paper);border-bottom:2px solid var(--ink);padding:10px 20px 16px;}
  .site-header.nav-open nav{display:block;}
  .main-nav{flex-direction:column;align-items:stretch;gap:6px;}
  .main-nav a{display:block;font-size:13px;padding:11px 14px;}
}

/* Pulsing nav link (Irregular Verbs): flat brand colours, a ring that radiates and fades */
.main-nav a.ntwy-glow{background:var(--lime);color:var(--ink);font-weight:700;border-color:var(--ink);animation:ntwy-ring 2s ease-out infinite;}
.main-nav a.ntwy-glow:hover{background:var(--ink);color:var(--lime);}
@keyframes ntwy-ring{0%{box-shadow:0 0 0 0 rgba(255,0,130,.75);}70%,100%{box-shadow:0 0 0 12px rgba(255,0,130,0);}}
@media (prefers-reduced-motion:reduce){.main-nav a.ntwy-glow{animation:none;}}
