/*
Theme Name: BSpoke Therapy Practice
Author: SadaWorks
Description: The BSpoke Therapy Practice website: honeycomb menu, Papyrus throughout, pages built with Elementor.
Version: 1.0.4
Requires PHP: 8.0
Text Domain: bspoke
*/

/* Palette from their Framer file: cream #f6f0e5, panel #f3e5c8, sand #e2d2b3,
   taupe #b3a487, text #454848, gold #d5a121. */
:root{
  --cream:#f6f0e5;--panel:#f3e5c8;--card:#f8f0df;--line:#e2d2b3;--line-2:#d4c4a8;
  --ink:#454848;--head:#222423;--bronze:#6f520f;--gold-1:#e3c06c;--gold-3:#b98a32;
  --font:"Papyrus","Papyrus Regular","Almendra",fantasy,Georgia,serif;
  --box-font:"Alegreya",Georgia,"Times New Roman",serif;
  --r:12px;--pad:clamp(1.1rem,3.6vw,3rem);--ease:cubic-bezier(.22,1,.36,1);
  --shadow-sm:0 2px 10px rgba(92,72,30,.08);
  --arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body.bspoke{margin:0;background:var(--cream);color:var(--ink);font-family:var(--font);font-size:1.18rem;line-height:1.7;-webkit-font-smoothing:antialiased}
.bspoke img{max-width:100%;height:auto}
.bspoke a{color:var(--bronze);text-underline-offset:.18em;text-decoration-thickness:1px}
.bspoke a:hover{color:var(--head)}
.bspoke p,.bspoke ul,.bspoke ol,.bspoke figure,.bspoke blockquote,.bspoke h1,.bspoke h2,.bspoke h3,.bspoke h4,.bspoke h5,.bspoke h6{margin:0}
.bspoke ul,.bspoke ol{padding:0;list-style:none}
:where(.bspoke) :is(button,input,select,textarea){font:inherit;color:inherit}
.bspoke strong,.bspoke b{font-weight:700;color:var(--head)}
.bspoke h1,.bspoke h2,.bspoke h3,.bspoke h4,.bspoke h5,.bspoke .elementor-heading-title{font-family:var(--font);font-weight:400;line-height:1.2;color:var(--head);text-wrap:balance}
.bspoke h1{font-size:clamp(2.4rem,4.6vw,3.3rem)}
.bspoke h2{font-size:clamp(1.75rem,3vw,2.35rem)}
.bspoke h3{font-size:clamp(1.3rem,1.8vw,1.5rem)}
.bspoke h1:focus{outline:none}
.bspoke :where(a,button,input,select,textarea,summary,.elementor-tab-title):focus-visible{outline:3px solid var(--head);outline-offset:3px;border-radius:6px}
.skip{position:absolute;left:-9999px;top:0;z-index:200;background:var(--head);color:var(--cream);padding:.7rem 1.1rem;text-decoration:none}
.skip:focus-visible{left:0}

/* ---------- shell ---------- */
.shell{display:grid;grid-template-columns:var(--side-w,410px) minmax(0,1fr);max-width:1500px;margin-inline:auto}
.side{position:sticky;top:0;align-self:start;height:100vh;height:100dvh;display:flex;flex-direction:column;align-items:center;padding:1.4rem 1rem;gap:1.6rem;overflow-y:auto;scrollbar-width:none}
.side::-webkit-scrollbar{display:none}
.brand{display:block;width:min(100%,360px)}
.brand img{width:100%;display:block}
.menu-close,.top{display:none}
.stage{min-width:0;display:flex;flex-direction:column}
.tagline{display:flex;align-items:center;justify-content:center;min-height:140px;padding:1.4rem var(--pad) 1rem;text-align:center}
.tagline p{font-family:var(--font);color:var(--head);font-size:clamp(1.05rem,5.4vw,2.125rem);letter-spacing:.04em;line-height:1.1;white-space:nowrap}
@media (min-width:1024px){.tagline p{font-size:34px}}
.panel{flex:1;background:var(--panel);padding:clamp(2rem,4.5vw,3.4rem) var(--pad) clamp(3rem,6vw,4.5rem)}
.bsp-page{max-width:840px;margin-inline:auto}

/* ---------- honeycomb (their colours, touching tiles) ---------- */
.comb{--w:clamp(80px,6.7vw,96px);--h:calc(var(--w)*1.1547);display:flex;flex-direction:column;align-items:flex-start;filter:drop-shadow(0 6px 10px rgba(92,72,30,.18))}
.comb-row{display:flex}
.comb-row+.comb-row{margin-top:calc(var(--h)*-.25)}
.comb-row.r2,.comb-row.r4{margin-left:calc(var(--w)/2)}
.comb-row.r3{margin-left:var(--w)}
.hex{--fill:linear-gradient(165deg,#efe0bb 0%,#e3cfa2 55%,#d6bb85 100%);--edge:#b29b72;position:relative;flex:none;width:var(--w);height:var(--h);display:grid;place-items:center;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);background:var(--edge);color:#1c1c1a!important;text-decoration:none!important;transition:filter .25s var(--ease)}
.hex::before{content:"";position:absolute;inset:3px;clip-path:inherit;background:var(--fill)}
.hex::after{content:"";position:absolute;inset:3px 3px 50%;clip-path:polygon(50% 0,100% 50%,100% 100%,0 100%,0 50%);background:linear-gradient(180deg,rgba(255,255,255,.32),rgba(255,255,255,0));pointer-events:none}
.hex span{position:relative;z-index:1;font-family:var(--font);font-size:19px;line-height:1.08;text-align:center;padding:0 6px;hyphens:manual;-webkit-hyphens:manual;word-break:keep-all;overflow-wrap:normal}
.hex-gold{--fill:linear-gradient(165deg,#e2b23c 0%,#d5a121 55%,#c08f17 100%);--edge:#9a7613}
.hex-light{--fill:linear-gradient(165deg,#f3d48f 0%,#ecc575 55%,#dcb05c 100%);--edge:#b8924a}
.hex:hover{filter:brightness(1.06)}
.hex[aria-current="page"]{--fill:radial-gradient(circle at 50% 42%,#dbb26e 0%,#b88d44 58%,#9c7230 100%);--edge:#6f5216}
.hex:focus-visible{outline:none}
.hex:focus-visible span{outline:2px solid var(--head);outline-offset:2px;border-radius:4px}

/* ---------- footer: theirs, slimmer ---------- */
.foot{grid-column:1/-1;background:#a89f91;color:#000;padding:20px 20px 10px;text-align:center;font-size:13px;line-height:1.4;display:flex;flex-direction:column;gap:6px;align-items:center}
.foot strong{color:#000}
.foot .mem{font-size:12px}
.foot .copy{font-size:11px}

/* ==========================================================================
   ELEMENTOR, MADE INVISIBLE
   Every Elementor container keeps the design's class (hero, section, card ...)
   and is laid out like a plain <div>. On the live site the plain wrappers
   around headings, text, images and icons step out of the way, so the design's
   own rules below lay each page out exactly as in the approved design. In the
   Elementor editor those wrappers stay, so every piece can still be clicked.
   ========================================================================== */
.bspoke .bsp-page .e-con{display:block!important;padding:0;margin:0;text-align:inherit;min-width:0}
.bspoke .bsp-page .elementor-widget{margin:0;width:auto;max-width:100%}
body.bspoke:not(.elementor-editor-active) .bsp-page :is(.elementor-widget-heading,.elementor-widget-image,.elementor-widget-html,.elementor-widget-text-editor:not(.prose,.crisis,.note-box,.section)){display:contents}
.bspoke .bsp-page img{display:block;max-width:100%;height:auto}
.bspoke .bsp-page a{text-decoration:underline;text-underline-offset:.18em;text-decoration-thickness:1px}

/* ==========================================================================
   THE DESIGN (approved on sadaworks.com/bspoke-therapy), rule for rule
   ========================================================================== */
.bspoke .bsp-page .ph{text-align:center;margin-bottom:clamp(1.8rem,4vw,2.6rem)}
.bspoke .bsp-page .ph-kicker{font-size:clamp(1.25rem,2vw,1.6rem);color:var(--head)}
.bspoke .bsp-page .ph h1{margin-top:.15rem}
.bspoke .bsp-page .ph-sub{margin-top:.35rem;font-size:clamp(1.12rem,1.6vw,1.3rem)}

.bspoke .bsp-page .lead{font-size:clamp(1.24rem,1.8vw,1.38rem);line-height:1.65}
.bspoke .bsp-page .prose>*+*{margin-top:1.1rem}
.bspoke .bsp-page .section{margin-top:clamp(2.6rem,6vw,3.8rem)}
.bspoke .bsp-page .section>h2,.bspoke .bsp-page .section>.elementor-widget-heading>h2{margin-bottom:1.2rem}
.bspoke .bsp-page .section>h2+p,.bspoke .bsp-page .section>.elementor-widget-heading+.elementor-widget-text-editor>p:first-child{margin:-.4rem 0 1.4rem}
.bspoke .bsp-page .center{text-align:center;margin-inline:auto}

/* buttons: the design's .btn, Elementor's button widget and the form buttons */
.bspoke .bsp-page .btn,.bspoke .bsp-page .elementor-widget-button .elementor-button,.mbar .btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-height:50px;padding:.65rem 1.5rem;border-radius:999px;border:1px solid transparent;font-family:var(--font);font-size:1.12rem;text-decoration:none;cursor:pointer;line-height:1.2;transition:background-color .2s var(--ease),border-color .2s var(--ease),transform .2s var(--ease)}
.bspoke .bsp-page .btn svg{width:1.05em;height:1.05em;flex:none}
.bspoke .bsp-page .elementor-button .elementor-button-content-wrapper{display:contents}
.bspoke .bsp-page :is(.btn-arrow,.b-arrow .elementor-button)::after{content:"";flex:none;width:1.05em;height:1.05em;background:currentColor;-webkit-mask:var(--arrow) center/contain no-repeat;mask:var(--arrow) center/contain no-repeat}
.bspoke .bsp-page :is(.btn-gold,.b-gold .elementor-button),.mbar .btn-gold{background:linear-gradient(180deg,#e6c472,#cf9f3e);color:#1c1c1a;border-color:#a9852f;box-shadow:0 6px 16px -8px rgba(122,90,20,.6)}
.bspoke .bsp-page :is(.btn-gold,.b-gold .elementor-button):is(:hover,:focus){color:#1c1c1a;background:linear-gradient(180deg,#dcb65d,#c4932d);transform:translateY(-1px)}
.bspoke .bsp-page :is(.btn-ghost,.b-ghost .elementor-button),.mbar .btn-ghost{background:transparent;color:var(--head);border-color:#9a8b6c}
.bspoke .bsp-page :is(.btn-ghost,.b-ghost .elementor-button):is(:hover,:focus){color:var(--head);background:rgba(255,255,255,.4);border-color:var(--head)}
.bspoke .bsp-page .btn-row{display:flex!important;flex-direction:row;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem}
.bspoke .bsp-page .btn-row.center{justify-content:center}

/* cards */
.bspoke .bsp-page .card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:clamp(1.15rem,2.4vw,1.6rem);box-shadow:var(--shadow-sm)}
.bspoke .bsp-page .grid{display:grid!important;gap:1rem}
.bspoke .bsp-page .g2{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}
.bspoke .bsp-page .g3{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}
.bspoke .bsp-page .align-start{align-items:start}
.bspoke .bsp-page .grid>.crisis{margin-top:0}
.bspoke .bsp-page .mt-tight{margin-top:1.8rem}
.bspoke .bsp-page .mt-2{margin-top:2rem}

/* small gold hex used for icons */
.svc-hex{width:46px;height:53px;display:grid;place-items:center;flex:none;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);background:linear-gradient(160deg,var(--gold-1),var(--gold-3));color:#1c1c1a}
.svc-hex svg{width:22px;height:22px}

/* principle boxes */
.bspoke .bsp-page .stack{display:grid!important;gap:1rem}
.bspoke .bsp-page .pcard h3{margin-bottom:.4rem}
.bspoke .bsp-page .pcard p+p{margin-top:.6rem}
.bspoke .bsp-page .plain li+li{margin-top:.45rem}

/* expanding sections: the design's <details> (booking forms) and Elementor's toggle */
.bspoke .bsp-page .accs,.bspoke .bsp-page .accs>.elementor-toggle{display:grid;gap:.8rem}
.bspoke .bsp-page :is(.acc,.accs .elementor-toggle-item){background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-sm);margin:0}
.bspoke .bsp-page :is(.acc summary,.accs .elementor-tab-title){list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0;border:0;padding:1rem 1.25rem;font-family:var(--font);font-weight:400;font-size:clamp(1.25rem,1.9vw,1.5rem);line-height:1.7;color:var(--head);min-height:60px}
.bspoke .bsp-page .acc summary::-webkit-details-marker{display:none}
.bspoke .bsp-page .accs .elementor-tab-title a{font:inherit;color:inherit;text-decoration:none}
.bspoke .bsp-page .accs .elementor-toggle-icon{display:none}
.bspoke .bsp-page .acc summary .pm{flex:none;position:relative;width:30px;height:34px;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);background:linear-gradient(160deg,var(--gold-1),var(--gold-3))}
.bspoke .bsp-page .acc summary .pm::before,.bspoke .bsp-page .acc summary .pm::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:2px;background:#1c1c1a;transform:translate(-50%,-50%);transition:transform .3s var(--ease)}
.bspoke .bsp-page .acc summary .pm::after{transform:translate(-50%,-50%) rotate(90deg)}
.bspoke .bsp-page .acc[open] summary .pm::after{transform:translate(-50%,-50%) rotate(0)}
.bspoke .bsp-page .accs .elementor-tab-title::after{content:"";flex:none;width:30px;height:34px;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);background:linear-gradient(#1c1c1a,#1c1c1a) center/12px 2px no-repeat,linear-gradient(#1c1c1a,#1c1c1a) center/2px 12px no-repeat,linear-gradient(160deg,var(--gold-1),var(--gold-3))}
.bspoke .bsp-page .accs .elementor-tab-title.elementor-active::after{background:linear-gradient(#1c1c1a,#1c1c1a) center/12px 2px no-repeat,linear-gradient(160deg,var(--gold-1),var(--gold-3))}
.bspoke .bsp-page :is(.acc[open] summary,.accs .elementor-tab-title.elementor-active){border-bottom:1px solid var(--line)}
.bspoke .bsp-page :is(.acc-body,.accs .elementor-tab-content){padding:1.2rem 1.35rem 1.5rem;border:0}
.bspoke .bsp-page :is(.acc-body,.elementor-tab-content)>*+*{margin-top:1rem}
.bspoke .bsp-page :is(.acc-body,.elementor-tab-content) h4{margin-top:1.9rem;font-size:1.32rem;font-weight:400;color:var(--bronze)}
.bspoke .bsp-page :is(.acc-body,.elementor-tab-content) h4:first-child{margin-top:0}
.bspoke .bsp-page :is(.acc-body,.elementor-tab-content) h4+*{margin-top:.75rem}
.bspoke .bsp-page :is(.acc-body,.elementor-tab-content) h5{margin-top:1.4rem;font-size:1.2rem;font-weight:400;color:var(--head)}
.bspoke .bsp-page .subbox>h4+h5{margin-top:.9rem}
.bspoke .bsp-page :is(.acc-body,.elementor-tab-content) h5+.defs{margin-top:.6rem}
.bspoke .bsp-page .defs>div+div{margin-top:1rem}
.bspoke .bsp-page .defs h6{margin:0;font-family:var(--font);font-weight:400;font-size:1.06rem;color:var(--bronze);line-height:1.35}
.bspoke .bsp-page .defs p{margin-top:.15rem}

/* boxes inside the expanding sections */
.bspoke .bsp-page .subbox{background:#fffaf1;border:1px solid var(--line);border-radius:10px;padding:1rem 1.2rem 1.15rem;box-shadow:var(--shadow-sm)}
.bspoke .bsp-page :is(.acc-body,.elementor-tab-content)>.subbox{margin-top:.85rem}
.bspoke .bsp-page :is(.acc-body,.elementor-tab-content)>.subbox:first-child{margin-top:0}
.bspoke .bsp-page .subbox>h4{margin:0;font-size:1.3rem}
.bspoke .bsp-page .subbox>h5{margin-top:1rem}
.bspoke .bsp-page .subbox h4+*,.bspoke .bsp-page .subbox h5+*{margin-top:.35rem}
.bspoke .bsp-page .subbox p+p{margin-top:.6rem}
.bspoke .bsp-page .subbox .fees{margin-top:.7rem}
/* Liesel (10 Oct): each group of approaches in its own gold-edged box */
.bspoke .bsp-page .pgroup{border:1.5px solid var(--gold-1);border-radius:10px;background:#fffdf8;padding:.75rem 1rem .9rem}
.bspoke .bsp-page .subbox>h4+.pgroup{margin-top:.6rem}
.bspoke .bsp-page .pgroup+.pgroup{margin-top:.7rem}
.bspoke .bsp-page :is(.acc-body,.elementor-tab-content) .pgroup h5{margin-top:0}
/* a link target placed first in a section counts as nothing */
.bspoke .bsp-page .elementor-tab-content>.anchor:first-child+*{margin-top:0}

/* inside boxes the descriptions use the reading font; headings stay Papyrus */
.bspoke .bsp-page :is(.card p,.card li,.card blockquote,.card figcaption,.card .with,.card .role,.card .more,.card label,.card input,.card select,.card textarea,.subbox p,.subbox li,.fee p,.cta p,.crisis,.note-box,.tym .prose p){font-family:var(--box-font)}
.bspoke .bsp-page :is(.crisis b,.note-box b){font-family:var(--font)}
.bspoke .bsp-page :is(.subbox p,.subbox li,.pcard p,.svc p,.person p,.fee p){font-size:1.1rem;line-height:1.6}

/* fee cards */
.bspoke .bsp-page .fees{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}
.bspoke .bsp-page .fee{background:#fffdf8;border:1px solid var(--gold-3);border-radius:10px;padding:1rem 1.1rem}
.bspoke .bsp-page .fee-top{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem}
.bspoke .bsp-page .fee-name{font-size:1.2rem;color:var(--head);line-height:1.25}
.bspoke .bsp-page .fee-price{font-weight:700;font-size:1.3rem;color:var(--head);white-space:nowrap}
.bspoke .bsp-page .fee-meta{font-size:1rem;color:var(--bronze);margin-top:.15rem}
.bspoke .bsp-page .fee p{font-size:1.02rem;margin-top:.45rem;line-height:1.55}
.bspoke .bsp-page .fee-feature{border-color:var(--gold-3);background:linear-gradient(180deg,#fff6df,#fffdf8)}

/* service page intro with portrait */
.bspoke .bsp-page .intro{display:grid!important;grid-template-columns:minmax(0,.9fr) minmax(0,1.5fr);gap:clamp(1.4rem,3.5vw,2.4rem);align-items:start}
.bspoke .bsp-page .portrait{border-radius:var(--r);overflow:hidden;border:1px solid var(--line-2);background:#e9dcc0;box-shadow:0 16px 36px -18px rgba(92,72,30,.4)}
.bspoke .bsp-page .portrait img{width:100%;aspect-ratio:4/5;object-fit:cover}
.bspoke .bsp-page .portrait.liesel img{object-position:50% 30%}
.bspoke .bsp-page .portrait.kenny img{aspect-ratio:1/1;object-position:43% 50%}
.bspoke .bsp-page .intro h2{margin-bottom:.8rem}

/* Train Your Mind 5 star */
.bspoke .bsp-page .tym{border:2px solid var(--gold-3);border-radius:16px;background:linear-gradient(180deg,#fff4d8,#fbefd4);padding:clamp(1.4rem,3.4vw,2.3rem);box-shadow:0 18px 40px -22px rgba(122,90,20,.55)}
.bspoke .bsp-page .tym h2 .star,.bspoke .bsp-page .tym .star{color:#b8862a}
.bspoke .bsp-page .tym .sub{font-size:1.28rem;color:var(--head);margin-top:.35rem}
.bspoke .bsp-page .tym .prose{margin-top:1rem}
.bspoke .bsp-page .tym .meta{display:inline-block;margin-top:1.1rem;padding:.35rem 1rem;border-radius:999px;background:#fffdf8;border:1px solid var(--gold-3);font-size:1.12rem;color:var(--head)}
.bspoke .bsp-page .tym .motto{margin-top:1rem;font-size:1.3rem;color:var(--head)}
.bspoke .bsp-page .tym-mini{border-color:var(--gold-3);background:linear-gradient(180deg,#fff6df,#fffdf8)}
.bspoke .bsp-page .tym-mini h5{margin-top:0}

/* call to action: the same box on every page */
.bspoke .bsp-page .cta{margin-top:clamp(2.8rem,6vw,4rem);text-align:center;background:linear-gradient(180deg,#f8eed8,#f1e2c2);border:1px solid var(--line-2);border-radius:18px;padding:clamp(1.8rem,4vw,2.6rem) var(--pad)}
.bspoke .bsp-page .cta img{width:74px;margin:0 auto .5rem}
.bspoke .bsp-page .cta p{margin:.6rem auto 0;max-width:48ch}

/* crisis note */
.bspoke .bsp-page .crisis{margin-top:1.4rem;border-left:4px solid var(--gold-3);background:#fffaf0;border-radius:0 var(--r) var(--r) 0;padding:1rem 1.25rem;line-height:1.6}
.bspoke .bsp-page .crisis b{display:block;font-weight:400;font-size:1.3rem;color:var(--head);margin-bottom:.2rem}

/* home */
.bspoke .bsp-page .hero h1{font-size:clamp(2.4rem,4.4vw,46px);color:#454848}
.bspoke .bsp-page .hero .prose{margin-top:1.1rem}
.bspoke .bsp-page .hero .lead{font-size:clamp(1.18rem,1.7vw,22px);line-height:1.45}
.bspoke .bsp-page .glad{margin-top:1.2rem;text-align:right;font-size:clamp(1.7rem,2.6vw,34px);color:#454848;line-height:1.2}
.bspoke .bsp-page .svc{display:flex!important;flex-direction:column;gap:.5rem;text-decoration:none;color:inherit;transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.bspoke .bsp-page .svc:hover{color:inherit;transform:translateY(-3px);box-shadow:0 18px 40px -18px rgba(92,72,30,.35)}
.bspoke .bsp-page .svc .with{font-size:1rem;color:var(--bronze)}
.bspoke .bsp-page .svc p{font-size:1.05rem;line-height:1.6}
.bspoke .bsp-page .svc .more{margin-top:auto;padding-top:.4rem;color:var(--bronze);display:inline-flex;align-items:center;gap:.35rem}
.bspoke .bsp-page .svc .more svg{width:.95em;height:.95em;transition:transform .3s var(--ease)}
.bspoke .bsp-page .svc:hover .more svg{transform:translateX(3px)}

.bspoke .bsp-page .person{display:grid!important;grid-template-columns:110px minmax(0,1fr);gap:1.1rem;align-items:start}
.bspoke .bsp-page .person img{width:110px;height:132px;object-fit:cover;border-radius:10px;border:1px solid var(--line-2)}
.bspoke .bsp-page .person.k img{object-position:42% 30%}
.bspoke .bsp-page .person.l img{object-position:50% 28%}
.bspoke .bsp-page .person h3{margin-bottom:.1rem}
.bspoke .bsp-page .person .role{color:var(--bronze);font-size:1rem;line-height:1.4}
.bspoke .bsp-page .person p{font-size:1.04rem;margin-top:.45rem;line-height:1.6}
.bspoke .bsp-page .person .links a{display:inline-block;margin-right:.9rem}

/* philosophy */
.bspoke .bsp-page .logo-figure{max-width:440px;margin:1.4rem auto 1.6rem}
.bspoke .bsp-page .trio .card{text-align:center}
.bspoke .bsp-page .trio .card h3{margin-bottom:.4rem}

/* testimonials */
.bspoke .bsp-page .tcard{position:relative;padding-top:2.3rem}
.bspoke .bsp-page .tcard::before{content:"\201C";position:absolute;top:-.1rem;left:1.1rem;font-family:var(--font);font-size:4rem;line-height:1;color:var(--gold-3)}
.bspoke .bsp-page .tcard blockquote p{font-size:1.16rem;line-height:1.65}
.bspoke .bsp-page .tcard figcaption{margin-top:.9rem;font-size:1rem;color:var(--bronze);line-height:1.5}

/* booking */
.bspoke .bsp-page .book-card{display:flex!important;flex-direction:column;gap:.75rem}
.bspoke .bsp-page .book-card h2{font-size:1.55rem}
.bspoke .bsp-page .steps{counter-reset:s;display:grid;gap:.6rem;margin-top:.2rem}
.bspoke .bsp-page .steps li{counter-increment:s;display:grid;grid-template-columns:auto 1fr;gap:.6rem;font-size:1.04rem;line-height:1.5}
.bspoke .bsp-page .steps li::before{content:counter(s);display:grid;place-items:center;width:1.55rem;height:1.78rem;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);background:linear-gradient(160deg,var(--gold-1),var(--gold-3));font-size:.9rem;font-weight:700;color:#1c1c1a}
.bspoke .bsp-page .book-card>.elementor-widget-button{margin-top:auto;width:100%}
.bspoke .bsp-page .book-card .elementor-button{width:100%}
.bspoke .bsp-page .note-box{border-left:4px solid var(--gold-3);background:#fffaf0;border-radius:0 var(--r) var(--r) 0;padding:1rem 1.25rem}
.bspoke .bsp-page .note-box b{display:block;font-weight:400;font-size:1.3rem;color:var(--head)}

/* contact form */
.bspoke .bsp-page .form{display:grid;gap:1rem;max-width:620px;margin-inline:auto}
.bspoke .bsp-page .field{display:grid;gap:.3rem}
.bspoke .bsp-page .field label{font-size:1.08rem;color:var(--head)}
.bspoke .bsp-page :is(.field input,.field select,.field textarea){width:100%;font-size:1.08rem;color:var(--head);background:#fffdf8;border:1px solid #8f8166;border-radius:10px;padding:.65rem .85rem;min-height:50px}
.bspoke .bsp-page .field textarea{min-height:150px;height:150px;resize:vertical}
.bspoke .bsp-page .field ::placeholder{color:#8a8172}
.bspoke .bsp-page :is(.field input,.field select,.field textarea):focus-visible{outline:3px solid var(--head);outline-offset:1px}
.bspoke .bsp-page .check{display:grid;grid-template-columns:auto 1fr;gap:.6rem;align-items:start;font-size:1.04rem;line-height:1.5}
.bspoke .bsp-page .check input{width:22px;height:22px;margin-top:.2rem;accent-color:#7a5a14}
.bspoke .bsp-page .two{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr))}
.bspoke .bsp-page .form-note{font-size:1.02rem;color:var(--bronze)}

/* page buttons: Home on every page, Back on booking pages */
.bspoke .bsp-page .pnav{display:flex!important;flex-direction:row;flex-wrap:wrap;gap:.6rem;margin-bottom:1.6rem}
.bspoke .bsp-page :is(.btn-sm,.b-sm .elementor-button){min-height:42px;padding:.45rem 1.1rem;font-size:1.02rem}

/* booking forms: their forms, word for word, restyled */
.bspoke .bsp-page .bk .sub-sub-title{margin-top:1.9rem;font-size:1.3rem;font-weight:400;color:var(--bronze)}
.bspoke .bsp-page .bk>.sub-sub-title:first-child{margin-top:0}
.bspoke .bsp-page :is(.bk p,.bk ul){margin-top:.8rem}
.bspoke .bsp-page .bk ul li+li{margin-top:.45rem}
.bspoke .bsp-page .bk .form-row{display:grid;gap:0 1rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}
.bspoke .bsp-page .bk .form-group{display:grid;gap:.3rem;margin-top:1rem}
.bspoke .bsp-page .bk label{font-size:1.06rem;color:var(--head);line-height:1.4}
.bspoke .bsp-page :is(.bk input:not([type=checkbox]):not([type=radio]),.bk select,.bk textarea){width:100%;font-size:1.06rem;color:var(--head);background:#fffdf8;border:1px solid #8f8166;border-radius:10px;padding:.6rem .8rem;min-height:48px}
.bspoke .bsp-page .bk textarea{min-height:110px;height:110px;resize:vertical}
.bspoke .bsp-page :is(.bk input,.bk select,.bk textarea):focus-visible{outline:3px solid var(--head);outline-offset:1px}
.bspoke .bsp-page .bk .checkbox-group{display:grid;gap:.45rem;margin-top:.6rem}
.bspoke .bsp-page .bk .opts-row{display:flex;flex-wrap:wrap;gap:.4rem 1.4rem;margin-top:.4rem}
.bspoke .bsp-page :is(.bk .checkbox-option,.bk .checkbox-group>label,.bk :is(.checkbox-group,.opts-row) .wpcf7-list-item>label){display:flex;gap:.6rem;align-items:flex-start;font-size:1.04rem;cursor:pointer}
.bspoke .bsp-page :is(.bk input[type=checkbox],.bk input[type=radio]){width:20px;height:20px;flex:none;margin:.25rem 0 0;accent-color:#7a5a14}
.bspoke .bsp-page .bk .sub-label{display:block;font-size:.98rem;color:var(--bronze)}
.bspoke .bsp-page .bk .scale-group{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.4rem}
.bspoke .bsp-page :is(.bk .scale-item,.bk .scale-group .wpcf7-list-item>label){display:grid;justify-items:center;gap:.15rem;min-width:2.4rem}
.bspoke .bsp-page :is(.bk .disclaimer-box,.bk .notice-box){margin-top:1rem;border-left:4px solid var(--gold-3);background:#fffaf0;border-radius:0 var(--r) var(--r) 0;padding:.9rem 1.15rem;line-height:1.6}
.bspoke .bsp-page .bk .doc-table{width:100%;border-collapse:collapse;margin-top:1rem;font-size:1rem}
.bspoke .bsp-page :is(.bk .doc-table th,.bk .doc-table td){padding:.6rem .7rem;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}
.bspoke .bsp-page .bk .doc-table th{background:#e2d2b3;font-weight:700;color:var(--head)}
/* "Next" at the end of a booking section: closes it and opens the next one */
.bspoke .bsp-page .acc-body>.bk-next-row{margin-top:1.6rem;display:flex;justify-content:flex-end}
.bspoke .bsp-page .bk-message h2{font-size:1.5rem;margin-bottom:.6rem}
.bspoke .bsp-page .bk-message .btn{margin-top:1rem}
.bspoke .bsp-page .bk-note{font-size:1rem;color:var(--bronze);margin-top:.8rem}
.bspoke .bsp-page .thanks{text-align:center}
.bspoke .bsp-page .thanks img{width:70px;margin:0 auto .5rem}
.bspoke .bsp-page :is(.thanks h2,.thanks h4){margin-bottom:.5rem}
.bspoke .bsp-page .card.thanks{margin-top:1.5rem}

/* ---------- Contact Form 7: its extra wrappers step out of the way ---------- */
.bspoke .bsp-page .wpcf7-form-control-wrap{display:contents}
.bspoke .bsp-page :is(.checkbox-group,.opts-row,.scale-group,.check) :is(.cf7-group,.wpcf7-form-control-wrap,.wpcf7-checkbox,.wpcf7-radio,.wpcf7-acceptance,.wpcf7-list-item){display:contents}
.bspoke .bsp-page .check label{display:contents}
.bspoke .bsp-page .wpcf7-spinner{display:block;width:0;height:0;margin:0;visibility:hidden}
.bspoke .bsp-page .bk .wpcf7-spinner{margin-top:.8rem} /* stands in for the design's empty status line */
.bspoke .bsp-page .wpcf7 form.submitting .wpcf7-spinner{display:inline-block;width:24px;height:24px;margin:0 auto;visibility:visible}
.bspoke .bsp-page .wpcf7 .wpcf7-not-valid-tip{font-family:var(--box-font);font-size:.98rem;color:#9b2c1d;margin-top:.25rem}
.bspoke .bsp-page .wpcf7 form .wpcf7-response-output{margin:1rem 0 0;border-radius:10px;padding:.8rem 1rem;font-family:var(--box-font)}
.bspoke .bsp-page .wpcf7 .cf7-thanks{display:none}
.bspoke .bsp-page .wpcf7 form.sent>*:not(.cf7-thanks){display:none!important}
.bspoke .bsp-page .wpcf7 form.sent .cf7-thanks{display:block}
.bspoke .bsp-page .wpcf7 form.bk .cf7-thanks:not(.card){margin-top:1rem;text-align:left;border-left:4px solid var(--gold-3);background:#fffaf0;border-radius:0 var(--r) var(--r) 0;padding:1rem 1.25rem}

/* forms saved before 1.0.2 used CF7's own submit input */
.bspoke .bsp-page .wpcf7 input.b-submit{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:.65rem 1.5rem;border-radius:999px;border:1px solid #a9852f;font-family:var(--font);font-size:1.12rem;line-height:1.2;cursor:pointer;background:linear-gradient(180deg,#e6c472,#cf9f3e);color:#1c1c1a;box-shadow:0 6px 16px -8px rgba(122,90,20,.6)}

/* ---------- responsive ---------- */
@media (max-width:1180px){.shell{--side-w:360px}.comb{--w:84px}}
@media (max-width:1023px){
  .shell{grid-template-columns:minmax(0,1fr)}
  .top{display:flex;align-items:center;justify-content:space-between;gap:1rem;position:sticky;top:0;z-index:60;padding:.55rem var(--pad);background:rgba(246,240,229,.96);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
  .admin-bar .top{top:46px}
  .top .brand{width:auto}
  .top .brand img{height:56px;width:auto}
  .menu-btn,.menu-close{display:inline-flex;align-items:center;gap:.55rem;min-height:48px;padding:.4rem 1rem .4rem .55rem;border-radius:999px;border:1px solid #9a8b6c;background:#fbf6ec;cursor:pointer;font-family:var(--font);font-size:1.12rem;color:var(--head)}
  .menu-btn .mh{width:26px;height:30px;display:grid;place-items:center;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);background:linear-gradient(160deg,var(--gold-1),var(--gold-3))}
  .menu-btn .mh svg{width:14px;height:14px}
  .side{position:fixed;inset:0;z-index:90;height:auto;align-self:stretch;background:radial-gradient(120% 80% at 50% 0%,#fbf5e8 0%,var(--cream) 55%,#efe3c9 100%);padding:1rem var(--pad) 1.6rem;justify-content:flex-start;gap:1.2rem;visibility:hidden;opacity:0;transform:translateY(-12px);transition:opacity .3s var(--ease),transform .3s var(--ease),visibility 0s linear .3s;overflow-y:auto}
  .menu-open .side{visibility:visible;opacity:1;transform:none;transition:opacity .3s var(--ease),transform .3s var(--ease)}
  .menu-open{overflow:hidden}
  .side .brand{width:min(76vw,290px);margin-top:.4rem}
  .menu-close{align-self:flex-end;gap:.4rem;min-height:46px;padding:.3rem .95rem;font-size:1.08rem}
  .menu-close svg{width:16px;height:16px}
  .comb{--w:min(23vw,98px);margin-top:.3rem}
  .tagline{min-height:auto;padding:1.4rem var(--pad) 1rem}
}
@media (max-width:720px){
  body.bspoke{font-size:1.12rem}
  .bspoke .bsp-page .intro{grid-template-columns:minmax(0,1fr)}
  .bspoke .bsp-page .portrait{max-width:360px;margin-inline:auto;width:100%}
  .bspoke .bsp-page .portrait img{aspect-ratio:1/1}
  .bspoke .bsp-page .person{grid-template-columns:92px minmax(0,1fr)}
  .bspoke .bsp-page .person img{width:92px;height:112px}
  .hex span{font-size:16px}
  .bspoke .bsp-page .glad{text-align:center}
  .mbar{position:fixed;left:0;right:0;bottom:0;z-index:70;display:grid;grid-template-columns:1fr 1fr;gap:.55rem;padding:.6rem .8rem calc(.6rem + env(safe-area-inset-bottom));background:rgba(246,240,229,.97);border-top:1px solid var(--line)}
  .mbar .btn{min-height:48px;padding:.5rem .8rem;font-size:1.04rem}
  .foot{padding-bottom:calc(10px + 72px + env(safe-area-inset-bottom))}
  .menu-open .mbar{display:none}
  .bspoke .bsp-page :is(.bk .doc-table,.bk .doc-table tbody,.bk .doc-table tr,.bk .doc-table td){display:block;width:100%}
  .bspoke .bsp-page .bk .doc-table thead{display:none}
  .bspoke .bsp-page .bk .doc-table tr{border-bottom:1px solid var(--line-2);padding:.4rem 0}
  .bspoke .bsp-page .bk .doc-table td{border:0;padding:.2rem .4rem}
}
@media (min-width:721px){.mbar{display:none}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
