/*
Theme Name: CHAIR Salon
Theme URI: https://www.chairsalon.co.uk
Description: Editorial design system for CHAIR Hair Salon, Wylde Green. Built on Hello Elementor.
Author: CHAIR Salon
Template: hello-elementor
Version: 1.0.0
Text Domain: chair-child
*/

/* ============================================================
   1. TOKENS
   ============================================================ */
:root{
  --chair-ink:#0B0B0C;
  --chair-ink-70:rgba(11,11,12,.70);
  --chair-ink-55:rgba(11,11,12,.55);
  --chair-ink-38:rgba(11,11,12,.38);
  --chair-ink-12:rgba(11,11,12,.12);
  --chair-ink-06:rgba(11,11,12,.06);
  --chair-paper:#FFFFFF;
  --chair-bone:#F5F2F0;
  --chair-mist:#FAF9F8;

  --chair-purple:#5C2E91;
  --chair-purple-mid:#7A4FB6;
  --chair-purple-deep:#2A1740;
  --chair-purple-soft:#F1EAF9;

  --chair-blush:#F4DCE3;
  --chair-blush-ink:#A96A80;
  --chair-teal:#0E5B58;
  --chair-teal-soft:#DEEDEC;

  --chair-font-display:"Fraunces","Times New Roman",Georgia,serif;
  --chair-font-sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;

  --chair-shell:1320px;
  --chair-gutter:clamp(20px,5vw,48px);
  --chair-section:clamp(72px,9vw,152px);

  --chair-radius:16px;
  --chair-radius-sm:10px;
  --chair-shadow:0 18px 50px -24px rgba(11,11,12,.26);
  --chair-shadow-lift:0 34px 74px -30px rgba(11,11,12,.40);
  --chair-ease:cubic-bezier(.22,.61,.36,1);
}

/* ============================================================
   2. BASE
   ============================================================ */
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  font-family:var(--chair-font-sans);
  color:var(--chair-ink);
  background:var(--chair-paper);
  font-size:17px;
  line-height:1.65;
  letter-spacing:-.003em;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
img{ max-width:100%; height:auto; }
::selection{ background:var(--chair-purple); color:#fff; }

h1,h2,h3,h4,h5{
  font-family:var(--chair-font-display);
  font-weight:400;
  font-optical-sizing:auto;
  letter-spacing:-.022em;
  line-height:1.04;
  color:var(--chair-ink);
  margin:0 0 .48em;
  text-wrap:balance;
}
h1{ font-size:clamp(2.7rem,6.2vw,5.8rem); }
h2{ font-size:clamp(2rem,4.4vw,3.9rem); }
h3{ font-size:clamp(1.35rem,2.1vw,2.05rem); line-height:1.14; }
h4{ font-size:clamp(1.08rem,1.4vw,1.3rem); line-height:1.28; letter-spacing:-.012em; }
h5{ font-size:1rem; }
p{ margin:0 0 1.15em; }
p:last-child{ margin-bottom:0; }

a{ color:inherit; text-decoration-thickness:1px; text-underline-offset:.22em; }
a:hover{ text-decoration-color:var(--chair-purple); }

/* Accessibility */
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,
select:focus-visible,summary:focus-visible,.elementor-button:focus-visible{
  outline:2px solid var(--chair-purple);
  outline-offset:3px;
  border-radius:4px;
}
.chair-skip{
  position:absolute; left:-9999px; top:0; z-index:100000;
  background:var(--chair-ink); color:#fff; padding:14px 22px;
  font-size:13px; letter-spacing:.1em; text-transform:uppercase; border-radius:0 0 8px 0;
}
.chair-skip:focus{ left:0; }

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.001ms !important; transition-duration:.001ms !important; }
}

/* ============================================================
   3. LAYOUT
   ============================================================ */
