/*
Theme Name: Salon 43 One
Theme URI: https://salon43one.com
Author: Salon 43 One
Description: Custom block theme for Salon 43 One (119, Stadium Trace and Alabaster). Black-and-white editorial design with arch photo frames, editable stylists, locations and Phorest booking.
Version: 1.2.3
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: salon43one
*/

/* ---------- Base ---------- */
:root { --s43-ink:#141312; --s43-stone:#F1EEEA; --s43-line:#D9D4CE; --s43-muted:#6A645E; --s43-soft:#CFC9C2; --s43-body:#3D3935; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { -webkit-font-smoothing: antialiased; }
:where(a, button, input, select, textarea, summary):focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
img { max-width: 100%; height: auto; }
h1, h2, h3, h4, .s43-serif { font-variant-numeric: lining-nums; font-feature-settings: "lnum" 1; }
em, .s43-italic { font-style: italic; }
.wp-site-blocks > main { margin-block-start: 0; }
.wp-site-blocks > footer { margin-block-start: 0; }

/* Labels and arrow links (the spaced-out lettering from the storefront sign) */
.s43-eyebrow { font-size: 11px !important; font-weight: 600; letter-spacing: .24em; text-transform: uppercase; }
.s43-link a, a.s43-link { font-size: 11px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 4px; display: inline-block; }
.s43-link a:hover, a.s43-link:hover { opacity: .7; }

/* ---------- Buttons ---------- */
.wp-block-button__link { line-height: 1.2; }
.wp-block-button.is-style-light > .wp-block-button__link { background: #fff; color: var(--s43-ink); }
.wp-block-button.is-style-light > .wp-block-button__link:hover { background: #ece8e3; }
.wp-block-button.is-style-ghost > .wp-block-button__link { background: transparent; color: #fff; box-shadow: inset 0 0 0 1px currentColor; }
.wp-block-button.is-style-ghost > .wp-block-button__link:hover { background: rgba(255,255,255,.1); }
.wp-block-button.is-style-dark > .wp-block-button__link { background: var(--s43-ink); color: #fff; }

/* ---------- The arch ---------- */
.is-style-arch img, .s43-arch img, img.s43-arch { border-radius: 999px 999px 0 0; object-fit: cover; width: 100%; display: block; }
.is-style-arch.s43-tall img { aspect-ratio: 3 / 4.2; }
.is-style-arch.s43-card-img img { aspect-ratio: 4 / 4.6; }

/* ---------- Header (sits over the dark top of every page) ---------- */
.s43-header { position: absolute; inset: 0 0 auto 0; z-index: 20; color: #fff; }
.admin-bar .s43-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .s43-header { top: 46px; } }
.s43-header a { color: #fff; text-decoration: none; }
.s43-header .wp-block-site-logo img { width: 54px; height: 54px; }
.s43-header .wp-block-navigation { font-size: 13px; font-weight: 600; }
.s43-header .wp-block-navigation .wp-block-navigation__submenu-container { background: #fff !important; color: var(--s43-ink) !important; border: 0 !important; padding: 10px 0; min-width: 220px !important; box-shadow: 0 18px 40px -20px rgba(0,0,0,.4); }
.s43-header .wp-block-navigation .wp-block-navigation__submenu-container a { color: var(--s43-ink); padding: 8px 18px; }
.s43-header .wp-block-navigation__responsive-container.is-menu-open { background: var(--s43-ink) !important; color: #fff !important; }
.s43-header .wp-block-navigation__responsive-container.is-menu-open a { color: #fff; font-size: 22px; font-family: var(--wp--preset--font-family--garamond); }
.s43-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { background: transparent !important; box-shadow: none; }

/* ---------- Page rhythm ---------- */
.s43-main, .s43-page { margin: 0; }
.s43-page > *, .s43-main > * { margin-block: 0 !important; }
.s43-sec { padding-top: clamp(72px, 9vw, 120px) !important; padding-bottom: clamp(72px, 9vw, 120px) !important; }
.s43-sec-sm { padding-top: clamp(56px, 7vw, 90px) !important; padding-bottom: clamp(56px, 7vw, 90px) !important; }
.s43-sec-top { padding-top: 56px !important; }
.s43-sec-flush { padding-top: 24px !important; }
.s43-gap-xl { gap: clamp(32px, 6vw, 80px) !important; }
.s43-gap-l { gap: 32px !important; }
.s43-center { align-items: center !important; }

/* ---------- Heroes ---------- */
.s43-hero { position: relative; overflow: hidden; min-height: 720px; display: flex; flex-direction: column; justify-content: flex-end; padding-top: 150px !important; padding-bottom: 72px !important; background-color: #000; background-size: cover; color: #fff; }
.s43-hero::before { content: ""; position: absolute; inset: 0; background: #000; opacity: .45; z-index: 1; pointer-events: none; }
.s43-hero.s43-dim-38::before { opacity: .38; } .s43-hero.s43-dim-50::before { opacity: .5; } .s43-hero.s43-dim-60::before { opacity: .6; }
.s43-hero > * { position: relative; z-index: 2; width: 100%; }
.s43-hero .s43-hero-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; max-width: none !important; margin: 0 !important; }
@media (prefers-reduced-motion: reduce) { .s43-hero .s43-hero-video { display: none; } }
.s43-hero-row { gap: 40px !important; align-items: flex-end !important; }
.s43-hero-text { max-width: 860px; }
.s43-hero h1, .s43-plainhero h1 { color: #fff; margin: 16px 0 0; }
.s43-lead { font-size: 18px; margin-top: 20px !important; }
.s43-hero .s43-lead { max-width: 620px; color: #ece7e1; }
.s43-hero .wp-block-buttons { flex-shrink: 0; }
.s43-plainhero { background: var(--s43-ink); color: #fff; padding-top: 170px !important; padding-bottom: 80px !important; }
.s43-plainhero .s43-lead { color: #d8d3cd; }
.s43-plainhero .wp-block-post-date { color: var(--s43-soft); }

/* ---------- Section helpers ---------- */
.s43-dark { background: var(--s43-ink); color: #fff; }
.s43-dark h1, .s43-dark h2, .s43-dark h3 { color: #fff; }
.s43-stone { background: var(--s43-stone); }
.s43-rowhead { border-bottom: 1px solid var(--s43-line); padding-bottom: 22px; }
.s43-muted { color: var(--s43-muted); }
.s43-body { color: var(--s43-body); }

/* Info strip (location pages) */
.s43-info { border-top: 1px solid var(--s43-line); border-bottom: 1px solid var(--s43-line); }
.s43-info > .wp-block-column { padding: 28px 24px 28px 0; }
.s43-info > .wp-block-column + .wp-block-column { border-left: 1px solid var(--s43-line); padding-left: 24px; }
.s43-info p { margin: 8px 0 0; font-size: 15px; }
@media (max-width: 781px) { .s43-info > .wp-block-column + .wp-block-column { border-left: 0; padding-left: 0; border-top: 1px solid var(--s43-line); } }

/* Team strip and salon bar (homepage) */
.s43-salonbar { border-top: 1px solid #34312e; }
.s43-salonbar > .wp-block-column { padding: 28px 0; }
.s43-salonbar > .wp-block-column + .wp-block-column { border-left: 1px solid #34312e; padding-left: 40px; }
.s43-salonbar .s43-sub { color: var(--s43-soft); font-size: 11px; letter-spacing: .2em; text-transform: uppercase; margin: 4px 0 0; }
@media (max-width: 781px) { .s43-salonbar > .wp-block-column + .wp-block-column { border-left: 0; padding-left: 0; border-top: 1px solid #34312e; } }

/* Location cards */
.s43-loccard h3 { margin: 22px 0 6px; }
.s43-loccard p { margin: 0 0 14px; color: var(--s43-muted); font-size: 15px; }

/* Policies and lists with hairlines */
.s43-rules > * { border-top: 1px solid var(--s43-line); padding: 24px 0 !important; margin: 0 !important; }
.s43-rules > *:last-child { border-bottom: 1px solid var(--s43-line); }
.s43-rules h3 { margin: 0 0 8px !important; }
.s43-rules p { margin: 0; color: var(--s43-body); font-size: 15px; }

/* Price menu */
.s43-menu ul { list-style: none; margin: 0; padding: 0; }
.s43-menu li { display: flex; justify-content: space-between; gap: 16px; padding: 12px 0; border-bottom: 1px solid #34312e; }
.s43-menu li strong { font-weight: 500; white-space: nowrap; }
.s43-menu h3, .s43-menu h2 { margin-bottom: 6px; }

/* Rewards points */
.s43-points .s43-big { font-family: var(--wp--preset--font-family--garamond); font-size: 64px; line-height: 1; margin: 0; }
.s43-points > .wp-block-column { border-top: 1px solid var(--s43-line); padding-top: 16px; }

/* Columns with dividers (rewards, careers) */
.s43-divided > .wp-block-column { border-top: 1px solid var(--s43-line); padding: 24px 24px 24px 0; }
.s43-divided > .wp-block-column + .wp-block-column { border-left: 1px solid var(--s43-line); padding-left: 24px; }
.s43-dark .s43-divided > .wp-block-column { border-color: #34312e; }
.s43-divided p { margin: 0 0 14px; }
@media (max-width: 781px) { .s43-divided > .wp-block-column + .wp-block-column { border-left: 0; padding-left: 0; } }

/* Forms (WPForms / Contact Form 7) */
.s43-form { background: #fff; border: 1px solid var(--s43-line); padding: 32px; }
.s43-form input[type=text], .s43-form input[type=email], .s43-form input[type=tel], .s43-form input[type=url], .s43-form select, .s43-form textarea { width: 100%; border: 1px solid var(--s43-line) !important; border-radius: 0 !important; padding: 10px 12px !important; font: inherit; background: #fff; }
.s43-form label, .s43-form .wpforms-field-label { font-size: 11px !important; font-weight: 700 !important; letter-spacing: .16em; text-transform: uppercase; }
.s43-form button[type=submit], .s43-form input[type=submit], .s43-form .wpforms-submit { background: var(--s43-ink) !important; color: #fff !important; border: 0 !important; border-radius: 999px !important; padding: 15px 26px !important; font-size: 11px !important; font-weight: 700 !important; letter-spacing: .18em; text-transform: uppercase; cursor: pointer; }

/* ---------- Team (shortcodes) ---------- */
.s43-team-salons { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 32px; }
.s43-salon-tab { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 20px; border-radius: 999px; border: 0; cursor: pointer; font: inherit; font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; background: #fff; color: var(--s43-ink); box-shadow: inset 0 0 0 1px var(--s43-line); }
.s43-salon-tab[aria-selected="true"] { background: var(--s43-ink); color: #fff; box-shadow: none; }
.s43-salon-tab .meta { opacity: .65; font-weight: 600; }
.s43-salon-tab .name, .s43-salon-tab .city { display: inline; }
.s43-salon-tab .city { display: none; }
.s43-team-panel[hidden] { display: none; }
.s43-firstavail { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 16px; border-bottom: 1px solid var(--s43-line); padding-bottom: 22px; margin-bottom: 40px; }
.s43-firstavail h3 { margin: 0; font-size: clamp(32px, 3.4vw, 46px); }
.s43-firstavail p { margin: 6px 0 0; color: var(--s43-muted); font-size: 15px; }
.s43-firstavail .s43-btn { font-size: 11px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 4px; color: inherit; background: none; }
.s43-stylists { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 150px), 1fr)); gap: 30px 16px; margin: 0; padding: 0; list-style: none; }
.s43-stylist { display: flex; flex-direction: column; gap: 2px; }
.s43-stylist img, .s43-stylist .ph { width: 100%; aspect-ratio: 3 / 4.2; border-radius: 999px 999px 0 0; object-fit: cover; object-position: center top; background: var(--s43-stone); }
.s43-stylist .ph { display: flex; align-items: center; justify-content: center; font-family: var(--wp--preset--font-family--garamond); font-size: 48px; color: var(--s43-muted); }
.s43-stylist h3 { margin: 14px 0 0; font-size: 24px; line-height: 1.1; }
.s43-stylist .role { font-size: 11px; color: var(--s43-muted); letter-spacing: .14em; text-transform: uppercase; }
.s43-dark .s43-stylist .role { color: var(--s43-soft); }
.s43-stylist .links { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-top: 10px; }
.s43-stylist .links a { font-size: 11px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 3px; color: inherit; }
.s43-stylist .links a.quiet { color: var(--s43-muted); border-color: transparent; }
.s43-rest { background: var(--s43-stone); padding: 36px; margin-top: 56px; }
.s43-rest h3 { margin: 0 0 6px; font-size: 30px; }
.s43-rest > p { margin: 0 0 20px; color: var(--s43-muted); font-size: 15px; }
.s43-rest ul { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap: 14px; margin: 0; padding: 0; list-style: none; }
.s43-rest li { background: #fff; border-radius: 999px; padding: 8px 18px 8px 8px; display: flex; align-items: center; gap: 12px; }
.s43-rest img, .s43-rest .ph { width: 46px; height: 46px; flex: 0 0 46px; border-radius: 50%; object-fit: cover; object-position: center 12%; background: var(--s43-stone); display: flex; align-items: center; justify-content: center; font-family: var(--wp--preset--font-family--garamond); }
.s43-rest .who { display: flex; flex-direction: column; line-height: 1.3; font-size: 15px; }
.s43-rest .who span { font-size: 12px; color: var(--s43-muted); }
.s43-coming { background: var(--s43-ink); color: #fff; padding: 48px; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 20px; }
.s43-coming h3 { margin: 0 0 8px; color: #fff; font-size: 36px; }
.s43-coming p { margin: 0; color: #d8d3cd; }
.s43-coming .s43-btn { background: #fff; color: var(--s43-ink) !important; border-radius: 999px; padding: 15px 24px; font-size: 11px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; text-decoration: none; }

/* ---------- Footer ---------- */
.s43-footer { background: var(--s43-ink); color: #fff; padding-top: clamp(72px, 9vw, 110px) !important; padding-bottom: 36px !important; margin-top: 0 !important; }
.s43-footer-top { border-bottom: 1px solid #34312e; padding-bottom: 64px; align-items: center !important; }
.s43-footer .s43-seal img { width: 150px !important; height: 150px !important; }
.s43-footer .s43-cols { padding: 48px 0; margin-top: 0 !important; margin-bottom: 0 !important; }
.s43-footer .s43-cols p { margin: 0; }
.s43-footer .s43-cols .s43-eyebrow { margin-bottom: 14px !important; }
.s43-footer-phone a { font-family: var(--wp--preset--font-family--garamond); font-size: 28px; color: #fff !important; line-height: 1.2; }
.s43-legal { border-top: 1px solid #34312e; padding-top: 22px; font-size: 12px; color: #a7a19a; }
.s43-legal p { margin: 0; }
.s43-footer a { color: #d8d3cd; text-decoration: none; }
.s43-footer a:hover { color: #fff; }
.s43-footer .s43-bigline { font-family: var(--wp--preset--font-family--garamond); font-size: clamp(56px, 7.4vw, 104px); line-height: .92; margin: 0; color: #fff; }
.s43-footer .s43-cols p { font-size: 14px; line-height: 2; color: #d8d3cd; }
.s43-footer .s43-cols .s43-eyebrow { color: var(--s43-soft); margin-bottom: 10px; line-height: 1.4; }
.s43-footer hr { border: 0; border-top: 1px solid #34312e; margin: 0; }

/* ---------- Header layout ---------- */
.s43-header-row { min-height: 84px; }
.s43-header .wp-block-navigation__container { gap: 30px; }
.s43-header .wp-block-navigation-item__content { padding: 6px 0; }
.s43-header .wp-block-navigation .wp-block-navigation-submenu__toggle { color: inherit; }

/* ---------- Homepage pieces ---------- */
.s43-hero-text { margin-left: 0 !important; }
/* Keep shorter text lines left-aligned with the 1280px grid (constrained layout would center them). */
.s43-plainhero .s43-lead, .s43-wideh { max-width: 1280px !important; box-sizing: border-box; }
.s43-plainhero .s43-lead { padding-right: max(0px, calc(100% - 660px)); }
.s43-wideh { padding-right: max(0px, calc(100% - 1000px)); }
.s43-wideh { font-size: clamp(34px, 4vw, 54px) !important; line-height: 1.05; }
.s43-teamband { padding-bottom: 0 !important; }
.s43-strip { display: grid; grid-template-columns: repeat(6, 1fr); gap: 14px; margin: 64px 0 0; padding: 0; list-style: none; }
.s43-strip img { width: 100%; aspect-ratio: 3 / 4.2; object-fit: cover; object-position: center top; border-radius: 999px 999px 0 0; display: block; }
.s43-salonbar { margin-top: 0 !important; gap: 0 !important; }
.s43-salon-name { font-family: var(--wp--preset--font-family--garamond); font-size: 34px; line-height: 1.1; margin: 0 !important; }
.s43-salonbar .s43-link { margin-top: 16px; }
.s43-rowhead { gap: 16px !important; margin-bottom: 44px; }
.s43-rowhead h2 { margin: 0; }
.s43-rowhead .s43-eyebrow, .s43-rowhead .s43-link { margin: 0; }
.s43-loccards { gap: 28px !important; }
.s43-loccards h3 { margin: 22px 0 6px; font-size: 34px; }
.s43-loccards p { margin: 0 0 18px; color: var(--s43-muted); font-size: 15px; }
.s43-rowhead-dark { border-color: #34312e !important; }
.s43-insta-band .s43-rowhead h2 { color: #fff; }
.s43-insta-band .s43-rowhead .s43-eyebrow { margin: 0 0 12px; }
/* Three tall tiles in the arch shape, whether they come from Smash Balloon or the placeholder. */
.s43-insta-empty { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 0; padding: 0; list-style: none; }
.s43-insta-empty a { display: flex; align-items: flex-end; justify-content: center; aspect-ratio: 4 / 5; border-radius: 999px 999px 0 0; background: #24211f; color: var(--s43-soft); text-decoration: none; padding-bottom: 28px; font-size: 11px; letter-spacing: .2em; text-transform: uppercase; }
.s43-insta #sb_instagram { padding: 0 !important; }
.s43-insta #sb_instagram #sbi_images { display: grid !important; grid-template-columns: repeat(3, 1fr) !important; gap: 16px !important; padding: 0 !important; }
.s43-insta #sb_instagram .sbi_item { width: 100% !important; padding: 0 !important; }
.s43-insta #sb_instagram .sbi_photo { height: auto !important; aspect-ratio: 4 / 5; border-radius: 999px 999px 0 0; overflow: hidden; }
.s43-insta #sb_instagram .sbi_photo img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 781px) { .s43-insta-empty, .s43-insta #sb_instagram #sbi_images { grid-template-columns: repeat(3, 1fr) !important; gap: 8px !important; } }

/* 43 One Hair band */
.s43-hairband { border-top: 1px solid var(--s43-line); }
.wp-block-button.is-style-outline-dark > .wp-block-button__link { background: transparent; color: var(--s43-ink); box-shadow: inset 0 0 0 1px currentColor; }

/* ---------- Location pages ---------- */
.s43-bignum { font-family: var(--wp--preset--font-family--garamond); font-size: 26px !important; }
.s43-bignum a { text-decoration: none; }
.s43-map { width: 100%; height: 340px; border: 0; display: block; filter: grayscale(1) contrast(1.05); }
.s43-info { gap: 0 !important; }

/* ---------- Services ---------- */
.s43-menu { gap: 56px !important; margin-bottom: 56px !important; }
.s43-menu h3, .s43-menu h2 { font-size: 30px; }
.s43-menu ul { margin-top: 18px; }
.s43-note { color: #6f6a64; font-size: 13px; }
.s43-dark .s43-note { color: #a7a19a; }
.s43-dark .wp-block-button.is-style-ghost > .wp-block-button__link { color: #fff; }

/* ---------- Rewards and careers ---------- */
.s43-statement { font-family: var(--wp--preset--font-family--garamond); font-size: clamp(26px, 2.6vw, 34px); line-height: 1.25; margin-top: 12px !important; margin-left: 0 !important; }
.s43-statement-sm { font-family: var(--wp--preset--font-family--garamond); font-size: clamp(22px, 2.2vw, 30px); line-height: 1.3; margin-top: 12px !important; margin-bottom: 28px !important; }
.s43-big { font-family: var(--wp--preset--font-family--garamond); font-size: 64px; line-height: 1; margin: 0 !important; }
.s43-big em { font-size: 24px; }
.s43-serif-24 { font-family: var(--wp--preset--font-family--garamond); font-size: 24px; }
.s43-divided h3 { font-size: 26px; margin-top: 0; }
.s43-dark .s43-divided p { color: #d8d3cd; }
.s43-dark .s43-eyebrow { color: var(--s43-soft); margin-top: 64px; }
.s43-dark > .s43-eyebrow:first-child, .s43-panel .s43-eyebrow { margin-top: 0; }

/* ---------- FAQ ---------- */
.s43-faqsection { border-top: 1px solid var(--s43-line); }
.s43-faqsection h2 { font-size: clamp(30px, 3vw, 44px); margin: 8px 0 18px; }
.s43-dark + .s43-faqsection, .s43-stone + .s43-faqsection { border-top: 0; }
.s43-faqgroup { padding-top: 40px; border-top: 1px solid var(--s43-line); margin-bottom: 56px !important; }
.s43-faqgroup h2 { font-size: clamp(30px, 3vw, 40px); margin: 0; }
.s43-faqlist > * { margin: 0 !important; }
.s43-faq { border-bottom: 1px solid var(--s43-line); padding: 0; }
.s43-faq summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 24px; padding: 20px 0; font-family: var(--wp--preset--font-family--garamond); font-size: 22px; line-height: 1.25; }
.s43-faq summary::-webkit-details-marker { display: none; }
.s43-faq summary::after { content: "+"; font-family: var(--wp--preset--font-family--figtree); font-size: 22px; line-height: 1; color: var(--s43-muted); flex-shrink: 0; }
.s43-faq[open] summary::after { content: "–"; }
.s43-faq p { margin: 0 0 22px; color: var(--s43-body); font-size: 16px; max-width: 640px; }

/* ---------- Contact ---------- */
.s43-panel { padding: 48px !important; }
.s43-panel .s43-bignum { font-size: 44px !important; margin: 24px 0 !important; color: #fff; }

/* ---------- Profiles and blog ---------- */
.s43-profile { display: grid; grid-template-columns: minmax(0, 380px) 1fr; gap: clamp(32px, 6vw, 80px); align-items: start; }
.s43-profile-photo img { width: 100%; aspect-ratio: 3 / 4.2; object-fit: cover; object-position: center top; border-radius: 999px 999px 0 0; }
.s43-profile-text .s43-body { font-size: 17px; max-width: 620px; }
.s43-profile-text .wp-block-buttons { margin: 28px 0; }
.s43-stylist h3 a { color: inherit; text-decoration: none; }
.s43-posts .wp-block-post-title a { text-decoration: none; }
.s43-posts .wp-block-post-title { font-size: 28px; margin: 6px 0; }
.s43-article .wp-block-post-content { font-size: 18px; }

/* ---------- Phones ---------- */
@media (max-width: 781px) {
	.s43-hero { min-height: 640px; padding-top: 130px !important; padding-bottom: 48px !important; }
	.s43-hero-row { flex-direction: column; align-items: flex-start !important; }
	.s43-plainhero { padding-top: 130px !important; padding-bottom: 56px !important; }
	.s43-strip { grid-template-columns: repeat(3, 1fr); }
	.s43-header .wp-block-navigation { margin-left: auto; }
	.s43-header-book .wp-block-button__link { padding: 12px 16px !important; }
	.s43-header .wp-block-site-logo img { width: 44px; height: 44px; }
	.s43-stylists { gap: 24px 12px; }
	.s43-stylist h3 { font-size: 20px; }
	.s43-profile { grid-template-columns: 1fr; }
	.s43-panel { padding: 32px !important; }
	.is-style-arch.s43-card-img img { aspect-ratio: 4 / 3.6; }
	.s43-rest { padding: 24px; }
	.s43-coming { padding: 32px; }
}

/* Service pages: readable article column + the direct answer at the top. */
.s43-prose > * { max-width: 760px !important; margin-left: auto !important; margin-right: auto !important; }
.s43-prose h2 { font-size: clamp(30px, 3.4vw, 42px); margin-top: 1.6em; margin-bottom: .4em; }
.s43-prose h2:first-child { margin-top: 0; }
.s43-prose p { font-size: 17px; line-height: 1.7; }
.s43-answer { font-size: clamp(19px, 1.7vw, 22px) !important; line-height: 1.55 !important; }
@media (max-width: 781px) { .s43-prose { padding-left: 22px !important; padding-right: 22px !important; } }
.s43-h3 { font-size: 30px; }
.s43-teamgroup { margin: 72px 0 28px; }
.s43-teamgroup h3 { margin: 0 0 6px; font-size: clamp(32px, 3.4vw, 46px); }
.s43-teamgroup p { margin: 0; color: var(--s43-muted); font-size: 15px; }
.s43-teamgroup-first { margin-top: 8px; }
.s43-hero h2.s43-hero-sub { font-family: Figtree, system-ui, -apple-system, sans-serif; font-weight: 400; font-size: clamp(17px, 1.5vw, 20px); line-height: 1.5; letter-spacing: 0; margin-top: 20px !important; }

/* Mobile menu: keep the open menu centred (the list inherits the header's margin-left:auto). */
.s43-header .wp-block-navigation__responsive-container .wp-block-navigation__container { margin-left: 0 !important; margin-right: 0 !important; width: 100%; }
.s43-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { padding-left: 0 !important; padding-right: 0 !important; }
.s43-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container a { padding-left: 0; padding-right: 0; }
.s43-svc-ig .s43-insta { margin-top: 24px; }
.s43-svc-ig .s43-note { margin-top: 16px; }
