/* Absolute Online — cover storefront brand layer.
   Class-based only: KSES strips inline style="" and inline <svg> from page content
   even after kses_remove_filters(), so every visual lives here.
   Typography is a deliberate system stack — no external font <link>, which the
   LiteSpeed CSS combiner silently swallows (leaving zero font requests while
   document.fonts.check() still returns true). */

:root{
  --ao-cream:#F7F3EC;
  --ao-ink:#1C2026;
  --ao-clay:#BC6040;
  --ao-sage:#748570;
  --ao-line:#E4DCD0;
  --ao-muted:#6B6862;
  --ao-panel:#FFFFFF;
}

html body{ background:var(--ao-cream); color:var(--ao-ink);
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif; }
h1,h2,h3,.ao-serif{ font-family:Georgia,"Times New Roman",serif; font-weight:600;
  letter-spacing:-.01em; }

/* ---------- shared shell ---------- */
.ao-wrap{ max-width:1180px; margin:0 auto; padding:0 22px; }
.ao-kicker{ text-transform:uppercase; letter-spacing:.18em; font-size:.72rem;
  color:var(--ao-clay); font-weight:700; margin:0 0 .6rem; }
.ao-lead{ font-size:1.06rem; line-height:1.75; color:var(--ao-muted); max-width:62ch; }