.e-con,.elementor-section.elementor-section-boxed > .elementor-container{ --container-max-width:var(--chair-shell); }
.chair-section{ padding-block:var(--chair-section); }
.chair-section-sm{ padding-block:clamp(48px,6vw,96px); }
.chair-bone-bg{ background:var(--chair-bone); }
.chair-mist-bg{ background:var(--chair-mist); }
.chair-dark{ background:var(--chair-ink); color:#fff; }
.chair-dark h1,.chair-dark h2,.chair-dark h3,.chair-dark h4{ color:#fff; }
.chair-plum{ background:var(--chair-purple-deep); color:#fff; }
.chair-plum h1,.chair-plum h2,.chair-plum h3,.chair-plum h4{ color:#fff; }

/* ============================================================
   4. TYPE UTILITIES
   ============================================================ */
.chair-eyebrow,.chair-eyebrow p{
  font-family:var(--chair-font-sans);
  font-size:11px;
  font-weight:600;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--chair-purple);
  margin:0;
}
.chair-dark .chair-eyebrow,.chair-dark .chair-eyebrow p,
.chair-plum .chair-eyebrow,.chair-plum .chair-eyebrow p{ color:var(--chair-blush); }

.chair-xl h1,.chair-xl h2,.chair-xl .elementor-heading-title{
  font-size:clamp(3rem,7.6vw,7rem);
  line-height:.95;
  letter-spacing:-.035em;
}
.chair-lede,.chair-lede p{
  font-size:clamp(1.05rem,1.5vw,1.32rem);
  line-height:1.6;
  color:var(--chair-ink-70);
  letter-spacing:-.01em;
}
.chair-dark .chair-lede p,.chair-plum .chair-lede p{ color:rgba(255,255,255,.72); }
.chair-quiet,.chair-quiet p{ color:var(--chair-ink-55); }
.chair-italic .elementor-heading-title em,.chair-italic em{
  font-style:italic; color:var(--chair-purple);
}
.chair-rule{ height:1px; background:var(--chair-ink-12); border:0; }
.chair-dark .chair-rule,.chair-plum .chair-rule{ background:rgba(255,255,255,.18); }

/* ============================================================
   5. BUTTONS
   ============================================================ */
.elementor-button{
  font-family:var(--chair-font-sans);
  font-size:11.5px;
  font-weight:600;
  letter-spacing:.16em;
  text-transform:uppercase;
  border-radius:999px;
  padding:19px 36px;
  border:1px solid transparent;
  line-height:1;
  transition:transform .5s var(--chair-ease),background-color .38s var(--chair-ease),
             color .38s var(--chair-ease),border-color .38s var(--chair-ease),box-shadow .5s var(--chair-ease);
}
.elementor-button:hover{ transform:translateY(-2px); }
.chair-btn .elementor-button{ background:var(--chair-ink); color:#fff; }
.chair-btn .elementor-button:hover{ background:var(--chair-purple); box-shadow:0 18px 36px -18px rgba(92,46,145,.75); color:#fff; }
.chair-btn-ghost .elementor-button{ background:transparent; color:var(--chair-ink); border-color:var(--chair-ink-12); }
.chair-btn-ghost .elementor-button:hover{ background:var(--chair-ink); color:#fff; border-color:var(--chair-ink); }
.chair-btn-light .elementor-button{ background:rgba(255,255,255,.10); color:#fff; border-color:rgba(255,255,255,.55); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); }
.chair-btn-light .elementor-button:hover{ background:#fff; color:var(--chair-ink); border-color:#fff; }
.chair-dark .chair-btn .elementor-button,.chair-plum .chair-btn .elementor-button{ background:#fff; color:var(--chair-ink); }
.chair-dark .chair-btn .elementor-button:hover,.chair-plum .chair-btn .elementor-button:hover{ background:var(--chair-blush); color:var(--chair-ink); }

/* Text link with animated underline */
.chair-link a,a.chair-link{
  position:relative; text-decoration:none;
  font-size:12px; font-weight:600; letter-spacing:.16em; text-transform:uppercase;
}
.chair-link a::after,a.chair-link::after{
  content:""; position:absolute; left:0; bottom:-6px; width:100%; height:1px;
  background:currentColor; transform:scaleX(1); transform-origin:right;
  transition:transform .5s var(--chair-ease);
}
.chair-link a:hover::after,a.chair-link:hover::after{ transform:scaleX(0); }

/* ============================================================
   6. MEDIA + CARDS
   ============================================================ */
.chair-media,.chair-media .elementor-widget-image,.chair-media figure{
  overflow:hidden; border-radius:var(--chair-radius);
}
.chair-media img{
  display:block; width:100%; object-fit:cover;
  transition:transform 1.15s var(--chair-ease);
}
.chair-media:hover img{ transform:scale(1.055); }
.chair-ratio-45 img{ aspect-ratio:4/5; }
.chair-ratio-11 img{ aspect-ratio:1/1; }
.chair-ratio-32 img{ aspect-ratio:3/2; }
.chair-ratio-169 img{ aspect-ratio:16/9; }
.chair-round img{ border-radius:var(--chair-radius); }

.chair-card{
  border-radius:var(--chair-radius);
  transition:transform .6s var(--chair-ease),box-shadow .6s var(--chair-ease);
}
.chair-card:hover{ transform:translateY(-6px); box-shadow:var(--chair-shadow-lift); }
.chair-card:hover .chair-media img,.chair-card:hover img{ transform:scale(1.055); }
.chair-card img{ transition:transform 1.15s var(--chair-ease); }
.chair-card-pad{ padding:clamp(24px,3vw,40px); }
.chair-card-line{ border:1px solid var(--chair-ink-12); }
.chair-card-line:hover{ border-color:transparent; }

/* Numbered editorial list */
.chair-num .elementor-heading-title::before{
  content:attr(data-num);
  display:block;
  font-family:var(--chair-font-sans);
  font-size:11px; font-weight:600; letter-spacing:.24em;
  color:var(--chair-purple); margin-bottom:14px;
}

/* ============================================================
   7. HERO
   ============================================================ */
.chair-hero{ position:relative; isolation:isolate; }
.chair-hero::after{
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(180deg,rgba(11,11,12,.52) 0%,rgba(11,11,12,.10) 38%,rgba(11,11,12,.10) 52%,rgba(11,11,12,.78) 100%);
}
.chair-hero > *{ position:relative; z-index:2; }
.chair-hero h1,.chair-hero h2,.chair-hero p{ color:#fff; }
.chair-hero .chair-eyebrow,.chair-hero .chair-eyebrow p{ color:#fff; opacity:.86; }
.chair-hero-inner{ position:relative; z-index:2; }

.chair-page-head{ padding-block:clamp(120px,13vw,200px) clamp(40px,5vw,72px); }

/* ============================================================
   8. REVEAL ANIMATION
   ============================================================ */
.chair-reveal{
  opacity:0; transform:translateY(26px);
  transition:opacity .95s var(--chair-ease),transform .95s var(--chair-ease);
}
.chair-reveal.is-in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){ .chair-reveal{ opacity:1; transform:none; } }

/* ============================================================
   9. PRICE LISTS
   ============================================================ */
.chair-prices ul{ list-style:none; margin:0; padding:0; }
.chair-prices li{
  display:flex; align-items:baseline; gap:14px;
  padding:17px 0; border-bottom:1px solid var(--chair-ink-12);
  font-size:16px;
}
.chair-prices li:first-child{ border-top:1px solid var(--chair-ink-12); }
.chair-prices .n{ font-weight:500; }
.chair-prices .s{ display:block; font-size:13.5px; color:var(--chair-ink-55); font-weight:400; letter-spacing:0; }
.chair-prices .d{ flex:1 1 auto; height:1px; background:var(--chair-ink-12); transform:translateY(-3px); }
.chair-prices .p{ font-family:var(--chair-font-display); font-size:1.1rem; white-space:nowrap; }
.chair-prices .cat{
  font-family:var(--chair-font-sans); font-size:11px; font-weight:600;
  letter-spacing:.24em; text-transform:uppercase; color:var(--chair-purple);
  margin:38px 0 10px; display:block;
}

/* ============================================================
   10. ACCORDION / FAQ
   ============================================================ */
.chair-faq .elementor-accordion .elementor-accordion-item{
  border:0; border-bottom:1px solid var(--chair-ink-12);
}
.chair-faq .elementor-tab-title{
  padding:26px 0; background:transparent;
  font-family:var(--chair-font-display); font-weight:400;
  font-size:clamp(1.05rem,1.7vw,1.4rem); letter-spacing:-.015em;
}
.chair-faq .elementor-tab-title a{ text-decoration:none; }
.chair-faq .elementor-tab-content{ border:0; padding:0 0 28px; color:var(--chair-ink-70); }
.chair-faq .elementor-accordion-icon{ color:var(--chair-purple); }
.chair-faq details,.chair-faq .e-n-accordion-item{
  border-bottom:1px solid var(--chair-ink-12);
}
.chair-faq summary{
  padding:26px 0; cursor:pointer; list-style:none;
  font-family:var(--chair-font-display); font-size:clamp(1.05rem,1.7vw,1.4rem);
}

/* ============================================================
   11. HEADER / NAV (Ultimate Addons header-footer)
   ============================================================ */
.ehf-header #masthead{
  position:sticky; top:0; z-index:999;
  transition:background-color .45s var(--chair-ease),box-shadow .45s var(--chair-ease);
}
body.chair-transparent-header .ehf-header #masthead{ background:transparent; }
body.chair-scrolled .ehf-header #masthead{
  background:rgba(255,255,255,.94);
  -webkit-backdrop-filter:saturate(180%) blur(14px);
  backdrop-filter:saturate(180%) blur(14px);
  box-shadow:0 1px 0 var(--chair-ink-06);
}
.chair-logo .elementor-heading-title,.chair-logo a{
  font-family:var(--chair-font-display);
  font-size:24px; letter-spacing:.34em; text-transform:uppercase;
  text-decoration:none; line-height:1;
}
.chair-nav .hfe-nav-menu .menu-item a.hfe-menu-item,
.chair-nav .hfe-nav-menu .sub-menu a.hfe-sub-menu-item{
  font-family:var(--chair-font-sans);
  font-size:11.5px; font-weight:500; letter-spacing:.17em; text-transform:uppercase;
}
.chair-nav .hfe-nav-menu .menu-item a.hfe-menu-item{ position:relative; }
.chair-nav .hfe-nav-menu__layout-horizontal .menu-item a.hfe-menu-item::after{
  content:""; position:absolute; left:var(--chair-menu-pad,15px); right:var(--chair-menu-pad,15px);
  bottom:6px; height:1px; background:currentColor;
  transform:scaleX(0); transform-origin:left;
  transition:transform .45s var(--chair-ease);
}
.chair-nav .hfe-nav-menu__layout-horizontal .menu-item a.hfe-menu-item:hover::after,
.chair-nav .hfe-nav-menu__layout-horizontal .current-menu-item > a.hfe-menu-item::after{ transform:scaleX(1); }
.chair-nav .sub-menu{ border-radius:var(--chair-radius-sm); overflow:hidden; box-shadow:var(--chair-shadow); }

/* ============================================================
   12. FOOTER
   ============================================================ */
.chair-footer a{ text-decoration:none; }
.chair-footer a:hover{ color:var(--chair-blush); }
.chair-footer .chair-eyebrow{ color:rgba(255,255,255,.55); }

/* ============================================================
   13. FORMS (WPForms)
   ============================================================ */
.wpforms-container .wpforms-field{ padding:12px 0; }
.wpforms-container .wpforms-field-label{
  font-family:var(--chair-font-sans); font-size:11px; font-weight:600;
  letter-spacing:.18em; text-transform:uppercase; color:var(--chair-ink-70);
}
.wpforms-container input[type=text],
.wpforms-container input[type=email],
.wpforms-container input[type=tel],
.wpforms-container input[type=url],
.wpforms-container input[type=number],
.wpforms-container input[type=date],
.wpforms-container select,
.wpforms-container textarea{
  width:100% !important; max-width:100% !important;
  border:0; border-bottom:1px solid var(--chair-ink-12); border-radius:0;
  background:transparent; padding:13px 0; font-family:var(--chair-font-sans);
  font-size:16px; color:var(--chair-ink); box-shadow:none;
  transition:border-color .35s var(--chair-ease);
}
.wpforms-container input:focus,.wpforms-container select:focus,.wpforms-container textarea:focus{
  border-bottom-color:var(--chair-purple); outline:none; box-shadow:none;
}
.wpforms-container textarea{ min-height:130px; }
.wpforms-container button[type=submit],
.wpforms-container .wpforms-submit{
  background:var(--chair-ink); color:#fff; border:0; border-radius:999px;
  padding:19px 38px; font-family:var(--chair-font-sans); font-size:11.5px;
  font-weight:600; letter-spacing:.16em; text-transform:uppercase; cursor:pointer;
  transition:background-color .35s var(--chair-ease),transform .45s var(--chair-ease);
}
.wpforms-container button[type=submit]:hover{ background:var(--chair-purple); transform:translateY(-2px); }
.wpforms-container .wpforms-required-label{ color:var(--chair-purple); }
.chair-dark .wpforms-container .wpforms-field-label{ color:rgba(255,255,255,.66); }
.chair-dark .wpforms-container input,.chair-dark .wpforms-container textarea,.chair-dark .wpforms-container select{
  color:#fff; border-bottom-color:rgba(255,255,255,.24);
}
.chair-dark .wpforms-container button[type=submit]{ background:#fff; color:var(--chair-ink); }
.chair-dark .wpforms-container button[type=submit]:hover{ background:var(--chair-blush); }

/* ============================================================
   14. BADGES + SMALL PIECES
   ============================================================ */
.chair-badge{
  display:inline-block; padding:8px 16px; border-radius:999px;
  background:var(--chair-purple-soft); color:var(--chair-purple);
  font-size:11px; font-weight:600; letter-spacing:.16em; text-transform:uppercase;
}
.chair-badge-teal{ background:var(--chair-teal-soft); color:var(--chair-teal); }
.chair-badge-blush{ background:var(--chair-blush); color:var(--chair-blush-ink); }
.chair-stat .elementor-heading-title{ font-size:clamp(2.4rem,4vw,3.6rem); letter-spacing:-.04em; }

/* Blog / journal cards */
.chair-post-card .elementor-post__title{ font-family:var(--chair-font-display); }
.chair-posts article,.chair-posts .elementor-post{ border-bottom:1px solid var(--chair-ink-12); }

/* ============================================================
   15. RESPONSIVE
   ============================================================ */
@media (max-width:1024px){
  body{ font-size:16.5px; }
}
@media (max-width:767px){
  body{ font-size:16px; line-height:1.62; }
  .elementor-button{ padding:17px 30px; font-size:11px; }
  .chair-prices li{ flex-wrap:wrap; gap:6px 12px; }
  .chair-prices .d{ display:none; }
  .chair-prices .p{ margin-left:auto; }
  .chair-card:hover{ transform:none; box-shadow:none; }
  .chair-logo .elementor-heading-title,.chair-logo a{ font-size:20px; letter-spacing:.28em; }
}
/* ============================================================
   16. GRID LAYOUTS (added by build step 4)
   ============================================================ */
.e-con.chair-grid,.chair-grid.chair-grid{
  display:grid;
  gap:clamp(22px,2.6vw,44px);
  align-items:start;
  width:100%;
}
.chair-grid > .e-con.e-con{ width:auto; max-width:100%; }
.chair-grid > *{ min-width:0; }
.chair-grid-2.chair-grid-2{ grid-template-columns:repeat(2,minmax(0,1fr)); }
.chair-grid-3.chair-grid-3{ grid-template-columns:repeat(3,minmax(0,1fr)); }
.chair-grid-4.chair-grid-4{ grid-template-columns:repeat(4,minmax(0,1fr)); }
.chair-grid-57.chair-grid-57{ grid-template-columns:minmax(0,5fr) minmax(0,7fr); }
.chair-grid-75.chair-grid-75{ grid-template-columns:minmax(0,7fr) minmax(0,5fr); }
.chair-grid-46.chair-grid-46{ grid-template-columns:minmax(0,4fr) minmax(0,6fr); }
.chair-grid-64.chair-grid-64{ grid-template-columns:minmax(0,6fr) minmax(0,4fr); }
.chair-grid-wide{ gap:clamp(32px,5vw,90px); }
.chair-grid-tight{ gap:clamp(14px,1.6vw,22px); }
.chair-middle.chair-middle{ align-items:center; }

@media (max-width:1024px){
  .chair-grid-3.chair-grid-3,.chair-grid-4.chair-grid-4{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .chair-grid-57.chair-grid-57,.chair-grid-75.chair-grid-75,
  .chair-grid-46.chair-grid-46,.chair-grid-64.chair-grid-64{ grid-template-columns:1fr; }
}
@media (max-width:767px){
  .chair-grid.chair-grid,.chair-grid-2.chair-grid-2,.chair-grid-3.chair-grid-3,
  .chair-grid-4.chair-grid-4{ grid-template-columns:1fr; }
}

/* Measures */
.chair-measure{ max-width:58ch; }
.chair-measure-lg{ max-width:70ch; }
.chair-center{ text-align:center; align-items:center; }
.chair-center.e-con{ align-items:center; }
.chair-center .chair-btnrow{ justify-content:center; }

/* Hero copy block */
.chair-hero-copy.e-con{ max-width:min(920px,92%); padding-bottom:clamp(48px,7vw,96px); padding-top:clamp(140px,16vw,220px); }
.chair-hero-copy .elementor-widget-button{ margin-top:10px; }

/* Page head */
.chair-page-head.e-con{ padding-top:clamp(130px,15vw,210px); padding-bottom:clamp(40px,5vw,72px); }

/* Button rows */
.chair-btnrow.e-con{ flex-direction:row; flex-wrap:wrap; align-items:center; width:auto; }

/* Card item spacing */
.chair-card-item .elementor-widget-button{ margin-top:6px; }
.chair-card-item .elementor-widget-heading{ margin-top:4px; }

/* CTA band */
.chair-cta.e-con{ text-align:center; }

/* Sticky side column */
.chair-sticky.e-con{ position:sticky; top:120px; }
@media (max-width:1024px){ .chair-sticky.e-con{ position:static; } }

/* Section padding helper on containers */
.chair-section.e-con{ padding-top:var(--chair-section); padding-bottom:var(--chair-section); }
.chair-section-sm.e-con{ padding-top:clamp(48px,6vw,96px); padding-bottom:clamp(48px,6vw,96px); }
.chair-section-flush.e-con{ padding-top:0; padding-bottom:0; }

/* Full-bleed image band */
.chair-band.e-con{ padding:0; }
.chair-band img{ width:100%; height:clamp(320px,46vw,640px); object-fit:cover; }

/* Map */
.chair-map iframe{ border-radius:var(--chair-radius); filter:grayscale(1) contrast(1.05); transition:filter .6s var(--chair-ease); }
.chair-map:hover iframe{ filter:grayscale(0); }

/* ============================================================
   17. WIDGET-LEVEL OVERRIDES (specificity over Elementor defaults)
   ============================================================ */
.chair-eyebrow .elementor-heading-title{
  font-family:var(--chair-font-sans);
  font-size:11px; font-weight:600; letter-spacing:.24em;
  text-transform:uppercase; color:var(--chair-purple); line-height:1.4;
}
.chair-lede .elementor-widget-container p,.chair-lede p{
  font-size:clamp(1.04rem,1.45vw,1.26rem); line-height:1.62; color:var(--chair-ink-70);
}
.chair-quiet .elementor-widget-container p,.chair-quiet p{ color:var(--chair-ink-55); font-size:15.5px; }

/* Hero */
.chair-hero .elementor-heading-title,
.chair-hero .elementor-widget-text-editor,
.chair-hero .elementor-widget-text-editor p{ color:#fff; }
.chair-hero .chair-eyebrow .elementor-heading-title{ color:rgba(255,255,255,.86); }
.chair-hero .chair-italic .elementor-heading-title em{ color:var(--chair-blush); font-style:italic; }
.chair-hero .chair-lede p{ color:rgba(255,255,255,.82); }

/* Dark + plum sections */
.chair-dark .elementor-heading-title,
.chair-dark .elementor-widget-text-editor,
.chair-dark .elementor-widget-text-editor p,
.chair-plum .elementor-heading-title,
.chair-plum .elementor-widget-text-editor,
.chair-plum .elementor-widget-text-editor p{ color:#fff; }
.chair-dark .chair-eyebrow .elementor-heading-title,
.chair-plum .chair-eyebrow .elementor-heading-title{ color:var(--chair-blush); }
.chair-dark .chair-lede p,.chair-plum .chair-lede p{ color:rgba(255,255,255,.74); }
.chair-dark .chair-quiet p,.chair-plum .chair-quiet p{ color:rgba(255,255,255,.6); }
.chair-dark .chair-italic .elementor-heading-title em,
.chair-plum .chair-italic .elementor-heading-title em{ color:var(--chair-blush); }

/* Extra ratios */
.chair-ratio-54 img{ aspect-ratio:5/4; }
.chair-ratio-43 img{ aspect-ratio:4/3; }

/* Address, contact + opening hours */
.chair-address{ font-style:normal; font-size:1.05rem; line-height:1.8; margin:0 0 14px; }
.chair-contactline{ margin:0; line-height:2; }
.chair-contactline a{ text-decoration:none; border-bottom:1px solid var(--chair-ink-12); }
.chair-contactline a:hover{ border-bottom-color:var(--chair-purple); color:var(--chair-purple); }
.chair-hours{ list-style:none; margin:26px 0 0; padding:0; }
.chair-hours li{
  display:flex; justify-content:space-between; gap:20px;
  padding:11px 0; border-bottom:1px solid var(--chair-ink-12); font-size:15px;
}
.chair-hours li:first-child{ border-top:1px solid var(--chair-ink-12); }
.chair-hours li span:first-child{ color:var(--chair-ink-55); }
.chair-hours li span:last-child{ font-weight:500; }
.chair-dark .chair-hours li,.chair-plum .chair-hours li{ border-color:rgba(255,255,255,.16); }

/* Full-bleed band */
.chair-band-img img{ width:100%; height:clamp(300px,42vw,600px); object-fit:cover; border-radius:0; display:block; }
.chair-band-img,.chair-band-img .elementor-widget-container,.chair-band-img figure{ border-radius:0; }

/* Team card text tightening */
.chair-card-item .elementor-widget-heading .elementor-heading-title{ font-size:clamp(1.25rem,1.9vw,1.75rem); }


/* ============================================================
   18. HEADER
   ============================================================ */
.ehf-header #masthead{
  position:sticky; top:0; z-index:999;
  background:#fff;
  border-bottom:1px solid transparent;
  transition:box-shadow .4s var(--chair-ease),border-color .4s var(--chair-ease);
}
body.admin-bar .ehf-header #masthead{ top:32px; }
body.chair-scrolled .ehf-header #masthead{
  box-shadow:0 10px 30px -22px rgba(11,11,12,.4);
  border-bottom-color:var(--chair-ink-06);
}
.chair-header.e-con{ transition:padding-top .4s var(--chair-ease),padding-bottom .4s var(--chair-ease); }
body.chair-scrolled .chair-header.e-con{ padding-top:12px; padding-bottom:12px; }

.chair-logo .elementor-heading-title,
.chair-logo .elementor-heading-title a{
  font-family:var(--chair-font-display);
  font-size:26px; letter-spacing:.36em; text-transform:uppercase;
  text-decoration:none; line-height:1; color:var(--chair-ink); font-weight:400;
}
.chair-logo-footer .elementor-heading-title,
.chair-logo-footer .elementor-heading-title a{ color:#fff; }

.chair-headerphone .elementor-heading-title,
.chair-headerphone .elementor-heading-title a{
  font-family:var(--chair-font-sans); font-size:12px; font-weight:500;
  letter-spacing:.1em; text-decoration:none; color:var(--chair-ink-70);
}
.chair-headerphone .elementor-heading-title a:hover{ color:var(--chair-purple); }
.chair-btn-sm .elementor-button{ padding:14px 26px; font-size:10.5px; }

.chair-header-left.e-con,.chair-header-right.e-con{ width:auto; flex:0 0 auto; }
.chair-header-mid.e-con{ flex:1 1 auto; width:auto; align-items:center; }

.chair-nav .hfe-nav-menu{ justify-content:center; }
.chair-nav .hfe-nav-menu li a.hfe-menu-item,
.chair-nav .hfe-nav-menu li a.hfe-sub-menu-item{
  font-family:var(--chair-font-sans); font-size:11.5px; font-weight:500;
  letter-spacing:.17em; text-transform:uppercase; color:var(--chair-ink);
  padding:10px 15px;
}
.chair-nav .hfe-nav-menu li a.hfe-menu-item:hover,
.chair-nav .hfe-nav-menu .current-menu-item > a.hfe-menu-item,
.chair-nav .hfe-nav-menu .current-menu-ancestor > a.hfe-menu-item{ color:var(--chair-purple); }
.chair-nav .sub-menu{
  background:#fff; box-shadow:var(--chair-shadow);
  border-radius:10px; overflow:hidden; padding:8px 0; border:0;
}
.chair-nav .hfe-nav-menu__toggle,.chair-nav .hfe-menu-toggle{ color:var(--chair-ink); background:transparent; }

@media (max-width:1180px){
  .chair-nav .hfe-nav-menu li a.hfe-menu-item{ padding:10px 11px; letter-spacing:.12em; }
}
@media (max-width:1024px){
  .chair-headerphone{ display:none; }
}
@media (max-width:767px){
  .chair-logo .elementor-heading-title,.chair-logo .elementor-heading-title a{ font-size:20px; letter-spacing:.28em; }
  .chair-btn-sm .elementor-button{ padding:12px 18px; font-size:10px; letter-spacing:.12em; }
  .chair-header.e-con{ gap:12px; }
}

/* ============================================================
   19. FOOTER
   ============================================================ */
.chair-footlinks{ list-style:none; margin:0; padding:0; }
.chair-footlinks li{ margin:0 0 10px; }
.chair-footlinks a{
  color:rgba(255,255,255,.68); text-decoration:none; font-size:15px;
  transition:color .3s var(--chair-ease);
}
.chair-footlinks a:hover{ color:#fff; }
.chair-social{ margin:6px 0 0; }
.chair-social a{
  color:rgba(255,255,255,.68); text-decoration:none; font-size:11.5px;
  letter-spacing:.16em; text-transform:uppercase; margin-right:22px;
}
.chair-social a:hover{ color:var(--chair-blush); }
.chair-footer .chair-address{ color:rgba(255,255,255,.72); font-size:15px; }
.chair-footer .chair-contactline a{
  color:rgba(255,255,255,.72); border-bottom-color:rgba(255,255,255,.22); font-size:15px;
}
.chair-footer .chair-contactline a:hover{ color:#fff; border-bottom-color:var(--chair-blush); }
.chair-footbar{
  display:flex; flex-wrap:wrap; gap:12px 28px; align-items:center;
  justify-content:space-between; font-size:13px; color:rgba(255,255,255,.5);
}
.chair-footbar p{ margin:0; }
.chair-footlegal a{ color:rgba(255,255,255,.5); text-decoration:none; margin-left:22px; }
.chair-footlegal a:first-child{ margin-left:0; }
.chair-footlegal a:hover{ color:#fff; }
@media (max-width:600px){
  .chair-footbar{ flex-direction:column; align-items:flex-start; }
  .chair-footlegal a{ margin:0 18px 0 0; }
}


/* ============================================================
   20. OVERRIDES OVER ELEMENTOR KIT
   ============================================================ */
.chair-btn .elementor-button.elementor-button{ background-color:var(--chair-ink); color:#fff; border-color:transparent; }
.chair-btn .elementor-button.elementor-button:hover{ background-color:var(--chair-purple); color:#fff; box-shadow:0 18px 36px -18px rgba(92,46,145,.7); }
.chair-btn-ghost .elementor-button.elementor-button{ background-color:transparent; color:var(--chair-ink); border-color:var(--chair-ink-12); }
.chair-btn-ghost .elementor-button.elementor-button:hover{ background-color:var(--chair-ink); color:#fff; border-color:var(--chair-ink); }
.chair-btn-light .elementor-button.elementor-button{ background-color:rgba(255,255,255,.10); color:#fff; border-color:rgba(255,255,255,.55); }
.chair-btn-light .elementor-button.elementor-button:hover{ background-color:#fff; color:var(--chair-ink); border-color:#fff; }

.chair-dark .chair-btn .elementor-button.elementor-button,
.chair-plum .chair-btn .elementor-button.elementor-button{ background-color:#fff; color:var(--chair-ink); }
.chair-dark .chair-btn .elementor-button.elementor-button:hover,
.chair-plum .chair-btn .elementor-button.elementor-button:hover{ background-color:var(--chair-blush); color:var(--chair-ink); box-shadow:none; }
.chair-dark .chair-btn-ghost .elementor-button.elementor-button,
.chair-plum .chair-btn-ghost .elementor-button.elementor-button{ background-color:transparent; color:#fff; border-color:rgba(255,255,255,.42); }
.chair-dark .chair-btn-ghost .elementor-button.elementor-button:hover,
.chair-plum .chair-btn-ghost .elementor-button.elementor-button:hover{ background-color:#fff; color:var(--chair-ink); border-color:#fff; }

/* ============================================================
   21. HERO SCRIM + HEADER FIT
   ============================================================ */
.chair-hero::after{
  background:
    linear-gradient(180deg, rgba(8,8,10,.58) 0%, rgba(8,8,10,.20) 26%, rgba(8,8,10,.52) 62%, rgba(8,8,10,.90) 100%),
    linear-gradient(90deg, rgba(8,8,10,.70) 0%, rgba(8,8,10,.22) 52%, rgba(8,8,10,0) 100%);
}
.chair-hero .elementor-heading-title{ text-shadow:0 2px 30px rgba(0,0,0,.35); }
.chair-hero .chair-lede p{ text-shadow:0 1px 20px rgba(0,0,0,.45); }

.chair-header .e-con-inner{ max-width:1500px; }
.chair-nav .hfe-nav-menu{ flex-wrap:nowrap; }
.chair-nav .hfe-nav-menu li a.hfe-menu-item{
  padding:10px 13px; font-size:11px; letter-spacing:.13em; white-space:nowrap;
}
@media (max-width:1400px){
  .chair-nav .hfe-nav-menu li a.hfe-menu-item{ padding:10px 9px; font-size:10.5px; letter-spacing:.09em; }
  .chair-logo .elementor-heading-title,.chair-logo .elementor-heading-title a{ font-size:22px; letter-spacing:.3em; }
}


/* ============================================================
   22. TEXT COLOUR SPECIFICITY (beats the Elementor kit)
   ============================================================ */
.chair-hero .elementor-widget-heading .elementor-heading-title,
.chair-hero .elementor-widget-text-editor .elementor-widget-container,
.chair-hero .elementor-widget-text-editor p{ color:#fff; }
.chair-hero .chair-eyebrow .elementor-heading-title{ color:rgba(255,255,255,.88); }
.chair-hero .chair-italic .elementor-heading-title em{ color:var(--chair-blush); font-style:italic; }
.chair-hero .chair-lede .elementor-widget-container p{ color:rgba(255,255,255,.86); }

.chair-dark .elementor-widget-heading .elementor-heading-title,
.chair-plum .elementor-widget-heading .elementor-heading-title,
.chair-dark .elementor-widget-text-editor .elementor-widget-container,
.chair-plum .elementor-widget-text-editor .elementor-widget-container,
.chair-dark .elementor-widget-text-editor p,
.chair-plum .elementor-widget-text-editor p{ color:#fff; }
.chair-dark .chair-eyebrow .elementor-heading-title,
.chair-plum .chair-eyebrow .elementor-heading-title{ color:var(--chair-blush); }
.chair-dark .chair-lede .elementor-widget-container p,
.chair-plum .chair-lede .elementor-widget-container p{ color:rgba(255,255,255,.76); }
.chair-dark .chair-quiet .elementor-widget-container p,
.chair-plum .chair-quiet .elementor-widget-container p{ color:rgba(255,255,255,.62); }
.chair-dark .elementor-widget-html,.chair-plum .elementor-widget-html{ color:rgba(255,255,255,.72); }

.chair-eyebrow .elementor-widget-container .elementor-heading-title{ color:var(--chair-purple); }
.chair-lede .elementor-widget-container p{ color:var(--chair-ink-70); }
.chair-quiet .elementor-widget-container p{ color:var(--chair-ink-55); }

/* Elementor heading defaults back to the ink token */
.elementor-widget-heading .elementor-heading-title{ color:var(--chair-ink); }


/* ============================================================
   23. PAGE PIECES
   ============================================================ */
.chair-num{
  display:block; font-family:var(--chair-font-sans); font-size:11px; font-weight:600;
  letter-spacing:.26em; color:var(--chair-purple);
}
.chair-role{
  font-family:var(--chair-font-sans); font-size:11px; font-weight:600;
  letter-spacing:.18em; text-transform:uppercase; color:var(--chair-purple); margin:0;
}
.chair-dark .chair-role,.chair-plum .chair-role{ color:var(--chair-blush); }

.chair-figure{ display:block; }
.chair-figure .fig{
  display:block; font-family:var(--chair-font-display);
  font-size:clamp(2.6rem,4.6vw,4.2rem); line-height:1; letter-spacing:-.04em; color:#fff;
}
.chair-figure .lab{
  display:block; margin-top:12px; font-family:var(--chair-font-sans); font-size:11px;
  font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:rgba(255,255,255,.55);
}

.chair-panel{
  border:1px solid var(--chair-ink-12); border-radius:var(--chair-radius);
  padding:clamp(22px,2.4vw,32px);
}
.chair-panel + .chair-panel{ margin-top:0; }
.chair-eyebrow-inline{
  display:block; font-family:var(--chair-font-sans); font-size:11px; font-weight:600;
  letter-spacing:.24em; text-transform:uppercase; color:var(--chair-purple); margin-bottom:14px;
}
.chair-panel p{ font-size:15.5px; color:var(--chair-ink-70); }
.chair-panel .chair-hours{ margin-top:0; }
.chair-panel .chair-hours li:first-child{ border-top:0; }
.chair-social-ink a{ color:var(--chair-ink-70); }
.chair-social-ink a:hover{ color:var(--chair-purple); }

/* Form block */
.chair-form .wpforms-container{ margin:0; }
.chair-form .wpforms-field-label{ margin-bottom:4px; }
.chair-form .wpforms-field-description{ font-size:13px; color:var(--chair-ink-55); }
.chair-form .wpforms-confirmation-container-full{
  background:var(--chair-purple-soft); border:0; border-radius:var(--chair-radius);
  padding:26px 30px; color:var(--chair-purple-deep);
}

/* Map in a full-bleed band */
.chair-band .chair-map iframe{ border-radius:0; height:clamp(340px,42vw,560px) !important; }

/* Accordion polish */
.chair-faq .elementor-accordion{ border:0; }
.chair-faq .elementor-tab-content p{ font-size:16px; color:var(--chair-ink-70); }
.chair-faq .elementor-accordion-icon svg{ width:14px; height:14px; }

/* Page head keeps clear of the sticky header */
.chair-page-head.e-con{ padding-top:clamp(120px,13vw,190px); }


/* ============================================================
   24. WPFORMS SPECIFICITY
   ============================================================ */
.wpforms-container .wpforms-form .wpforms-field{ padding:14px 0; }
.wpforms-container .wpforms-form .wpforms-field-label{
  font-family:var(--chair-font-sans); font-size:11px; font-weight:600;
  letter-spacing:.18em; text-transform:uppercase; color:var(--chair-ink-70); margin-bottom:8px;
}
.wpforms-container .wpforms-form input[type=text],
.wpforms-container .wpforms-form input[type=email],
.wpforms-container .wpforms-form input[type=tel],
.wpforms-container .wpforms-form input[type=url],
.wpforms-container .wpforms-form input[type=number],
.wpforms-container .wpforms-form select,
.wpforms-container .wpforms-form textarea{
  width:100%; max-width:100%;
  border:0; border-bottom:1px solid var(--chair-ink-12); border-radius:0;
  background:transparent; padding:12px 0; box-shadow:none;
  font-family:var(--chair-font-sans); font-size:16px; color:var(--chair-ink);
  transition:border-color .35s var(--chair-ease);
}
.wpforms-container .wpforms-form input:focus,
.wpforms-container .wpforms-form select:focus,
.wpforms-container .wpforms-form textarea:focus{
  border-bottom-color:var(--chair-purple); outline:none; box-shadow:none; background:transparent;
}
.wpforms-container .wpforms-form textarea{ min-height:140px; }
.wpforms-container .wpforms-form .wpforms-field-row{ display:flex; gap:24px; }
.wpforms-container .wpforms-form .wpforms-field-row-block{ flex:1 1 0; width:auto; float:none; padding:0; }
.wpforms-container .wpforms-form .wpforms-field-sublabel{
  font-size:12px; color:var(--chair-ink-38); letter-spacing:.04em; margin-top:6px;
}
.wpforms-container .wpforms-form .wpforms-required-label{ color:var(--chair-purple); }
.wpforms-container .wpforms-form button[type=submit]{
  background-color:var(--chair-ink); color:#fff; border:0; border-radius:999px;
  padding:19px 38px; margin-top:16px;
  font-family:var(--chair-font-sans); font-size:11.5px; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase; cursor:pointer;
  transition:background-color .35s var(--chair-ease),transform .45s var(--chair-ease);
}
.wpforms-container .wpforms-form button[type=submit]:hover{ background-color:var(--chair-purple); transform:translateY(-2px); }
.wpforms-container .wpforms-form .wpforms-field-checkbox label,
.wpforms-container .wpforms-form .wpforms-field-gdpr-checkbox label{
  font-size:14.5px; color:var(--chair-ink-70); text-transform:none; letter-spacing:0; font-weight:400;
}
.wpforms-container .wpforms-form .wpforms-field-gdpr-checkbox .wpforms-field-label{ display:none; }
.wpforms-container .wpforms-form label.wpforms-error{ color:#B3261E; font-size:13px; }
@media (max-width:600px){
  .wpforms-container .wpforms-form .wpforms-field-row{ flex-direction:column; gap:14px; }
}


/* ============================================================
   25. SERVICE + PROFILE PAGES
   ============================================================ */
.chair-crumb{
  font-family:var(--chair-font-sans); font-size:11px; font-weight:600;
  letter-spacing:.2em; text-transform:uppercase; color:var(--chair-ink-55); margin:0;
}
.chair-crumb a{ color:var(--chair-purple); text-decoration:none; }
.chair-crumb a:hover{ text-decoration:underline; }
.chair-crumb span{ margin:0 8px; color:var(--chair-ink-38); }

.chair-ticks{ list-style:none; margin:0; padding:0; }
.chair-ticks li{
  position:relative; padding:11px 0 11px 26px; font-size:15.5px;
  color:var(--chair-ink-70); border-bottom:1px solid var(--chair-ink-06);
}
.chair-ticks li:last-child{ border-bottom:0; }
.chair-ticks li::before{
  content:""; position:absolute; left:0; top:19px; width:9px; height:9px;
  border-radius:50%; background:var(--chair-purple);
}

.chair-pricenote{
  font-size:14.5px; color:var(--chair-ink-55); max-width:70ch; margin:0;
  padding-top:18px; border-top:1px solid var(--chair-ink-12);
}
.chair-pricenote a{ color:var(--chair-purple); }

.chair-profile-head.e-con,.chair-svc-head.e-con{
  padding-top:clamp(110px,12vw,170px); padding-bottom:clamp(40px,5vw,70px);
}
.chair-profile-head .chair-media img,.chair-svc-head .chair-media img{ border-radius:var(--chair-radius); }

/* Price list inside a two-column menu block */
.chair-prices .cat:first-child{ margin-top:0; }
.chair-prices li{ align-items:flex-start; }
.chair-prices .p{ color:var(--chair-ink-55); font-size:.98rem; font-family:var(--chair-font-sans); letter-spacing:.02em; }

/* Reduce hero height a touch on short screens */
@media (max-height:760px) and (min-width:1024px){
  .chair-hero.e-con{ min-height:92vh; }
}


/* ============================================================
   26. TYPE SCALE CORRECTION
   ============================================================ */
.chair-xl .elementor-heading-title{
  font-size:clamp(2.2rem,4.4vw,4.1rem);
  line-height:1.02; letter-spacing:-.028em; text-wrap:balance; hyphens:none;
}
.chair-page-head .chair-xl .elementor-heading-title{ font-size:clamp(2.5rem,5.4vw,5rem); }
.chair-svc-head .chair-xl .elementor-heading-title,
.chair-profile-head .chair-xl .elementor-heading-title{ font-size:clamp(2.2rem,3.9vw,3.7rem); }
.chair-hero .chair-xl .elementor-heading-title{ font-size:clamp(2.9rem,7.2vw,6.6rem); line-height:.96; letter-spacing:-.035em; }
.chair-cta .chair-xl .elementor-heading-title{ font-size:clamp(2.2rem,4.2vw,3.8rem); }

.elementor-widget-heading .elementor-heading-title{ text-wrap:balance; }
.chair-card-item .elementor-widget-heading .elementor-heading-title{ font-size:clamp(1.2rem,1.8vw,1.6rem); letter-spacing:-.018em; }

@media (max-width:767px){
  .chair-xl .elementor-heading-title,
  .chair-page-head .chair-xl .elementor-heading-title,
  .chair-svc-head .chair-xl .elementor-heading-title,
  .chair-profile-head .chair-xl .elementor-heading-title{ font-size:clamp(2rem,8.6vw,2.9rem); }
  .chair-hero .chair-xl .elementor-heading-title{ font-size:clamp(2.4rem,11vw,3.6rem); }
}


/* ============================================================
   27. MOBILE HEADER
   ============================================================ */
@media (max-width:1024px){
  .chair-header.e-con{
    flex-wrap:nowrap; gap:10px; align-items:center;
    padding-top:14px; padding-bottom:14px;
  }
  .chair-header-left.e-con{ order:1; flex:1 1 auto; width:auto; }
  .chair-header-right.e-con{ order:2; flex:0 0 auto; width:auto; gap:10px; }
  .chair-header-mid.e-con{ order:3; flex:0 0 auto; width:auto; }
  .chair-nav .hfe-nav-menu__toggle,.chair-nav .hfe-menu-toggle{ margin:0; padding:6px; }
  .chair-nav .hfe-nav-menu__layout-horizontal .menu-item a.hfe-menu-item::after{ display:none; }
  .chair-header-right .elementor-widget-button .elementor-button{ white-space:nowrap; }
}
@media (max-width:420px){
  .chair-logo .elementor-heading-title,.chair-logo .elementor-heading-title a{ font-size:17px; letter-spacing:.22em; }
  .chair-btn-sm .elementor-button{ padding:11px 15px; font-size:9.5px; letter-spacing:.1em; }
}

/* Mobile flow tightening */
@media (max-width:767px){
  .chair-hero-copy.e-con{ padding-top:clamp(110px,26vw,150px); padding-bottom:clamp(40px,10vw,64px); }
  .chair-btnrow.e-con{ width:100%; }
  .chair-btnrow .elementor-widget-button{ width:100%; }
  .chair-btnrow .elementor-button{ width:100%; justify-content:center; }
  .chair-panel{ padding:22px; }
  .chair-band-img img{ height:clamp(240px,60vw,340px); }
  .chair-figure .fig{ font-size:clamp(2.2rem,12vw,3rem); }
}


/* ============================================================
   28. MOBILE DROPDOWN MENU
   ============================================================ */
@media (max-width:1024px){
  .chair-header.e-con{ position:relative; }
  .chair-nav nav.hfe-dropdown{
    display:none;
    position:absolute; top:100%;
    left:0 !important; right:0; width:auto !important;
    background:#fff;
    box-shadow:0 26px 54px -28px rgba(11,11,12,.5);
    border-top:1px solid var(--chair-ink-06);
    padding:10px 0; z-index:9999 !important;
    max-height:calc(100vh - 90px); overflow-y:auto;
  }
  .chair-nav nav.hfe-dropdown.menu-is-active{ display:block; }
  .chair-nav nav.hfe-dropdown ul.hfe-nav-menu{ flex-direction:column; width:100%; }
  .chair-nav nav.hfe-dropdown li.menu-item{ width:100%; }
  .chair-nav nav.hfe-dropdown li.menu-item a.hfe-menu-item{
    padding:16px 26px; font-size:12px; letter-spacing:.16em; width:100%;
    border-bottom:1px solid var(--chair-ink-06);
  }
  .chair-nav nav.hfe-dropdown li.menu-item:last-child a.hfe-menu-item{ border-bottom:0; }
  .chair-nav nav.hfe-dropdown .sub-menu{
    position:static; box-shadow:none; border-radius:0; padding:0; background:var(--chair-mist);
  }
  .chair-nav nav.hfe-dropdown .sub-menu a.hfe-sub-menu-item{ padding:13px 40px; font-size:11.5px; }
  .chair-nav .hfe-nav-menu-icon svg{ width:22px; height:22px; }
}


/* ============================================================
   29. HEADER INNER FLEX FIX
   Boxed containers put children in .e-con-inner, so flex rules
   must target that element, not the outer .e-con.
   ============================================================ */
.chair-header.e-con > .e-con-inner{
  display:flex; flex-direction:row; flex-wrap:nowrap;
  align-items:center; justify-content:space-between;
  position:relative; gap:24px; max-width:1500px;
}
.chair-header-left.e-con{ flex:0 1 auto; width:auto; }
.chair-header-mid.e-con{ flex:1 1 auto; width:auto; }
.chair-header-right.e-con{ flex:0 0 auto; width:auto; }

@media (max-width:1024px){
  .chair-header.e-con > .e-con-inner{ gap:12px; }
  .chair-header-left.e-con{ order:1; flex:1 1 auto; }
  .chair-header-right.e-con{ order:2; flex:0 0 auto; }
  .chair-header-mid.e-con{ order:3; flex:0 0 auto; }

  .chair-nav nav.hfe-dropdown{
    left:0 !important; right:0 !important; width:auto !important;
    top:calc(100% + 14px);
  }
}
@media (max-width:400px){
  .chair-header.e-con > .e-con-inner{ gap:8px; }
}


/* ============================================================
   30. DROPDOWN CONTAINING BLOCK
   Elementor makes every container position:relative, so the nav
   column becomes the dropdown's containing block. Neutralise it.
   ============================================================ */
@media (max-width:1024px){
  .chair-header-mid.e-con{ position:static; }
  .chair-nav .elementor-widget-container{ position:static; }
  .chair-nav .hfe-nav-menu{ position:static; }
  .chair-nav nav.hfe-dropdown{
    left:0 !important; right:0 !important; width:auto !important;
    max-width:none !important;
  }
}


/* ============================================================
   31. NAV WIDGET STATIC (final containing-block fix)
   ============================================================ */
@media (max-width:1024px){
  .elementor-widget.chair-nav{ position:static; }
  .chair-nav nav.hfe-dropdown{
    left:0 !important; right:0 !important; width:auto !important; max-width:none !important;
  }
}


/* ============================================================
   32. BRAND LOGO (real CHAIR wordmark asset)
   ============================================================ */
.chair-logo-img img{
  width:auto; height:30px; display:block;
  filter:brightness(0);
  transition:height .4s var(--chair-ease),filter .4s var(--chair-ease);
}
.chair-logo-img .elementor-widget-container,.chair-logo-img figure,.chair-logo-img a{ display:block; line-height:0; }
body.chair-scrolled .chair-logo-img img{ height:25px; }
.chair-logo-img-light img,body.chair-scrolled .chair-logo-img-light img{ filter:none; height:34px; }
@media (max-width:767px){
  .chair-logo-img img,body.chair-scrolled .chair-logo-img img{ height:22px; }
  .chair-logo-img-light img{ height:28px; }
}

.chair-hoursnote{
  margin:12px 0 0; font-size:12.5px; color:var(--chair-ink-38);
  font-style:italic;
}


/* ============================================================
   33. LEGAL / LONG-FORM PAGES
   ============================================================ */
.chair-legal{ max-width:72ch; }
.chair-legal h2{
  font-size:clamp(1.35rem,2.1vw,1.9rem); margin:2.4em 0 .6em; letter-spacing:-.018em;
}
.chair-legal h2:first-child{ margin-top:0; }
.chair-legal h3{
  font-family:var(--chair-font-sans); font-size:13px; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase; color:var(--chair-purple);
  margin:1.9em 0 .5em;
}
.chair-legal p{ margin:0 0 1.1em; color:var(--chair-ink-70); }
.chair-legal ul{ margin:0 0 1.4em; padding:0; list-style:none; }
.chair-legal li{
  position:relative; padding:9px 0 9px 24px; color:var(--chair-ink-70);
  border-bottom:1px solid var(--chair-ink-06);
}
.chair-legal li:last-child{ border-bottom:0; }
.chair-legal li::before{
  content:""; position:absolute; left:2px; top:18px; width:6px; height:6px;
  border-radius:50%; background:var(--chair-purple);
}
.chair-legal a{ color:var(--chair-purple); text-decoration:underline; text-underline-offset:.2em; }
.chair-legal strong{ color:var(--chair-ink); font-weight:600; }
.chair-legal-links a{ display:block; padding:7px 0; text-decoration:none; font-size:15px; color:var(--chair-ink-70); }
.chair-legal-links a:hover{ color:var(--chair-purple); }


/* ============================================================
   34. JOURNAL (blog index + single post)
   ============================================================ */
.site-main{ width:100%; }
body.blog .site-main,body.archive .site-main,body.single-post .site-main,body.search .site-main{
  max-width:var(--chair-shell); margin-inline:auto;
  padding-inline:var(--chair-gutter);
  padding-top:clamp(120px,13vw,190px); padding-bottom:var(--chair-section);
}
body.blog .page-header,body.archive .page-header{
  margin:0 0 clamp(36px,5vw,64px); padding:0; border:0;
}
body.blog .page-header .entry-title,body.archive .page-header .entry-title{
  font-size:clamp(2.5rem,5.4vw,5rem); letter-spacing:-.03em; margin:0;
}
body.blog .page-header::before,body.archive .page-header::before{
  content:"The journal"; display:block; margin-bottom:16px;
  font-family:var(--chair-font-sans); font-size:11px; font-weight:600;
  letter-spacing:.24em; text-transform:uppercase; color:var(--chair-purple);
}

/* Index grid */
body.blog .page-content,body.archive .page-content{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(26px,3vw,48px); align-items:start;
}
body.blog article.post,body.archive article.post{
  margin:0; border:0; padding:0;
  transition:transform .6s var(--chair-ease);
}
body.blog article.post:hover,body.archive article.post:hover{ transform:translateY(-5px); }
body.blog article.post img,body.archive article.post img{
  width:100%; aspect-ratio:4/3; object-fit:cover;
  border-radius:var(--chair-radius); display:block; margin:0 0 20px;
  transition:transform 1.1s var(--chair-ease);
}
body.blog article.post > a:first-of-type,body.archive article.post > a:first-of-type{ display:block; overflow:hidden; border-radius:var(--chair-radius); }
body.blog article.post .entry-title,body.archive article.post .entry-title{
  order:2; font-size:clamp(1.2rem,1.8vw,1.55rem); line-height:1.16; margin:0 0 12px;
}
body.blog article.post .entry-title a,body.archive article.post .entry-title a{ text-decoration:none; }
body.blog article.post .entry-title a:hover,body.archive article.post .entry-title a:hover{ color:var(--chair-purple); }
body.blog article.post p,body.archive article.post p{ color:var(--chair-ink-55); font-size:15.5px; margin:0 0 14px; }
body.blog article.post .entry-meta,body.archive article.post .entry-meta{
  font-family:var(--chair-font-sans); font-size:11px; letter-spacing:.16em;
  text-transform:uppercase; color:var(--chair-ink-38);
}
@media (max-width:1024px){ body.blog .page-content,body.archive .page-content{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:700px){ body.blog .page-content,body.archive .page-content{ grid-template-columns:1fr; } }

/* Single post */
body.single-post .site-main{ max-width:820px; }
body.single-post .entry-header .entry-title{ font-size:clamp(2.2rem,4.4vw,3.6rem); letter-spacing:-.028em; margin:0 0 18px; }
body.single-post .entry-meta{
  font-family:var(--chair-font-sans); font-size:11px; font-weight:600; letter-spacing:.2em;
  text-transform:uppercase; color:var(--chair-purple); margin-bottom:28px;
}
body.single-post .post-thumbnail img,body.single-post .entry-content > img,body.single-post img.wp-post-image{
  width:100%; aspect-ratio:16/9; object-fit:cover; border-radius:var(--chair-radius); margin:0 0 40px;
}
body.single-post .entry-content{ font-size:17.5px; line-height:1.72; }
body.single-post .entry-content h2{ font-size:clamp(1.4rem,2.3vw,2rem); margin:2em 0 .55em; }
body.single-post .entry-content p{ margin:0 0 1.25em; color:var(--chair-ink-70); }
body.single-post .entry-content ul{ margin:0 0 1.5em; padding:0; list-style:none; }
body.single-post .entry-content li{
  position:relative; padding:10px 0 10px 26px; color:var(--chair-ink-70);
  border-bottom:1px solid var(--chair-ink-06);
}
body.single-post .entry-content li::before{
  content:""; position:absolute; left:2px; top:19px; width:6px; height:6px;
  border-radius:50%; background:var(--chair-purple);
}
body.single-post .entry-content a{ color:var(--chair-purple); }
body.single-post .post-navigation{ margin-top:56px; padding-top:28px; border-top:1px solid var(--chair-ink-12); }
body.single-post .post-navigation a{ text-decoration:none; font-size:13px; letter-spacing:.06em; }
.pagination,.nav-links{ margin-top:56px; display:flex; gap:10px; flex-wrap:wrap; }
.pagination .page-numbers,.nav-links .page-numbers{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:42px; height:42px; padding:0 12px; border-radius:999px;
  border:1px solid var(--chair-ink-12); text-decoration:none; font-size:13px;
}
.pagination .page-numbers.current,.nav-links .page-numbers.current{ background:var(--chair-ink); color:#fff; border-color:var(--chair-ink); }


/* ============================================================
   35. JOURNAL CARD ORDER (image above title)
   ============================================================ */
body.blog article.post,body.archive article.post,body.search article.post{
  display:flex; flex-direction:column;
}
body.blog article.post > a,body.archive article.post > a,body.search article.post > a{
  order:1; display:block; overflow:hidden; border-radius:var(--chair-radius); margin-bottom:20px;
}
body.blog article.post .entry-title,body.archive article.post .entry-title,body.search article.post .entry-title{ order:2; }
body.blog article.post p,body.archive article.post p,body.search article.post p{ order:3; }
body.blog article.post .entry-meta,body.archive article.post .entry-meta{ order:4; }
body.blog article.post > a img,body.archive article.post > a img{ margin:0; }
body.blog article.post:hover > a img,body.archive article.post:hover > a img{ transform:scale(1.05); }


/* ============================================================
   36. HEADER FIT WITH DROPDOWNS
   ============================================================ */
.chair-nav .hfe-nav-menu li a.hfe-menu-item{ padding:10px 11px; font-size:10.8px; letter-spacing:.11em; }
.chair-nav .hfe-nav-menu .sub-arrow{ margin-left:5px; }
.chair-nav .hfe-nav-menu .sub-arrow svg,.chair-nav .hfe-nav-menu .sub-arrow i{ width:9px; height:9px; font-size:9px; }
.chair-header-right.e-con{ gap:16px; }

@media (max-width:1500px){
  .chair-nav .hfe-nav-menu li a.hfe-menu-item{ padding:10px 8px; font-size:10.4px; letter-spacing:.07em; }
  .chair-logo-img img{ height:26px; }
}
@media (max-width:1320px){
  .chair-headerphone{ display:none; }
}

/* Sub-menu presentation */
.chair-nav .sub-menu{ min-width:250px; padding:10px 0; }
.chair-nav .sub-menu li a.hfe-sub-menu-item{
  padding:12px 22px; font-size:11px; letter-spacing:.1em; white-space:normal; line-height:1.4;
}
.chair-nav .sub-menu li a.hfe-sub-menu-item:hover{ background:var(--chair-mist); color:var(--chair-purple); }
