/*
Theme Name: Nine Optic — Astra Child
Theme URI: https://nineoptic.shop/
Description: Premium modern child theme for Nine Optic — reading-glasses specialist. Built on Astra. Cobalt & Violet identity, Sora/Inter typography, WooCommerce styling, custom header, footer and premium checkout.
Author: Nine Optic
Template: astra
Version: 1.0.0
Text Domain: nineoptic
*/

/* ============================================================
   BRAND TOKENS — Cobalt & Violet
   ============================================================ */
:root{
  --no-ink:#0E1116;
  --no-ink-2:#161B24;
  --no-ink-soft:#5A6070;
  --no-brand:#1E3A8A;        /* cobalt */
  --no-brand-d:#152C6B;
  --no-accent:#4F7BFF;       /* bright blue */
  --no-violet:#7C3AED;
  --no-violet-soft:#C9B8F5;
  --no-bg:#F5F7FC;           /* cool off-white */
  --no-bg-2:#EAEFFA;
  --no-line:#E3E8F2;
  --no-white:#ffffff;
  --no-radius:14px;
  --no-maxw:1200px;
  --no-grad:linear-gradient(135deg,#1E3A8A 0%,#4F46E5 55%,#7C3AED 100%);
  --no-font-head:'Sora','Space Grotesk',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --no-font-body:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
}

/* ============================================================
   BASE TYPOGRAPHY
   ============================================================ */
body,
.ast-container,
button, input, select, textarea{
  font-family:var(--no-font-body);
  color:var(--no-ink);
}
body{ font-size:16.5px; line-height:1.7; letter-spacing:.1px; -webkit-font-smoothing:antialiased; background:var(--no-white); }
h1,h2,h3,h4,.entry-title,.site-title{
  font-family:var(--no-font-head);
  color:var(--no-ink);
  font-weight:700;
  letter-spacing:-0.02em;
  line-height:1.14;
}
h1{ font-size:clamp(2.2rem,4.5vw,3.4rem); }
h2{ font-size:clamp(1.8rem,3.2vw,2.5rem); }
h3{ font-size:clamp(1.25rem,2vw,1.6rem); }
a{ color:var(--no-brand); text-underline-offset:3px; }
a:hover{ color:var(--no-violet); }
.ast-container{ max-width:var(--no-maxw); }

/* ============================================================
   HEADER
   ============================================================ */
.site-header,
.ast-primary-header-bar{ background:var(--no-white)!important; border-bottom:1px solid var(--no-line); }
.main-header-bar{ padding-top:8px; padding-bottom:8px; }
.site-logo-img img,.custom-logo-link img{ max-height:46px; width:auto; }
.main-header-menu .menu-link{
  font-family:var(--no-font-body);
  font-weight:600;
  font-size:15px;
  letter-spacing:.2px;
  color:var(--no-ink)!important;
  text-transform:none;
}
.main-header-menu .menu-link:hover,
.main-header-menu .current-menu-item > .menu-link{ color:var(--no-brand)!important; }
.main-header-menu > .menu-item > .menu-link{ position:relative; }
.main-header-menu > .menu-item > .menu-link:after{
  content:""; position:absolute; left:0; right:100%; bottom:2px; height:2px;
  background:var(--no-grad); transition:right .25s ease;
}
.main-header-menu > .menu-item:hover > .menu-link:after,
.main-header-menu > .current-menu-item > .menu-link:after{ right:0; }

/* header account + cart icons */
.main-header-menu .no-nav-icon > a{
  display:inline-flex; align-items:center; gap:4px; padding:6px 10px!important; color:var(--no-ink)!important; position:relative;
}
.main-header-menu .no-nav-icon > a:after{ display:none!important; }
.main-header-menu .no-nav-icon > a:hover{ color:var(--no-brand)!important; }
.no-cart .no-cart-c{
  font-family:var(--no-font-body); font-size:11px; font-weight:800; line-height:1;
  background:var(--no-violet); color:#fff; border-radius:999px; min-width:18px; height:18px;
  display:inline-flex; align-items:center; justify-content:center; padding:0 5px; margin-left:-4px;
}

/* Wordmark logo */
.no-wordmark{ font-family:var(--no-font-head); font-weight:800; font-size:1.55rem; letter-spacing:-.02em; color:var(--no-ink); line-height:1; display:inline-flex; flex-direction:column; text-decoration:none; }
.no-wordmark:hover{ color:var(--no-ink); }
.no-wordmark b{ color:var(--no-violet); font-weight:800; }
.no-wordmark small{ font-family:var(--no-font-body); font-weight:700; font-size:9.5px; letter-spacing:3px; color:var(--no-ink-soft); text-transform:uppercase; margin-top:3px; }
/* Logo shows brand — hide redundant site-title text */
.site-header .site-title,.ast-site-identity .site-title{ display:none !important; }

/* ============================================================
   BUTTONS
   ============================================================ */
.ast-button,.button,button,input[type=submit],
.wp-block-button__link,
.woocommerce a.button,.woocommerce button.button,
.woocommerce .button,.woocommerce #respond input#submit,
.added_to_cart{
  font-family:var(--no-font-body)!important;
  font-weight:700!important;
  letter-spacing:.3px;
  border-radius:999px!important;
  padding:.72em 1.7em!important;
  background:var(--no-brand)!important;
  background-image:var(--no-grad)!important;
  color:#fff!important;
  border:0!important;
  transition:all .2s ease;
  box-shadow:0 8px 20px rgba(79,70,229,.22)!important;
  text-transform:none!important;
  line-height:1.3!important;
}
.ast-button:hover,.button:hover,button:hover,
.wp-block-button__link:hover,
.woocommerce a.button:hover,.woocommerce button.button:hover,
.added_to_cart:hover{
  color:#fff!important;
  transform:translateY(-2px);
  box-shadow:0 12px 26px rgba(79,70,229,.32)!important;
  filter:saturate(1.08);
}
.no-btn-outline,.is-style-outline .wp-block-button__link{
  background:transparent!important; background-image:none!important; color:var(--no-ink)!important;
  border:2px solid var(--no-ink)!important; box-shadow:none!important;
}
.no-btn-outline:hover,.is-style-outline .wp-block-button__link:hover{
  background:var(--no-ink)!important; color:#fff!important;
}

/* ============================================================
   WOOCOMMERCE — SHOP / ARCHIVE
   ============================================================ */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product{ text-align:left; }
.woocommerce ul.products li.product a img{
  border-radius:var(--no-radius);
  background:var(--no-bg);
  margin-bottom:14px;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  font-family:var(--no-font-head);
  font-size:1.08rem; font-weight:700; color:var(--no-ink);
  padding:2px 0 4px; letter-spacing:-.01em;
}
.woocommerce ul.products li.product .price{
  color:var(--no-ink); font-weight:800; font-family:var(--no-font-body); font-size:1rem;
}
.woocommerce ul.products li.product .price del{ color:var(--no-ink-soft); font-weight:500; opacity:.7; }
.woocommerce ul.products li.product .price ins{ text-decoration:none; color:var(--no-violet); }
.woocommerce span.onsale{
  background:var(--no-violet); color:#fff; font-weight:700;
  border-radius:999px; min-height:auto; min-width:auto; padding:4px 12px; letter-spacing:.3px;
}
.woocommerce ul.products li.product .button{ margin-top:8px; }

/* single product */
.woocommerce div.product .product_title{ font-size:clamp(1.6rem,3vw,2.2rem); }
.woocommerce div.product p.price,
.woocommerce div.product span.price{ color:var(--no-ink); font-weight:800; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active{ border-bottom-color:var(--no-brand); }
.woocommerce-products-header__title{ font-family:var(--no-font-head); }

/* ============================================================
   CUSTOM FOOTER (rendered by child functions.php)
   ============================================================ */
#colophon,.site-footer,.ast-small-footer,.footer-adv{ display:none!important; }

.no-footer{ background:var(--no-ink); color:#C4CAD6; font-size:15px; }
.no-footer a{ color:#C4CAD6; text-decoration:none; }
.no-footer a:hover{ color:#fff; }
.no-footer .no-fwrap{ max-width:var(--no-maxw); margin:0 auto; padding:0 22px; }

.no-foot-edu{ border-bottom:1px solid rgba(255,255,255,.08); padding:44px 0; }
.no-foot-edu .no-fwrap{ display:grid; grid-template-columns:repeat(4,1fr); gap:26px; }
.no-edu-card h4{ color:#fff; font-family:var(--no-font-body); font-weight:700; font-size:15px; letter-spacing:.3px; margin:0 0 8px; text-transform:uppercase; }
.no-edu-card p{ margin:0; color:#98A0B0; font-size:14px; line-height:1.65; }
.no-edu-card .no-edu-ic{ font-size:22px; margin-bottom:10px; display:block; }

.no-foot-main{ padding:52px 0 30px; }
.no-foot-main .no-fwrap{ display:grid; grid-template-columns:1.5fr 1fr 1.3fr 1.2fr; gap:40px; }
.no-footer .no-brand{ font-family:var(--no-font-head); font-weight:800; font-size:1.5rem; color:#fff; margin:0 0 12px; letter-spacing:-.02em; }
.no-footer .no-brand b{ color:var(--no-violet-soft); font-weight:800; }
.no-footer p.no-tag{ color:#98A0B0; line-height:1.7; margin:0 0 16px; max-width:320px; }
.no-footer h5{ color:#fff; font-family:var(--no-font-body); font-weight:700; font-size:14px; letter-spacing:1px; text-transform:uppercase; margin:0 0 16px; }
.no-footer ul.no-flinks{ list-style:none; margin:0; padding:0; }
.no-footer ul.no-flinks li{ margin:0 0 10px; }
.no-footer .no-contact-row{ display:flex; gap:10px; margin:0 0 12px; color:#98A0B0; align-items:flex-start; }
.no-footer .no-contact-row .no-ic{ color:var(--no-accent); flex:0 0 auto; }
.no-power{ width:100%; border-collapse:collapse; font-size:13.5px; }
.no-power td{ padding:5px 0; border-bottom:1px solid rgba(255,255,255,.08); color:#98A0B0; }
.no-power td:last-child{ text-align:right; color:#fff; font-weight:700; }
.no-fb-btn{ display:inline-flex; align-items:center; gap:8px; background:rgba(255,255,255,.08); padding:8px 16px; border-radius:999px; margin-top:6px; font-weight:600; }
.no-fb-btn:hover{ background:var(--no-brand); color:#fff; }

.no-foot-bottom{ border-top:1px solid rgba(255,255,255,.08); padding:20px 0; }
.no-foot-bottom .no-fwrap{ display:flex; justify-content:space-between; align-items:center; gap:14px; flex-wrap:wrap; font-size:13.5px; color:#7A8090; }

@media (max-width:900px){
  .no-foot-edu .no-fwrap{ grid-template-columns:repeat(2,1fr); }
  .no-foot-main .no-fwrap{ grid-template-columns:1fr 1fr; gap:32px; }
}
@media (max-width:560px){
  .no-foot-edu .no-fwrap{ grid-template-columns:1fr; }
  .no-foot-main .no-fwrap{ grid-template-columns:1fr; }
}

/* ============================================================
   MISC POLISH
   ============================================================ */
.ast-separate-container .ast-article-post,
.ast-separate-container .comments-area{ background:transparent; }
.entry-content p a,.entry-content li a{ color:var(--no-brand); }
::selection{ background:var(--no-violet-soft); }

/* homepage button text safety (beat .entry-content a) */
.noh a.noh-btn{ color:#fff; text-decoration:none; }
.noh a.noh-btn.ghost{ color:#fff; }
.noh a.noh-btn.light{ color:var(--no-ink); }
.noh a.noh-btn.light:hover{ color:var(--no-ink); }

/* ============================================================
   INNER PAGES (.nop)  About / Contact / Policies
   ============================================================ */
.nop{--ink:#0E1116;--soft:#5A6070;--brand:#1E3A8A;--brand-d:#152C6B;--violet:#7C3AED;--accent:#4F7BFF;--bg:#F5F7FC;--line:#E3E8F2;font-family:var(--no-font-body);color:var(--ink);}
.nop *{box-sizing:border-box;}
.nop-hero{background:linear-gradient(135deg,#0E1116 0%,#1E3A8A 60%,#4F46E5 100%);text-align:center;padding:72px 22px 64px;color:#fff;}
.nop-hero .eyebrow{font-size:13px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--violet-soft,#C9B8F5);margin:0 0 14px;}
.nop-hero h1{font-family:var(--no-font-head);font-weight:800;font-size:clamp(2rem,4.2vw,3rem);letter-spacing:-.02em;margin:0 0 14px;color:#fff;}
.nop-hero p{max-width:640px;margin:0 auto;color:#C4CAD6;font-size:1.08rem;line-height:1.7;}
.nop-wrap{max-width:820px !important;margin:0 auto;padding:56px 22px;}
.nop-prose p{font-size:1.05rem;line-height:1.8;color:#2A2F3A;margin:0 0 18px;}
.nop-prose h2{font-family:var(--no-font-head);font-weight:700;font-size:1.7rem;letter-spacing:-.01em;margin:36px 0 14px;}
.nop-prose h3{font-family:var(--no-font-head);font-weight:700;font-size:1.3rem;margin:26px 0 10px;}
.nop-prose ul{margin:0 0 18px;padding-left:22px;}
.nop-prose li{line-height:1.8;margin:0 0 6px;color:#2A2F3A;}
.nop-cards{max-width:1000px !important;margin:10px auto 0;padding:0 22px 56px;display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.nop-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:26px;}
.nop-card .ic{font-size:24px;margin-bottom:12px;}
.nop-card h3{font-family:var(--no-font-head);font-weight:700;font-size:1.2rem;margin:0 0 8px;}
.nop-card p{color:var(--soft);font-size:14.5px;line-height:1.65;margin:0;}
.nop-contact{max-width:1000px !important;margin:0 auto;padding:56px 22px;display:grid;grid-template-columns:1fr 1fr;gap:40px;}
.nop-cinfo .row{display:flex;gap:14px;margin:0 0 22px;align-items:flex-start;}
.nop-cinfo .row .ci{width:44px;height:44px;flex:0 0 auto;border-radius:12px;background:var(--bg);display:flex;align-items:center;justify-content:center;font-size:20px;}
.nop-cinfo .row b{display:block;font-size:15px;margin-bottom:2px;}
.nop-cinfo .row span{color:var(--soft);font-size:14.5px;line-height:1.6;}
.nop-cinfo a{color:var(--brand);text-decoration:none;}
.nop-cta-row{margin-top:26px;display:flex;gap:12px;flex-wrap:wrap;}
.nop a.nop-btn{display:inline-block;font-weight:700;border-radius:999px;padding:12px 26px;text-decoration:none;background:var(--brand);background-image:var(--no-grad);color:#fff;border:0;}
.nop a.nop-btn:hover{filter:saturate(1.1);color:#fff;}
.nop a.nop-btn.wa{background:#128C7E;background-image:none;}
.nop-map{border-radius:16px;overflow:hidden;min-height:300px;border:1px solid var(--line);}
.nop-map iframe{width:100%;height:100%;min-height:340px;border:0;display:block;}
@media(max-width:820px){.nop-cards{grid-template-columns:1fr;}.nop-contact{grid-template-columns:1fr;}}

/* ============================================================
   THANK-YOU / ORDER-RECEIVED PAGE (.noty)
   ============================================================ */
.woocommerce-order-received .entry-title,
.woocommerce-order-received .ast-single-post-order .entry-title{ display:none !important; }
.woocommerce-order > .woocommerce-notice,
.woocommerce-order .woocommerce-order-overview,
.woocommerce-order .woocommerce-order-details,
.woocommerce-order .woocommerce-customer-details,
.woocommerce-order > p{ display:none !important; }

.noty{ max-width:640px; margin:10px auto 46px; font-family:var(--no-font-body); color:var(--no-ink); }
.noty-hero{ text-align:center; padding:6px 18px 28px; }
.noty-check{ width:80px;height:80px;border-radius:50%;background:var(--no-grad);display:inline-flex;align-items:center;justify-content:center;box-shadow:0 14px 34px rgba(124,58,237,.35);margin-bottom:18px; }
.noty-hero h1{ font-family:var(--no-font-head); font-weight:800; font-size:clamp(1.7rem,4vw,2.3rem); margin:0 0 12px; }
.noty-hero p{ color:var(--no-ink-soft); line-height:1.75; margin:0 auto; font-size:1.02rem; max-width:520px; }
.noty-card{ border:1px solid var(--no-line); border-radius:18px; overflow:hidden; background:#fff; box-shadow:0 8px 30px rgba(14,17,22,.06); }
.noty-top{ display:flex; justify-content:space-between; gap:16px; padding:18px 24px; background:var(--no-bg); border-bottom:1px solid var(--no-line); }
.noty-top span{ display:block; font-size:12px; letter-spacing:.5px; text-transform:uppercase; color:var(--no-ink-soft); margin-bottom:3px; }
.noty-top b{ font-size:16px; }
.noty-items{ padding:4px 24px; }
.noty-item{ display:flex; align-items:center; gap:14px; padding:16px 0; border-bottom:1px solid var(--no-line); }
.noty-item:last-child{ border-bottom:none; }
.noty-thumb img{ width:56px;height:56px;border-radius:10px;object-fit:cover;background:var(--no-bg);display:block; }
.noty-info{ flex:1; }
.noty-info b{ display:block; font-weight:600; margin-bottom:2px; }
.noty-info em{ font-style:normal; color:var(--no-ink-soft); font-size:13.5px; }
.noty-price{ font-weight:700; white-space:nowrap; }
.noty-total{ display:flex; justify-content:space-between; align-items:center; padding:18px 24px; background:var(--no-bg); font-size:1.05rem; }
.noty-total b{ font-size:1.3rem; color:var(--no-violet); }
.noty-meta{ padding:20px 24px; display:grid; gap:12px; }
.noty-meta > div{ display:flex; gap:10px; align-items:flex-start; color:#2A2F3A; font-size:14.5px; line-height:1.5; }
.noty-help{ text-align:center; margin:24px 0 20px; color:var(--no-ink-soft); }
.noty-help a{ color:var(--no-brand); font-weight:700; }
.noty-btn{ display:block; text-align:center; max-width:320px; margin:0 auto; background:var(--no-brand); background-image:var(--no-grad); color:#fff !important; font-weight:700; border-radius:999px; padding:14px 24px; text-decoration:none; }
.noty-btn:hover{ filter:saturate(1.1); color:#fff !important; }
@media(max-width:560px){ .noty-top{ flex-direction:column; gap:10px; } }
