/* Place2Smoke Core 5.0.57 – unified design system.
   This stylesheet is deliberately loaded after theme and Core frontend styles.
   New public WordPress pages inherit the typography tokens automatically.
   Existing page sections retain their distinct functional layouts. */
body.p2s-design-system {
  --p2s-gold: #C5A059;
  --p2s-title-size: clamp(2rem, 3.15vw, 3rem);
  --p2s-title-leading: 1.12;
  --p2s-subtitle-size: clamp(1rem, 1.3vw, 1.25rem);
  --p2s-label-size: .75rem;
  --p2s-section-heading-size: clamp(1.625rem, 2.4vw, 2rem);
  --p2s-page-top: 4rem;
  --p2s-heading-gap: 1rem;
  --p2s-section-gap: 2.5rem;
  --p2s-page-gutter: 30px;
}
/* Normalize the page heading, regardless of which template generated it.
   Avoid affecting card headings, modal headings, or widget headings. */
body.p2s-design-page :is(main, #primary, .site-main) :is(.entry-header, .page-header, .page-hero, .p2s-hero, .hero) h1,
body.p2s-design-page :is(main, #primary, .site-main) > h1,
body.p2s-design-page :is(main, #primary, .site-main) > article > h1,
body.p2s-design-page :is(main, #primary, .site-main) > article > header h1,
body.p2s-design-page .p2s-account h1,
body.p2s-design-place .p2s-place > header h1 {
  font-size: var(--p2s-title-size) !important;
  line-height: var(--p2s-title-leading) !important;
  letter-spacing: -.025em;
  font-weight: 750;
  margin-block: 0 var(--p2s-heading-gap) !important;
}
/* Main heading in custom templates with a hero wrapper named differently. */
body.p2s-design-page :is(main, #primary, .site-main) :is(section, header)[class*="hero"] > h1 {
  font-size: var(--p2s-title-size) !important;
  line-height: var(--p2s-title-leading) !important;
  margin-block: 0 var(--p2s-heading-gap) !important;
  letter-spacing: -.025em;
}
body.p2s-design-page :is(.page-header, .entry-header, .page-hero, .p2s-hero, .hero) :is(.subtitle, .lead, .page-subtitle, .hero-subtitle, .p2s-subtitle),
body.p2s-design-page .p2s-account > header p,
body.p2s-design-place .p2s-place > header .p2s-subtitle {
  font-size: var(--p2s-subtitle-size) !important;
  line-height: 1.55;
  margin-block: 0;
}
body.p2s-design-page :is(.page-header, .entry-header, .page-hero, .p2s-hero, .hero) :is(.eyebrow, .kicker, .overline, .p2s-kicker),
body.p2s-design-place .p2s-place > header .p2s-kicker {
  font-size: var(--p2s-label-size) !important;
  line-height: 1.4;
  letter-spacing: .075em;
  text-transform: uppercase;
  color: var(--p2s-gold);
  margin-block: 0 1rem;
}
body.p2s-design-page :is(.page-header, .entry-header, .page-hero, .p2s-hero, .hero) h2 {
  font-size: var(--p2s-section-heading-size);
  line-height: 1.2;
}
@media (max-width: 767px) {
  body.p2s-design-system {
    --p2s-title-size: 2rem;
    --p2s-subtitle-size: 1.0625rem;
    --p2s-page-top: 2rem;
    --p2s-section-gap: 1.5rem;
    --p2s-page-gutter: 20px;
  }
}

/* 5.0.58: Consistent readable text on primary action buttons. */
body.p2s-design-system :is(.p2s-btn-primary, .p2s-button-primary, .button-primary, .wp-block-button__link, button[type="submit"], input[type="submit"]) {
  color: #fff !important;
  font-size: 1rem !important;
  line-height: 1.4 !important;
  font-weight: 700;
}
body.p2s-design-system :is(.p2s-btn-primary, .p2s-button-primary, .button-primary, .wp-block-button__link, button[type="submit"], input[type="submit"]):is(:hover, :focus-visible, :active) { color: #fff !important; }
/* Reusable page heading contract for every new Core page. */
body.p2s-design-system .p2s-page-intro { padding-top: var(--p2s-page-top); margin-bottom: var(--p2s-section-gap); }
body.p2s-design-system .p2s-page-intro__label { color: var(--p2s-gold); font-size: var(--p2s-label-size); text-transform: uppercase; letter-spacing: .075em; margin: 0 0 1rem; }
body.p2s-design-system .p2s-page-intro__title { font-size: var(--p2s-title-size) !important; line-height: var(--p2s-title-leading) !important; margin: 0 0 var(--p2s-heading-gap) !important; }
body.p2s-design-system .p2s-page-intro__subtitle { font-size: var(--p2s-subtitle-size) !important; line-height: 1.55; margin: 0; }

/* 5.0.59: consistent primary CTAs, without recoloring secondary/destructive controls. */
body.p2s-design-system :is(a.p2s-btn-primary,a.p2s-button-primary,a.button-primary,a.wp-block-button__link,button.p2s-btn-primary,button.p2s-button-primary,button.button-primary,button[type="submit"],input[type="submit"]):not(.button-link-delete):not(.is-style-outline) {color:#fff!important;font-size:1rem!important;line-height:1.4!important;font-weight:700;}
body.p2s-design-system :is(a.p2s-btn-primary,a.p2s-button-primary,a.button-primary,a.wp-block-button__link,button.p2s-btn-primary,button.p2s-button-primary,button.button-primary,button[type="submit"],input[type="submit"]):not(.button-link-delete):not(.is-style-outline):is(:hover,:focus-visible,:active){color:#fff!important;}
/* Heading spacing shared by templates using the Core page-intro contract. */
body.p2s-design-system .p2s-page-intro{padding-block-start:var(--p2s-page-top);margin-block-end:var(--p2s-section-gap)}
body.p2s-design-system .p2s-page-intro__title{font-size:var(--p2s-title-size)!important;line-height:var(--p2s-title-leading)!important;margin:0 0 var(--p2s-heading-gap)!important}

/* Place2Smoke legal hub — preserve legal content and existing forms. */
.p2s-legal-document{max-width:1100px!important;width:calc(100% - 40px);margin-inline:auto!important;padding-block:clamp(32px,5vw,64px) 64px;font-size:16px;line-height:1.65}
.p2s-legal-nav{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:36px;padding-bottom:20px;border-bottom:1px solid #e9e3d9}
.p2s-legal-nav__link{display:inline-flex;padding:8px 13px;border:1px solid #e9e3d9;border-radius:40px;text-decoration:none!important;font-size:14px;font-weight:600;color:#302c28!important;background:#fff}
.p2s-legal-nav__link:hover,.p2s-legal-nav__link[aria-current="page"]{background:#f8f2e7;border-color:#c5a059}
.p2s-legal-document .p2s-legal-eyebrow{font-size:12px;letter-spacing:.15em;font-weight:700;color:#a47b30;margin-bottom:16px}
.p2s-legal-document h1{font-size:clamp(32px,4vw,48px)!important;line-height:1.16!important;margin:0 0 16px!important}
.p2s-legal-document .p2s-legal-date{font-size:15px;color:#777;margin:0 0 36px}
.p2s-legal-document .p2s-legal-section{border-top:1px solid #eee7df;padding:28px 0}
.p2s-legal-document .p2s-legal-section h2{font-size:clamp(22px,2.5vw,26px)!important;line-height:1.3!important;margin:0 0 16px!important}
.p2s-legal-document .p2s-legal-section p{max-width:80ch}
.p2s-legal-document .p2s-legal-send,.p2s-legal-document .p2s-legal-send:hover,.p2s-legal-document .p2s-legal-send:focus{color:#fff!important;font-size:16px!important;font-weight:700!important}
@media(max-width:650px){.p2s-legal-document{width:calc(100% - 32px)}.p2s-legal-nav__link{font-size:13px;padding:7px 10px}}

/* 5.0.61: consistent legal form buttons. */
.p2s-legal-send,.p2s-legal-send:hover,.p2s-legal-send:focus-visible{color:#fff!important;font-size:16px!important}
