/* Paws & Cherish — design tokens + component layer
   Implements the locked design spec. Loaded via mu-plugin.
   Remove the mu-plugin to fully hand rendering back to Bricks. */

/* ---- Self-hosted fonts ---- */
@font-face{font-family:'Fraunces';font-style:normal;font-weight:600;font-display:swap;
  src:url('../fonts/fraunces-600.woff2') format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;
  src:url('../fonts/inter-400.woff2') format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;
  src:url('../fonts/inter-500.woff2') format('woff2');}

:root{
  --bg:#FBF8F4; --surface:#FFFFFF; --fg:#2A2724; --muted:#6B635B; --line:#E5DDD3;
  --brand:#2F4739; --brand-soft:#E8EDE8; --cta:#B4623F; --cta-hover:#9C5334;
  --success:#3F6B4F; --error:#A33F30;
  --font-display:'Fraunces',Georgia,serif; --font-body:'Inter',system-ui,sans-serif;
  --t-xs:.8rem; --t-sm:1rem; --t-md:1.25rem; --t-lg:1.563rem; --t-xl:1.953rem;
  --t-2xl:2.441rem; --t-3xl:3.052rem; --lh-tight:1.15; --lh-body:1.6; --track-display:-.02em;
  --s-1:4px; --s-2:8px; --s-3:16px; --s-4:24px; --s-5:32px; --s-6:48px; --s-7:64px; --s-8:96px;
  --r-sm:4px; --r-md:8px; --r-lg:12px;
  --dur-fast:150ms; --dur-base:200ms; --dur-slow:400ms; --ease:cubic-bezier(.4,0,.2,1);
  --container:1200px; --container-narrow:720px;
}

/* ---- Base ---- */
body.pc{background:var(--bg);color:var(--fg);font-family:var(--font-body);
  font-size:var(--t-sm);line-height:var(--lh-body);-webkit-font-smoothing:antialiased;margin:0;}
.pc h1,.pc h2,.pc h3,.pc h4{font-family:var(--font-display);font-weight:600;
  line-height:var(--lh-tight);letter-spacing:var(--track-display);color:var(--brand);margin:0 0 var(--s-3);}
.pc h1{font-size:var(--t-3xl);} .pc h2{font-size:var(--t-2xl);} .pc h3{font-size:var(--t-lg);}
.pc p{margin:0 0 var(--s-3);} .pc a{color:var(--brand);text-decoration:none;}
.pc img{max-width:100%;height:auto;display:block;}
.pc-container{max-width:var(--container);margin-inline:auto;padding-inline:var(--s-4);}
.pc-narrow{max-width:var(--container-narrow);margin-inline:auto;padding-inline:var(--s-4);}
.pc-section{padding-block:var(--s-8);}
.pc-section--soft{background:var(--brand-soft);}
.pc-eyebrow{font-size:var(--t-xs);letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);font-weight:500;margin-bottom:var(--s-2);}
.pc-lead{font-size:var(--t-md);color:var(--muted);}
.pc-center{text-align:center;} .pc-center .pc-lead{margin-inline:auto;max-width:52ch;}

/* ---- Buttons: --cta reserved for action only ---- */
.pc-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);
  min-height:48px;padding:0 var(--s-5);border-radius:var(--r-md);font-family:var(--font-body);
  font-weight:500;font-size:var(--t-sm);cursor:pointer;border:1px solid transparent;
  transition:background var(--dur-base) var(--ease),color var(--dur-base) var(--ease),border-color var(--dur-base) var(--ease);}