/* ---------- hero ---------- */
.ao-hero{ background:linear-gradient(180deg,#EFE8DD 0%,var(--ao-cream) 100%);
  border-bottom:1px solid var(--ao-line); padding:76px 0 66px; }
.ao-hero h1{ font-size:clamp(2rem,4.4vw,3.3rem); line-height:1.08; margin:0 0 1rem; }
.ao-hero .ao-lead{ margin:0 0 1.7rem; }
.ao-btn{ display:inline-block; background:var(--ao-ink); color:#fff!important;
  padding:.86rem 1.7rem; border-radius:999px; text-decoration:none; font-weight:600;
  font-size:.95rem; }
.ao-btn:hover{ background:#2c3138; }
.ao-btn--ghost{ background:transparent; color:var(--ao-ink)!important;
  border:1px solid var(--ao-ink); margin-left:.6rem; }

/* ---------- hero media ---------- */
.ao-hero-grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:38px; align-items:center; }
.ao-hero-media{ border-radius:16px; overflow:hidden; border:1px solid var(--ao-line);
  background:#fff; }
.ao-hero-media img{ display:block; width:100%; height:auto; }

/* ---------- category / feature grids ---------- */
.ao-section{ padding:62px 0; }
.ao-section--alt{ background:#F1EBE1; border-top:1px solid var(--ao-line);
  border-bottom:1px solid var(--ao-line); }
.ao-head{ text-align:center; margin:0 auto 34px; max-width:60ch; }
.ao-head h2{ font-size:clamp(1.5rem,2.6vw,2.1rem); margin:0 0 .5rem; }
.ao-head p{ margin:0; color:var(--ao-muted); }
.ao-grid{ display:grid; gap:20px; grid-template-columns:repeat(4,minmax(0,1fr)); }
.ao-grid--3{ grid-template-columns:repeat(3,minmax(0,1fr)); }
.ao-card{ background:var(--ao-panel); border:1px solid var(--ao-line); border-radius:14px;
  padding:26px 22px; }
.ao-card h3{ font-size:1.06rem; margin:0 0 .45rem; }
.ao-card p{ margin:0; color:var(--ao-muted); font-size:.93rem; line-height:1.6; }
.ao-card a{ color:var(--ao-ink); text-decoration:none; }

/* ---------- product tiles on hand-built pages ---------- */
.ao-tile{ background:var(--ao-panel); border:1px solid var(--ao-line); border-radius:14px;
  overflow:hidden; display:block; text-decoration:none; color:inherit; }
.ao-tile img{ display:block; width:100%; height:auto; aspect-ratio:1/1; object-fit:cover; }
.ao-tile-body{ padding:14px 16px 18px; }
.ao-tile-body h3{ font-size:.98rem; margin:0 0 .3rem; line-height:1.35; }
.ao-tile-price{ color:var(--ao-clay); font-weight:700; font-size:.95rem; }

/* ---------- trust band ---------- */
.ao-band{ background:var(--ao-ink); color:#F3EFE8; padding:46px 0; }
.ao-band .ao-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px; }
.ao-band h3{ color:#fff; font-size:1rem; margin:0 0 .35rem; letter-spacing:.01em; }
.ao-band p{ margin:0; color:#C6C0B6; font-size:.92rem; line-height:1.6; }

/* ---------- legal / identity pages ---------- */
.ao-doc{ max-width:820px; margin:0 auto; padding:52px 22px 70px; }
.ao-doc h1{ font-size:clamp(1.7rem,3vw,2.3rem); margin:0 0 .4rem; }
.ao-doc .ao-updated{ color:var(--ao-muted); font-size:.86rem; margin:0 0 2rem; }
.ao-doc h2{ font-size:1.12rem; margin:2rem 0 .5rem; }
.ao-doc p,.ao-doc li{ color:#3F4348; line-height:1.78; font-size:.98rem; }
.ao-doc ul{ padding-left:1.15rem; }
.ao-doc table{ width:100%; border-collapse:collapse; margin:1rem 0; }
.ao-doc th,.ao-doc td{ text-align:left; padding:.6rem .7rem; border-bottom:1px solid var(--ao-line);
  font-size:.95rem; }

/* ---------- woo loop polish (belts live in front_end_css) ---------- */
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  font-family:Georgia,"Times New Roman",serif!important; font-size:1rem!important; }
.woocommerce ul.products li.product .price{ color:var(--ao-ink)!important;
  font-weight:600; }
.woocommerce ul.products li.product img{ border-radius:10px; }

/* ---------- responsive ---------- */
@media (max-width:1024px){
  .ao-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ao-band .ao-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); }
  .ao-hero-grid{ grid-template-columns:1fr; }
}
@media (max-width:640px){
  .ao-grid,.ao-grid--3,.ao-band .ao-grid{ grid-template-columns:1fr; }
  .ao-hero{ padding:54px 0 46px; }
  .ao-btn--ghost{ margin-left:0; margin-top:.6rem; }
  .ao-section{ padding:46px 0; }
}

/* ---------- Astra default-palette overrides ----------
   Astra ships link/button blue (#0170B9). Every interactive surface must read as the
   brand or the storefront looks like an unfinished template to a reviewer. */
html body{ background:var(--ao-cream)!important; }
#page,.site,.site-content,.ast-container{ background:transparent!important; }

.main-header-menu a,.ast-header-break-point .main-header-menu a,
.main-navigation a,.ast-builder-menu a{ color:var(--ao-ink)!important; }
.main-header-menu .current-menu-item > a,.main-header-menu a:hover,
.main-navigation a:hover{ color:var(--ao-clay)!important; }

.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,
.woocommerce ul.products li.product .button,.woocommerce #respond input#submit,
.woocommerce a.button.alt,.woocommerce button.button.alt,
.wp-block-button__link,.ast-button,button[type="submit"]{
  background:var(--ao-ink)!important; background-image:none!important; color:#fff!important;
  border:0!important; border-radius:6px!important; font-weight:600!important;
  text-decoration:none!important; }
.woocommerce a.button:hover,.woocommerce button.button:hover,
.woocommerce ul.products li.product .button:hover,.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover{ background:var(--ao-clay)!important; color:#fff!important; }

.woocommerce ul.products li.product a,.woocommerce ul.products li.product .price,
.ao-tile,.ao-tile *,.ao-card,.ao-card *{ text-decoration:none!important; }
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  color:var(--ao-ink)!important; }
.woocommerce .woocommerce-breadcrumb,.woocommerce .woocommerce-breadcrumb a{
  color:var(--ao-muted)!important; text-decoration:none!important; }
.woocommerce-message,.woocommerce-info{ border-top-color:var(--ao-clay)!important; }
.woocommerce div.product p.price,.woocommerce div.product span.price{
  color:var(--ao-ink)!important; }
a{ color:var(--ao-ink); }
a:hover{ color:var(--ao-clay); }
