/* Brand palette: white / cream sections, brown anchors, gold actions.
   An important cascade layer keeps shared colors consistent with page-local CSS. */
:root {
  --brand-cream:#F7ECD8;
  --brand-gold:#E8BF5C;
  --brand-brown:#3A2414;
  --brand-bronze:#A68338;
  --brand-white:#FFFFFF;
  /* Text hierarchy measured from the Pench reference. */
  --brand-heading:#472D19;
  --brand-link:#5A3B22;
  --brand-copy:#827362;
  --brand-secondary:#8B7B6B;
  --brand-accent-text:#966D15;
}
@layer brand {
  :root, body, .hp, .tg {
    --ink:var(--brand-heading) !important;
    --text:var(--brand-copy) !important;
    --muted:var(--brand-secondary) !important;
    --tg-text:var(--brand-copy) !important;
    --tg-muted:var(--brand-secondary) !important;
    --tg-head:var(--brand-heading) !important;
    --forest:var(--brand-brown) !important;
    --forest-2:var(--brand-brown) !important;
    --gold:var(--brand-gold) !important;
    --accent:var(--brand-gold) !important;
    --accent-hover:var(--brand-gold) !important;
    --accent-soft:rgba(232,191,92,.16) !important;
    --accent-color:var(--brand-brown) !important;
    --heading-color:var(--brand-heading) !important;
    --paper:var(--brand-cream) !important;
    --cream:var(--brand-cream) !important;
    --sand:var(--brand-cream) !important;
    --line:rgba(166,131,56,.28) !important;
    --on-dark:var(--brand-cream) !important;
  }
  html { color-scheme:light; accent-color:var(--brand-bronze); }
  body { background:var(--brand-cream) !important; color:var(--brand-copy) !important; }
  /* Headings, prose and supporting text have separate strengths. */
  :is(h1,h2,h3,h4,h5,h6) { color:var(--brand-heading) !important; }
  :is(h1,h2,h3,h4,h5,h6) :is(em,a,span) { color:inherit !important; }
  p { color:var(--brand-copy) !important; }
  p :is(strong,b), li :is(strong,b) { color:var(--brand-heading) !important; }
  p a { color:var(--brand-link) !important; }
  :is(.hp-pk-body,.hp-plan,.hp-blog-body,.gp-guides,.pk-card,.sp-room,.bd-related) p {
    color:var(--brand-secondary) !important;
  }
  :is(.hs-year,.hp-facts b,.gp-stat .n) { color:var(--brand-heading) !important; }
  /* Preserve light lettering on photo captions, dark panels and footer. */
  :is(.hp-blog-card--lead,.hs-photo,.sf-photo,.on-dark) :is(p,li,span,strong,b,a),
  :is(.hp-blog-card--lead,.on-dark) :is(h1,h2,h3,h4) {
    color:var(--brand-cream) !important;
  }
  button,input,select,textarea { color:var(--brand-brown); }
  ::selection { background:var(--brand-gold); color:var(--brand-brown); }
  :focus-visible { outline-color:var(--brand-bronze) !important; }

  /* Alternate the existing full-width content sections, excluding photo banners. */
  section.brand-section--cream { background:var(--brand-cream) !important; }
  section.brand-section--white { background:var(--brand-white) !important; }
  section.brand-section--brown { background:var(--brand-brown) !important; color:var(--brand-cream) !important; }
  section.brand-section--brown :is(h1,h2,h3,h4,p,li,strong,b) { color:var(--brand-cream) !important; }
  section.brand-section--brown :is(em,a) { color:var(--brand-cream) !important; }

  /* Gold needs brown lettering for readable buttons and badges. */
  :is(.hp-btn--solid,.hp-pk-book,.header-book-button,.nav-book,.eq-send,.ct-send,
      .bp-form button,.pk-card a,.pk-book-pill,.pk-day-n,.pk-box-ic,.pk-mbar .w,
      .fab .fab-wa,.fab .fab-call,.jf-top,.tg-cta .tg-btn) {
    background:var(--brand-gold) !important;
    color:var(--brand-brown) !important;
    -webkit-text-fill-color:var(--brand-brown) !important;
  }
  :is(.hp-btn--solid,.hp-pk-book,.header-book-button,.nav-book,.eq-send,.ct-send,
      .bp-form button,.pk-card a,.pk-mbar .w,.fab .fab-wa,.fab .fab-call):hover {
    background:var(--brand-gold) !important;
    color:var(--brand-brown) !important;
    box-shadow:0 0 0 2px var(--brand-bronze) !important;
  }
  :is(.header-book-button .arrow,.eq-send span,.eq-send--alt,.fab .fab-msg) {
    background:var(--brand-brown) !important;
    color:var(--brand-cream) !important;
    -webkit-text-fill-color:var(--brand-cream) !important;
  }
  :is(.hp-faq-item,.bd-faq-item)[open] summary::after {
    background:var(--brand-gold) !important; color:var(--brand-brown) !important;
  }
  :is(.hp-eyebrow,.hp-title em,.hp-link,.hp-plan-go,.hp-facts b,.pk-script,.pp-label,
      .gp-kick,.eq-script,.eq-sub a,.cp-ic,.bd-date,.bp-date) {
    color:var(--brand-brown) !important;
  }
  :is(.eq-form-err,.eq-err) { color:var(--brand-brown) !important; border-color:var(--brand-bronze) !important; }
  :is(input,select,textarea) { border-color:rgba(166,131,56,.45) !important; caret-color:var(--brand-brown); }
  :is(input,textarea)::placeholder { color:rgba(58,36,20,.65) !important; }
  :is(input,select,textarea):focus { border-color:var(--brand-bronze) !important; }

  /* Warm cream header, brown navigation in every state. */
  .site-header { background:var(--brand-cream) !important; border:1px solid rgba(166,131,56,.3) !important; box-shadow:0 14px 32px rgba(58,36,20,.1) !important; }
  .site-header :is(.nav a,.nav-dd__toggle,.menu-toggle,.phone),
  .site-header :is(.nav a,.nav-dd__toggle):is(:hover,:focus-visible,.active,.has-current),
  .site-header .nav-dd.open>.nav-dd__toggle { color:var(--brand-brown) !important; }
  .site-header :is(.nav a.active,.nav-dd__toggle.active)::after { background:var(--brand-brown) !important; }
  .site-header :is(.nav-dd__menu,.nav.open) { background:var(--brand-cream) !important; border-color:rgba(166,131,56,.3) !important; }
  .site-header .nav :is(.nav-dd__menu a,.nav-dd--sub>.nav-dd__toggle):is(:hover,:focus-visible,.is-current) {
    background:var(--brand-white) !important; color:var(--brand-brown) !important;
  }
  .site-header a.brand { background:transparent !important; }

  /* Reference-style gold buttons: brown lettering, fine border, soft depth. */
  :is(.hp-btn--solid,.hp-pk-book,.header-book-button,.nav-book,.eq-send,.ct-send,.bp-form button,.pk-card a,.tg-cta .tg-btn) {
    background:linear-gradient(180deg,var(--brand-cream) -100%,var(--brand-gold) 55%,var(--brand-bronze) 180%) !important;
    border:1px solid rgba(166,131,56,.6) !important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.65),0 7px 16px rgba(166,131,56,.2) !important;
  }
  :is(.bd-cat,.hp-faq-help-ic,.bt-ic,.eq-done-ic,.tp .st-ic,.tp .st-tip .n,.pk-book-pill,.pk-day-n,.pk-box-ic) {
    background:var(--brand-brown) !important; color:var(--brand-cream) !important; -webkit-text-fill-color:var(--brand-cream) !important;
  }

  /* Entry-gate controls need a clear active state and legible inactive labels. */
  :is(.gp-tabs,.gp-zones) { background:var(--brand-white) !important; border-color:rgba(166,131,56,.32) !important; }
  :is(.gp-tab,.gp-zbtn) { color:var(--brand-brown) !important; }
  :is(.gp-tab,.gp-zbtn):hover { background:var(--brand-cream) !important; color:var(--brand-brown) !important; }
  :is(.gp-tab,.gp-zbtn)[aria-selected="true"],.gp-zbtn[aria-selected="true"] i {
    background:var(--brand-brown) !important; color:var(--brand-cream) !important;
  }

  /* Data tables: brown headers, white/cream rows and visible separators. */
  :is(.gp,.tp,.tg,.site-content) table { background:var(--brand-white) !important; color:var(--brand-brown) !important; border-collapse:collapse; }
  :is(.gp,.tp,.tg,.site-content) table :is(th,td) { border-color:rgba(166,131,56,.3) !important; color:var(--brand-brown) !important; }
  :is(.gp,.tp,.tg,.site-content) table thead th { background:var(--brand-brown) !important; color:var(--brand-cream) !important; }
  :is(.gp,.tp,.tg,.site-content) table tbody tr:nth-child(odd) :is(th,td) { background:var(--brand-white) !important; }
  :is(.gp,.tp,.tg,.site-content) table tbody tr:nth-child(even) :is(th,td) { background:var(--brand-cream) !important; }
  :is(.gp,.tp,.tg,.site-content) table tbody tr.total :is(th,td) {
    background:var(--brand-brown) !important; color:var(--brand-cream) !important; -webkit-text-fill-color:var(--brand-cream) !important;
  }
  /* Brown footer is the visual anchor. */
  footer.jf { background:var(--brand-brown) !important; color:var(--brand-cream) !important; border-top-color:var(--brand-bronze) !important; }
  footer.jf :is(.jf-about,.jf-links a,.jf-item,.jf-item small,.jf-legal a,.jf-copy) { color:var(--brand-cream) !important; }
  footer.jf h2.jf-title { color:var(--brand-cream) !important; -webkit-text-fill-color:var(--brand-cream) !important; }
  footer.jf :is(.jf-ico,.jf-ico svg) { color:var(--brand-cream) !important; }

  /* Warm accents belong to selected words and labels, rather than all prose. */
  :is(h1,h2,h3,h4) em,
  :is(.hp-eyebrow,.hs-eyebrow,.sf-eyebrow,.ct-eyebrow,.gp-kick,.pk-script,.pp-label,.tg-eyebrow,.eq-script),
  :is(.hs-year,.hp-facts b,.gp-stat .n) {
    color:var(--brand-accent-text) !important;
    -webkit-text-fill-color:var(--brand-accent-text) !important;
  }
  :is(.hp-title,.hs-title,.sf-title,.ct-title,.gp-text h1) em {
    color:var(--brand-accent-text) !important;
  }

  /* White surfaces must stand out from a cream section. */
  .brand-section--cream :is(.hp-rev-card,.hp-faq-item,.hp-rev-overall) {
    background:var(--brand-white) !important;
    border-color:rgba(166,131,56,.23) !important;
  }
  .brand-section--white .hp-rev-card { background:var(--brand-cream) !important; }
  .hp-rev-card {
    box-shadow:0 10px 28px -16px rgba(58,36,20,.24) !important;
  }
  .hp-rev-card .hp-rev-text { color:var(--brand-copy) !important; }
  .hp-faq-item summary { color:var(--brand-link) !important; }

  /* Plain category text on side cards; a compact pill only on the photo card. */
  .hp-blog-card:not(.hp-blog-card--lead) .hp-blog-cat {
    display:inline-flex !important; align-self:flex-start !important; width:auto !important;
    max-width:100%; padding:0 !important; border:0 !important; border-radius:0 !important;
    background:transparent !important; color:var(--brand-accent-text) !important;
    -webkit-text-fill-color:var(--brand-accent-text) !important;
  }
  .hp-blog-card--lead .hp-blog-cat {
    display:inline-flex !important; align-self:flex-start !important; width:auto !important;
    padding:7px 14px !important; border-radius:999px !important;
    background:var(--brand-brown) !important; color:var(--brand-cream) !important;
    -webkit-text-fill-color:var(--brand-cream) !important;
  }
  .hp-blog-card--lead :is(h3,h3 a,p,.hp-blog-more,.hp-blog-meta) {
    color:var(--brand-cream) !important; -webkit-text-fill-color:var(--brand-cream) !important;
  }

  /* The FAQ callout is a white card over a photo, not a dark photo caption. */
  .hp-faq-help { background:var(--brand-white) !important; }
  .hp-faq-help :is(b,a,span) {
    color:var(--brand-link) !important; -webkit-text-fill-color:var(--brand-link) !important;
  }
  .hp-faq-help .hp-faq-help-ic, .hp-faq-help .hp-faq-help-ic i {
    color:var(--brand-cream) !important; -webkit-text-fill-color:var(--brand-cream) !important;
  }
  /* Long articles stay white; a cream sidebar creates a clear reading column. */
  .bd-sec { background:var(--brand-white) !important; }
  .bd-side .bd-box { background:var(--brand-cream) !important; }
  .bd-copy { color:var(--brand-copy) !important; }

  /* All legal pages: cream introduction/sidebar and white reading cards. */
  .pp .pp-head { background:var(--brand-cream) !important; }
  .pp .pp-body { background:var(--brand-white) !important; }
  .pp .pp-label { color:var(--brand-accent-text) !important; }
  .pp .pp-toc {
    background:var(--brand-cream) !important;
    border-color:rgba(166,131,56,.25) !important;
  }
  .pp .pp-sec {
    background:var(--brand-white) !important;
    border-color:rgba(166,131,56,.22) !important;
    box-shadow:0 8px 24px -18px rgba(58,36,20,.18) !important;
  }
  .pp .pp-sec.pp-contact { background:var(--brand-cream) !important; }
  .pp :is(.pp-lead,.pp-sec p,.pp-list li,.pp-rows li) { color:var(--brand-copy) !important; }
  .pp :is(.pp-h1,.pp-sec h2,.pp-sec h3,.pp-toc-title,.pp-org) { color:var(--brand-heading) !important; }
  .pp :is(.pp-sec strong,.pp-rows b,.pp-link) { color:var(--brand-link) !important; }
  .pp .pp-toc a { color:var(--brand-link) !important; }
  .pp .pp-toc a span { background:var(--brand-white) !important; color:var(--brand-link) !important; }
  .pp .pp-toc a:is(:hover,:focus-visible) { background:var(--brand-white) !important; color:var(--brand-heading) !important; }
  .pp .pp-toc a:is(:hover,:focus-visible) span { background:var(--brand-brown) !important; color:var(--brand-cream) !important; }
  .pp .pp-sec h2::after,.pp .pp-list li::before { background:var(--brand-bronze) !important; }

  /* One tab palette for seasons, wildlife topics and nearby destinations.
     Child spans must inherit the selected color instead of page text rules. */
  .tg .tg-tab {
    white-space:normal !important;
    min-height:46px;
    font-family:'Poppins',sans-serif !important;
    font-size:14px !important;
    font-weight:600 !important;
    line-height:1.4 !important;
    background:var(--brand-white) !important;
    color:var(--brand-link) !important;
    -webkit-text-fill-color:var(--brand-link) !important;
    border:1px solid rgba(166,131,56,.3) !important;
    box-shadow:none !important;
    transition:border-color .18s,box-shadow .18s !important;
  }
  .tg .tg-tab[aria-selected="false"]:is(:hover,:active,:focus-visible) {
    background:var(--brand-cream) !important;
    color:var(--brand-link) !important;
    -webkit-text-fill-color:var(--brand-link) !important;
    border-color:var(--brand-bronze) !important;
    transform:none !important;
  }
  .tg .tg-tab[aria-selected="true"],
  .tg .tg-tab[aria-selected="true"]:is(:hover,:active,:focus,:focus-visible) {
    background:var(--brand-brown) !important;
    color:var(--brand-cream) !important;
    -webkit-text-fill-color:var(--brand-cream) !important;
    border-color:var(--brand-brown) !important;
    transform:none !important;
  }
  .tg .tg-tab span {
    color:inherit !important; -webkit-text-fill-color:inherit !important;
    background:transparent !important;
    line-height:1.4 !important;
  }
  .tg .tg-tab i,.tg .tg-tab[aria-selected="true"] i {
    background:var(--brand-cream) !important;
    color:var(--brand-brown) !important;
    -webkit-text-fill-color:var(--brand-brown) !important;
  }
  .tg .tg-tab:focus-visible { outline:2px solid var(--brand-bronze) !important; outline-offset:3px !important; }
  .tg .tg-panel[hidden] { display:none !important; }

  /* Center the section headings above tab groups and card grids. */
  .tg-wrap > .tg-eyebrow {
    display:flex !important; justify-content:center !important;
    width:100%; text-align:center !important;
  }
  .tg-wrap > :is(h2.tg-h2,h2.tg-h3) {
    max-width:960px; margin-left:auto !important; margin-right:auto !important;
    text-align:center !important; text-wrap:balance;
  }
  .tg .tg-panel-body .tg-h3 {
    font-family:'Playfair Display',Georgia,serif !important;
    font-size:clamp(20px,1.65vw,26px) !important;
    font-weight:600 !important; line-height:1.4 !important;
  }
  .tg .tg-panel-body .tg-text p { color:var(--brand-copy) !important; line-height:1.85 !important; }
  .tg-related a { gap:0 !important; padding:26px 24px !important; }
  .tg-related b {
    font-family:'Playfair Display',Georgia,serif !important;
    font-size:19px !important; font-weight:600 !important;
    line-height:1.4 !important; color:var(--brand-heading) !important;
  }
  .tg-related a > span {
    margin-top:12px !important; font:400 14px/1.8 'Poppins',sans-serif !important;
    color:var(--brand-copy) !important;
  }
  .tg-related .tg-go {
    margin-top:24px !important; font:600 13px/1.4 'Poppins',sans-serif !important;
    color:var(--brand-link) !important; -webkit-text-fill-color:var(--brand-link) !important;
  }
  .tg-cta h2 em { color:var(--brand-cream) !important; -webkit-text-fill-color:var(--brand-cream) !important; }
  .tg[id],.tg h2[id] { scroll-margin-top:110px; }
}