.pc-btn--cta{background:var(--cta);color:#fff;}
.pc-btn--cta:hover{background:var(--cta-hover);color:#fff;}
.pc-btn--ghost{background:transparent;color:var(--brand);border-color:var(--brand);}
.pc-btn--ghost:hover{background:var(--brand);color:#fff;}
.pc-btn--light{background:#fff;color:var(--brand);border-color:var(--line);}
.pc-btn--light:hover{border-color:var(--brand);}

/* ---- Header / footer chrome (mu-plugin rendered) ---- */
.pc-header{position:sticky;top:0;z-index:100;background:rgba(251,248,244,.9);
  backdrop-filter:saturate(120%) blur(8px);border-bottom:1px solid var(--line);}
.pc-header__inner{display:flex;align-items:center;justify-content:space-between;
  gap:var(--s-4);min-height:68px;}
.pc-logo{font-family:var(--font-display);font-weight:600;font-size:var(--t-md);
  color:var(--brand);letter-spacing:var(--track-display);white-space:nowrap;}
.pc-nav{display:flex;align-items:center;gap:var(--s-5);list-style:none;margin:0;padding:0;}
.pc-nav a{color:var(--fg);font-size:var(--t-sm);padding-block:var(--s-2);
  border-bottom:2px solid transparent;transition:border-color var(--dur-base) var(--ease);}
.pc-nav a:hover{border-color:var(--cta);}
.pc-header__actions{display:flex;align-items:center;gap:var(--s-3);}
.pc-cart-link{color:var(--brand);font-weight:500;}
.pc-nav-toggle{display:none;background:none;border:0;font-size:1.5rem;color:var(--brand);
  min-width:44px;min-height:44px;cursor:pointer;}
.pc-footer{background:var(--brand);color:#e9efe9;padding-block:var(--s-7) var(--s-5);margin-top:var(--s-8);}
.pc-footer a{color:#e9efe9;opacity:.85;} .pc-footer a:hover{opacity:1;}
.pc-footer__grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:var(--s-6);}
.pc-footer__grid h4{color:#fff;font-family:var(--font-body);font-size:var(--t-sm);
  text-transform:uppercase;letter-spacing:.12em;margin-bottom:var(--s-3);}
.pc-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:var(--s-2);}
.pc-footer__bottom{border-top:1px solid rgba(255,255,255,.15);margin-top:var(--s-6);
  padding-top:var(--s-4);font-size:var(--t-xs);opacity:.7;}

/* ---- Hero: split path ---- */
.pc-hero{position:relative;background:var(--brand-soft);}
.pc-hero__inner{display:grid;gap:var(--s-4);padding-block:var(--s-8);text-align:center;}
.pc-hero h1{font-size:clamp(2.4rem,6vw,var(--t-3xl));max-width:16ch;margin-inline:auto;}
.pc-hero__actions{display:flex;gap:var(--s-3);justify-content:center;flex-wrap:wrap;margin-top:var(--s-2);}

/* ---- Trust bar ---- */
.pc-trust{background:var(--surface);border-block:1px solid var(--line);}
.pc-trust__inner{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s-4);
  padding-block:var(--s-4);text-align:center;}
.pc-trust__item{display:flex;flex-direction:column;align-items:center;gap:var(--s-1);
  font-size:var(--t-xs);color:var(--muted);}
.pc-trust__item strong{color:var(--fg);font-weight:500;font-size:var(--t-sm);}
.pc-trust__icon{font-size:1.4rem;line-height:1;}

/* ---- Bands ---- */
.pc-band{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:var(--s-7);text-align:center;}
.pc-band h2{margin-bottom:var(--s-3);}
.pc-story{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-6);align-items:center;}
.pc-story__media{aspect-ratio:4/3;background:var(--brand-soft);border-radius:var(--r-lg);
  display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:var(--t-xs);}

/* ---- Reviews ---- */
.pc-reviews{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-4);}
.pc-review{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s-5);}
.pc-review__stars{color:var(--cta);letter-spacing:2px;margin-bottom:var(--s-2);}
.pc-review__name{color:var(--muted);font-size:var(--t-xs);margin-top:var(--s-3);}

/* ---- WooCommerce product grid → keepsake cards ---- */
.woocommerce ul.products,.woocommerce-page ul.products{display:grid !important;
  grid-template-columns:repeat(3,1fr);gap:var(--s-4);margin:0;padding:0;list-style:none;}
.woocommerce ul.products li.product{width:auto !important;margin:0 !important;float:none !important;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);
  overflow:hidden;text-align:left;transition:box-shadow var(--dur-base) var(--ease),transform var(--dur-base) var(--ease);}
.woocommerce ul.products li.product:hover{box-shadow:0 12px 30px -18px rgba(42,39,36,.4);transform:translateY(-3px);}
.woocommerce ul.products li.product a img{margin:0;border-radius:0;aspect-ratio:1/1;object-fit:cover;background:var(--brand-soft);}
.woocommerce ul.products li.product .woocommerce-loop-product__title{font-family:var(--font-display);
  font-size:var(--t-md);color:var(--brand);padding:var(--s-3) var(--s-3) var(--s-1);}
.woocommerce ul.products li.product .price{color:var(--fg);font-weight:500;padding:0 var(--s-3);display:block;}
.woocommerce ul.products li.product .star-rating{margin:var(--s-2) var(--s-3);color:var(--cta);}
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart{margin:var(--s-3);background:var(--cta);color:#fff;
  border-radius:var(--r-md);min-height:44px;display:inline-flex;align-items:center;justify-content:center;
  padding:0 var(--s-4);font-weight:500;}
.woocommerce ul.products li.product .button:hover{background:var(--cta-hover);}

/* ---- Single product: sticky buy box ---- */
@media(min-width:1024px){
  .woocommerce div.product div.summary{position:sticky;top:90px;align-self:start;}
}
.woocommerce div.product .price{color:var(--fg);font-size:var(--t-xl);}
.woocommerce #respond input#submit,.woocommerce a.button,.woocommerce button.button,
.woocommerce div.product form.cart .button{background:var(--cta);color:#fff;border-radius:var(--r-md);
  min-height:48px;font-weight:500;padding:0 var(--s-5);}
.woocommerce #respond input#submit:hover,.woocommerce a.button:hover,
.woocommerce button.button:hover,.woocommerce div.product form.cart .button:hover{background:var(--cta-hover);}
.woocommerce span.onsale{background:var(--brand);color:#fff;}

/* ---- Fade-and-rise: the one signature move ---- */
.pc-reveal{opacity:0;transform:translateY(12px);transition:opacity var(--dur-base) var(--ease),transform var(--dur-base) var(--ease);}
.pc-reveal.is-in{opacity:1;transform:none;}

/* ---- Responsive ---- */
@media(max-width:1024px){
  .pc-footer__grid{grid-template-columns:1fr 1fr;}
}
@media(max-width:768px){
  .pc-nav{position:fixed;inset:68px 0 auto 0;flex-direction:column;background:var(--bg);
    border-bottom:1px solid var(--line);padding:var(--s-4);gap:var(--s-3);display:none;}
  .pc-nav.is-open{display:flex;}
  .pc-nav-toggle{display:inline-flex;align-items:center;justify-content:center;}
  .pc-trust__inner{grid-template-columns:repeat(2,1fr);gap:var(--s-3);}
  .woocommerce ul.products,.woocommerce-page ul.products{grid-template-columns:repeat(2,1fr) !important;gap:var(--s-3);}
  .pc-reviews{grid-template-columns:1fr;}
  .pc-story{grid-template-columns:1fr;}
  .pc-footer__grid{grid-template-columns:1fr;}
  .pc-section{padding-block:var(--s-7);}
}
@media(prefers-reduced-motion:reduce){
  .pc-reveal{opacity:1;transform:none;transition:none;}
  *{scroll-behavior:auto !important;}
}

/* ---- Robustness overrides (JS-gated reveal; hide fallback titles) ---- */
/* Content is visible by default; only hidden once JS confirms it can reveal it. */
.pc-reveal{opacity:1;transform:none;}
.pc-js .pc-reveal{opacity:0;transform:translateY(12px);
  transition:opacity var(--dur-base) var(--ease),transform var(--dur-base) var(--ease);}
.pc-js .pc-reveal.is-in{opacity:1;transform:none;}
@media(prefers-reduced-motion:reduce){
  .pc-js .pc-reveal{opacity:1 !important;transform:none !important;transition:none;}
}
/* Hide the theme's redundant fallback page title on our built content pages
   (each page provides its own <h1> inside the content). */
body.page-id-3  #brx-content>h1:first-of-type,
body.page-id-29 #brx-content>h1:first-of-type,
body.page-id-30 #brx-content>h1:first-of-type,
body.page-id-31 #brx-content>h1:first-of-type,
body.page-id-32 #brx-content>h1:first-of-type,
body.page-id-33 #brx-content>h1:first-of-type,
body.page-id-34 #brx-content>h1:first-of-type,
body.page-id-35 #brx-content>h1:first-of-type{display:none;}

/* ---- Photographic hero + page heroes ---- */
.pc-hero{position:relative;overflow:hidden;isolation:isolate;}
.pc-hero__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;}
.pc-hero__scrim{position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(42,39,36,.32),rgba(42,39,36,.62));}
.pc-hero--photo .pc-hero__inner{min-height:64vh;align-content:center;color:#fff;position:relative;}
.pc-hero--photo h1{color:#fff;}
.pc-hero--photo .pc-eyebrow{color:rgba(255,255,255,.9);}
.pc-hero--photo .pc-lead{color:rgba(255,255,255,.94);}
.pc-hero--photo .pc-btn--light{background:rgba(255,255,255,.96);color:var(--brand);border-color:transparent;}
.pc-hero--photo .pc-btn--light:hover{background:#fff;}

.pc-pagehero{position:relative;overflow:hidden;isolation:isolate;}
.pc-pagehero__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;}
.pc-pagehero__scrim{position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(42,39,36,.3),rgba(42,39,36,.6));}
.pc-pagehero__inner{min-height:40vh;display:flex;flex-direction:column;justify-content:center;
  text-align:center;color:#fff;padding-block:var(--s-7);position:relative;}
.pc-pagehero__inner h1{color:#fff;}
.pc-pagehero__inner .pc-eyebrow{color:rgba(255,255,255,.9);}
.pc-pagehero__inner .pc-lead{color:rgba(255,255,255,.94);margin-inline:auto;max-width:54ch;}

/* Story image fills its media block */
.pc-story__media{padding:0;overflow:hidden;background:none;}
.pc-story__media img{width:100%;height:100%;min-height:300px;object-fit:cover;border-radius:var(--r-lg);display:block;}

/* ---- Fix: buy box scrolls normally ----
   The sticky summary detached and overlapped the description/related-products
   on this PDP layout. Override back to normal flow. */
@media(min-width:1024px){
  .woocommerce div.product div.summary{position:static;top:auto;}
}
