
/* tp-react-x */

.topee-component{width:100%}
.tp-peeps{position:relative;width:100%;height:clamp(240px,34vw,380px);
 background:linear-gradient(180deg,#FAFAF8 0%,#F3F1EC 100%);
 border-block:1px solid #EFEDE8;overflow:hidden}
.tp-peeps-canvas{display:block;width:100%;height:100%}
.tp-peeps-ui{position:absolute;inset:auto 0 0 0;display:flex;flex-wrap:wrap;
 align-items:center;justify-content:center;gap:14px;
 padding:0 clamp(18px,5vw,40px) clamp(16px,2.4vw,26px);pointer-events:none}
.tp-peeps-q{margin:0;pointer-events:none;
 font-family:'Cormorant Garamond',Georgia,serif;font-weight:400;
 font-size:clamp(19px,2.4vw,28px);line-height:1.2;color:#14161A;text-wrap:balance}
/* The theme fills every bare <button> with its own pink, so this is restated
   at !important — the same fault already fixed on the FAQ and filter chips. */
.tp-peeps-btn{pointer-events:auto;appearance:none!important;cursor:pointer;
 padding:0 20px!important;height:40px!important;min-height:40px!important;
 border-radius:999px!important;
 border:1px solid #14161A!important;background:#14161A!important;
 background-image:none!important;color:#FFFFFF!important;box-shadow:none!important;
 font-family:'Plus Jakarta Sans',system-ui,sans-serif!important;
 font-size:10px!important;letter-spacing:.16em!important;text-transform:uppercase!important;
 transition:background .18s ease,color .18s ease}
.tp-peeps-btn:hover{background:#FFFFFF!important;color:#14161A!important}
.tp-peeps-btn:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(168,135,28,.5)}
@media (max-width:600px){ .tp-peeps{height:clamp(210px,52vw,280px)} }

/* tp-rvband-x */

/* ---- the rating, fixed under the hero ---- */
.tp-rvscore{border-block:1px solid #E8E6E0;background:#FFFFFF;
 width:100%!important;max-width:100%!important;box-sizing:border-box!important;
 padding:16px 20px!important;position:relative!important;z-index:20!important;display:block!important}
.tp-rvscore-link{text-decoration:none!important;display:block!important}
.tp-rvscore p{margin:0 auto!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:12px!important;
 font-size:13.5px!important;font-weight:600!important;letter-spacing:.06em!important;text-transform:uppercase!important;color:#14161A!important}
.tp-rvscore b{font-family:'Plus Jakarta Sans',-apple-system,BlinkMacSystemFont,sans-serif!important;font-weight:800!important;
 font-size:22px!important;line-height:1!important;letter-spacing:-0.02em!important;color:#14161A!important;font-variant-numeric:lining-nums tabular-nums!important}
.tp-rvstars{color:#8E7037!important;letter-spacing:2px!important;font-size:16px!important;line-height:1!important}
.tp-rvscore p span:last-child{color:#4A4E54!important;font-size:13px!important;font-weight:600!important;letter-spacing:.04em!important}
@media (max-width:600px){
 .tp-rvscore{padding:14px 16px!important}
 .tp-rvscore p{font-size:12px!important;gap:8px!important}
 .tp-rvscore b{font-size:19px!important}
 .tp-rvstars{font-size:14px!important;letter-spacing:1.5px!important}
 .tp-rvscore p span:last-child{font-size:11.5px!important}
}

/* ---- review tooltip eliminated at source ---- */
.tp-rvtip{display:none!important}

/* tp-rvpage-x */

.tp-rvpage{max-width:1140px;margin-inline:auto;
 padding:calc(var(--tp-header-h,76px) + clamp(28px,4vw,48px)) clamp(18px,5vw,40px) clamp(56px,7vw,88px)}

.tp-rvpage-head{max-width:60ch;margin:0 0 clamp(32px,4vw,52px)}
.tp-rvpage-head .tp-eyebrow{margin:0 0 12px}
.tp-rvpage-h{margin:0 0 16px;font-family:'Poppins', sans-serif,Georgia,serif;font-weight:400;
 font-size:clamp(30px,4.4vw,50px);line-height:1.1;color:#14161A;
 text-transform:uppercase;letter-spacing:.01em;text-wrap:balance}
.tp-rvpage-h em{font-style:italic;text-transform:none;color:#A8871C;letter-spacing:0}
.tp-rvpage-dek{margin:0 0 22px;font-size:15px;line-height:1.7;color:#4A4F55}

.tp-rvpage-score{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;
 padding:14px 18px;border:1px solid #E6E4DF;border-radius:14px;background:#FAFAF8;
 width:max-content;max-width:100%}
.tp-rvpage-num{font-family:'Poppins', sans-serif,system-ui,sans-serif;font-weight:700;
 font-size:26px;color:#14161A;font-variant-numeric:lining-nums tabular-nums}
.tp-rvpage-stars{color:#A8871C;font-size:15px;letter-spacing:.08em}
.tp-rvpage-count{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#5A5F66}
.tp-rvpage-verify{margin:12px 0 0;font-size:12.5px;color:#5A5F66}
.tp-rvpage-verify a{color:#856812;text-decoration:underline;text-underline-offset:3px}

.tp-rvfilters{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px}

/* ---- Keyword chip row (Google Maps style) ---- */
.tp-rvkw{
 display:flex;align-items:center;gap:8px;
 overflow-x:auto;overflow-y:hidden;
 -webkit-overflow-scrolling:touch;
 scrollbar-width:none;-ms-overflow-style:none;
 padding:2px 0 10px;margin:0 0 10px;
}
.tp-rvkw::-webkit-scrollbar{display:none}
.tp-rvkw-chip{
 display:inline-flex;align-items:center;gap:5px;
 flex-shrink:0;
 appearance:none!important;
 border:1px solid #DEDAD1!important;
 background:#FFFFFF!important;
 color:#3F444A!important;
 padding:0 13px!important;
 height:34px!important;
 min-height:0!important;
 border-radius:999px!important;
 font-family:'Poppins',sans-serif!important;
 font-size:12px!important;
 font-weight:500!important;
 line-height:1!important;
 letter-spacing:.01em!important;
 cursor:pointer!important;
 white-space:nowrap!important;
 box-shadow:none!important;
 transition:background .15s ease,border-color .15s ease,color .15s ease!important;
}
.tp-rvkw-chip svg{opacity:.6;flex-shrink:0;transition:opacity .15s ease}
.tp-rvkw-chip:hover{
 border-color:#14161A!important;
 color:#14161A!important;
 background:#F5F3EF!important;
 box-shadow:none!important;
}
.tp-rvkw-chip:hover svg{opacity:.9}
.tp-rvkw-chip.is-on{
 background:#14161A!important;
 border-color:#14161A!important;
 color:#FFFFFF!important;
 background-image:none!important;
 box-shadow:none!important;
}
.tp-rvkw-chip.is-on svg{opacity:1;stroke:#FFFFFF}
.tp-rvkw-chip:focus-visible{outline:3px solid rgba(168,135,28,.45)!important;outline-offset:2px}
.tp-rvfilter,.tp-rvload{
 appearance:none;border:1px solid #DEDAD1!important;background:#FFFFFF!important;color:#14161A!important;
 min-height:44px!important;padding:0 16px!important;border-radius:999px!important;
 font-family:'Poppins',sans-serif!important;font-size:12.5px!important;font-weight:500!important;
 line-height:1!important;letter-spacing:.01em!important;text-transform:none!important;cursor:pointer!important;
 box-shadow:none!important}
.tp-rvfilter.is-on{background:#14161A!important;border-color:#14161A!important;color:#FFFFFF!important}
.tp-rvfilter:focus-visible{outline:3px solid rgba(168,135,28,.45)!important;outline-offset:2px}
.tp-rvstatus{min-height:20px;margin:0 0 18px;font-size:12.5px;color:#6E7278}
.tp-rvload{
 appearance:none!important;display:flex!important;align-items:center!important;justify-content:center!important;
 margin:32px auto 0!important;padding:0 32px!important;
 min-height:52px!important;border-radius:999px!important;
 background:#14161A!important;border:none!important;color:#FFFFFF!important;
 font-family:'Poppins',sans-serif!important;font-size:13px!important;font-weight:600!important;
 letter-spacing:.08em!important;text-transform:uppercase!important;cursor:pointer!important;
 box-shadow:0 4px 18px rgba(20,22,26,.18)!important;
 transition:background .2s ease,transform .15s ease!important}
.tp-rvload:hover{background:#A8871C!important;color:#FFFFFF!important;transform:translateY(-1px)!important}
.tp-rvload:focus-visible{outline:3px solid rgba(168,135,28,.45)!important;outline-offset:2px}
.tp-rvload[hidden]{display:none!important}

/* A masonry-ish column layout: reviews are wildly different lengths, and a
   fixed grid would leave a short one padded with dead space. */
.tp-rvgrid{columns:3 300px;column-gap:clamp(16px,2.2vw,24px)}
.tp-rvcard{break-inside:avoid;margin:0 0 clamp(16px,2.2vw,24px);
 padding:clamp(20px,2.4vw,26px);border:1px solid #E6E4DF;border-radius:16px;background:#FFFFFF}
/* ---- laid out the way Google lays a review out: avatar and name on top,
   stars and date beneath them, then the text, then any photos. Reading it in
   that order is what makes it recognisable as a real review rather than a
   marketing pull-quote. ---- */
.tp-rvcard-head{display:flex;align-items:center;gap:12px;margin:0 0 14px}
.tp-rvcard-av{width:40px;height:40px;flex:0 0 40px;border-radius:50%;
 display:flex;align-items:center;justify-content:center;
 background:#F3F1EC;color:#8A8477;
 font-family:'Poppins', sans-serif,Georgia,serif;font-size:18px;line-height:1}
.tp-rvcard-who{display:flex;flex-direction:column;gap:3px;min-width:0}
.tp-rvcard-who b{font-family:'Poppins', sans-serif,system-ui,sans-serif;
 font-weight:600;font-size:14px;color:#14161A;line-height:1.2}
.tp-rvcard-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.tp-rvcard-stars{color:#F0A500;font-size:12px;letter-spacing:.1em;line-height:1}
.tp-rvcard-when{font-size:12px;color:#8A8477}

.tp-rvcard blockquote{margin:0;font-family:'Poppins', sans-serif,system-ui,sans-serif;
 font-size:14.5px;line-height:1.62;color:#3F444A;position:relative}
.tp-rvcard blockquote.tp-rv-truncate .tp-rv-text{
 display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;
}
.tp-rvcard blockquote.is-expanded .tp-rv-text{
 display:block;-webkit-line-clamp:unset;overflow:visible;
}
.tp-rv-more-btn{
 appearance:none;border:none;background:none;padding:10px 0;margin:0;
 min-height:44px;color:#8E7037!important;font-family:'Poppins', sans-serif,system-ui,sans-serif!important;
 font-size:12.5px!important;font-weight:600!important;cursor:pointer!important;
 display:inline-flex;align-items:center;text-decoration:underline;text-underline-offset:2px;
}
.tp-rv-more-btn:hover{color:#14161A!important;background:none!important;border:none!important;box-shadow:none!important}
.tp-rv-more-btn:active,.tp-rv-more-btn:focus{background:none!important;border:none!important;box-shadow:none!important;outline:none}

/* Photos sit under the text as they do on Google — one full width, several as
   a thumbnail row. */
/* Shown whole, not cropped. A 4/3 box was cutting the tops off heads, which
   on a page about hair is the one thing the photograph exists to show. The
   thumbnails keep a square frame so the grid stays even, but they contain the
   image rather than filling the box, and clicking opens it full size. */
.tp-rvcard-shots{margin:16px 0 0;display:grid;gap:8px}
.tp-rvcard-shots.is-many{grid-template-columns:repeat(2,minmax(0,1fr))}
.tp-rvcard-shots img{display:block;width:100%;border-radius:10px;background:#F3F1EC;
 cursor:zoom-in;transition:opacity .18s ease}
.tp-rvcard-shots img:hover{opacity:.9}
.tp-rvcard-shots.is-many img{aspect-ratio:1/1;object-fit:contain}
.tp-rvcard-shots:not(.is-many) img{height:auto}

/* ---- the lightbox ---- */
.tp-lb{position:fixed;inset:0;z-index:9999;display:none;
 align-items:center;justify-content:center;padding:clamp(14px,3.5vw,40px);
 background:rgba(14,16,18,.92);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.tp-lb.is-on{display:flex}
.tp-lb img{max-width:100%;max-height:100%;display:block;border-radius:12px;
 box-shadow:0 30px 80px -30px rgba(0,0,0,.8)}
.tp-lb-close{position:absolute;top:clamp(12px,2vw,22px);right:clamp(12px,2vw,22px);
 width:44px!important;height:44px!important;min-height:0!important;
 border-radius:50%!important;border:1px solid rgba(255,255,255,.25)!important;
 background:rgba(255,255,255,.08)!important;background-image:none!important;
 box-shadow:none!important;padding:0!important;cursor:pointer;
 display:flex!important;align-items:center!important;justify-content:center!important;
 color:#FFFFFF!important;font-size:22px!important;line-height:1!important;
 font-family:system-ui,-apple-system,sans-serif!important;text-transform:none!important}
.tp-lb-close:hover{background:rgba(255,255,255,.18)!important}
.tp-lb-nav{position:absolute;top:50%;transform:translateY(-50%);
 width:46px!important;height:46px!important;min-height:0!important;
 border-radius:50%!important;border:1px solid rgba(255,255,255,.25)!important;
 background:rgba(255,255,255,.08)!important;background-image:none!important;
 box-shadow:none!important;padding:0!important;cursor:pointer;
 display:flex!important;align-items:center!important;justify-content:center!important;
 color:#FFFFFF!important;font-size:20px!important;line-height:1!important}
.tp-lb-prev{left:clamp(8px,2vw,20px)}
.tp-lb-next{right:clamp(8px,2vw,20px)}
.tp-lb-nav:hover{background:rgba(255,255,255,.18)!important}
.tp-lb-count{position:absolute;bottom:clamp(12px,2vw,22px);left:50%;transform:translateX(-50%);
 font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.7)}

.tp-rvcard figcaption{margin-top:16px;padding-top:12px;border-top:1px solid #EFEDE8;
 font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#8A8477}

/* ---- before and after ---- */
.tp-basec{margin-top:clamp(48px,6vw,80px);padding-top:clamp(40px,5vw,64px);border-top:1px solid #EFEDE8}
.tp-basec-head{max-width:56ch;margin:0 0 clamp(24px,3vw,36px)}
.tp-rvpage-h2{margin:0 0 14px;font-family:'Poppins', sans-serif,Georgia,serif;font-weight:400;
 font-size:clamp(26px,3.4vw,38px);line-height:1.14;color:#14161A;
 text-transform:uppercase;letter-spacing:.01em}
.tp-rvpage-h2 em{font-style:italic;text-transform:none;color:#A8871C;letter-spacing:0}
.tp-bagrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,2.2vw,26px)}
.tp-ba{margin:0;border:1px solid #E6E4DF;border-radius:16px;overflow:hidden;background:#FFFFFF}
.tp-ba img{display:block;width:100%;height:auto}
/* The file already holds both frames side by side, so the caption is split to
   sit under each half rather than labelling the pair once. */
.tp-ba figcaption{display:flex}
.tp-ba figcaption span{flex:1 1 50%;padding:11px 14px;text-align:center;
 font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#8A8477}
.tp-ba figcaption span + span{border-left:1px solid #EFEDE8;color:#14161A}

.tp-rvpage-cta{margin-top:clamp(48px,6vw,80px);padding:clamp(26px,3.5vw,40px);
 border:1px solid #E6E4DF;border-radius:16px;background:#FAFAF8}
.tp-rvpage-cta h2{margin:0 0 10px;font-family:'Poppins', sans-serif,Georgia,serif;font-weight:400;
 font-size:clamp(22px,2.8vw,30px);color:#14161A}
.tp-rvpage-cta p{margin:0 0 20px;font-size:15px;line-height:1.65;color:#4A4F55;max-width:52ch}
.tp-rvpage-cta .tp-story-actions{display:flex!important;flex-wrap:wrap;align-items:center;
 gap:14px 16px!important;margin:0!important}
.tp-rvpage-cta .tp-story-actions > a{height:52px!important;min-height:52px!important;margin:0!important;
 display:inline-flex!important;align-items:center!important;justify-content:center!important;box-sizing:border-box!important}
html body .tp-rvpage-cta .tp-sd-ghost{
 display:inline-flex!important;align-items:center!important;justify-content:center!important;
 height:52px!important;min-height:52px!important;padding:0 28px!important;
 border:1px solid #E6E4DF!important;border-radius:14px!important;background:#FFFFFF!important;
 background-color:#FFFFFF!important;background-image:none!important;
 color:#14161A!important;font-family:'Poppins', sans-serif,system-ui,-apple-system,sans-serif!important;
 font-size:11px!important;font-weight:500!important;letter-spacing:.18em!important;
 text-transform:uppercase!important;text-decoration:none!important;line-height:1!important;
 box-shadow:0 1px 0 rgba(255,255,255,.9) inset,0 6px 16px -10px rgba(20,22,26,.35)!important;
 transition:transform .18s cubic-bezier(.22,.61,.36,1),box-shadow .18s ease,border-color .18s ease!important;
 cursor:pointer!important;margin:0!important;box-sizing:border-box!important;
}
html body .tp-rvpage-cta .tp-sd-ghost:hover{
 transform:translateY(-1px)!important;border-color:#D8D4C8!important;
 box-shadow:0 1px 0 rgba(255,255,255,.9) inset,0 12px 22px -12px rgba(20,22,26,.4)!important;
 color:#14161A!important;background:#FFFFFF!important;
}
.tp-rvpage-cta a{text-decoration:none!important}

@media (max-width:900px){
 /* Tablet: chips slightly smaller */
 .tp-rvkw-chip{font-size:11.5px!important;padding:0 12px!important;height:32px!important}
 .tp-rvgrid{columns:2 260px}
 .tp-bagrid{
   display:flex!important;
   overflow-x:auto!important;
   overflow-y:hidden!important;
   scroll-snap-type:x mandatory!important;
   -webkit-overflow-scrolling:touch!important;
   gap:16px!important;
   margin:0 -20px!important;
   padding:4px 20px 20px!important;
   scrollbar-width:none!important;
 }
 .tp-bagrid::-webkit-scrollbar{display:none!important}
 .tp-ba{
   flex:0 0 84%!important;
   max-width:340px!important;
   scroll-snap-align:center!important;
   scroll-snap-stop:always!important;
 }
}
@media (max-width:600px){
 /* Mobile: studio filter wraps, keyword row scrolls horizontally */
 .tp-rvfilters{flex-wrap:wrap;gap:7px}
 .tp-rvkw{
  margin:0 -18px 10px;
  padding:2px 18px 10px;
 }
 .tp-rvkw-chip{font-size:11px!important;padding:0 11px!important;height:30px!important}
 .tp-rvgrid{columns:1}
}

/* tp-form-x */

/* ======================================================================
   FIELD GRID
   Elementor gives each field a percentage width and a negative-margin
   gutter on the wrapper. The result was rows 10px apart, the first field
   starting 5px to the left of the form, and a full-width submit 10px wider
   than the two columns above it. A grid with a real gap fixes all three at
   once, and the columns line up by construction.
   ====================================================================== */
html body .elementor-form .elementor-form-fields-wrapper{
 display:grid!important;
 grid-template-columns:repeat(2,minmax(0,1fr))!important;
 gap:22px 20px!important;
 margin:0!important;padding:0!important}

html body .elementor-form .elementor-field-group{
 width:auto!important;max-width:none!important;
 flex:none!important;float:none!important;
 margin:0!important;padding:0!important;
 /* Elementor leaves flex-wrap:wrap on these. In a column flex box that is a
    multi-COLUMN instruction: the label wrapped into its own 35px column and
    the field started beside it, overflowing the group by that much — 117px
    on the selects. Plain block stacking has no such trap. */
 display:block!important}
html body .elementor-form .elementor-field-group > input,
html body .elementor-form .elementor-field-group > select,
html body .elementor-form .elementor-field-group > textarea,
html body .elementor-form .elementor-field-group > .elementor-select-wrapper{
 display:block!important;width:100%!important;max-width:100%!important;
 flex:none!important;box-sizing:border-box!important}

/* Elementor now supplies its own positioned caret inside the select wrapper.
   Older page CSS also added a background chevron to the select, which rendered
   two arrows side by side. Keep Elementor's single caret and remove the duplicate. */
html body.page-id-33 .elementor-form .elementor-select-wrapper > select{
 -webkit-appearance:none!important;
 -moz-appearance:none!important;
 appearance:none!important;
 background-image:none!important;
 padding-inline-end:42px!important;
}

/* The submit, and anything the editor marked as full width, spans the row. */
html body .elementor-form .elementor-field-group.elementor-field-type-submit,
html body .elementor-form .elementor-field-group.elementor-col-100{
 grid-column:1/-1!important}

/* A label needs room from its own field and from the row above it. */
html body .elementor-form .elementor-field-label{
 display:block!important;margin:0 0 8px!important;
 font-size:10px!important;letter-spacing:.16em!important;text-transform:uppercase!important;
 color:#5A5F66!important;font-weight:400!important;line-height:1.2!important}

/* The submit sits flush with the fields and matches the height of the CTA
   buttons used everywhere else, rather than being a full-bleed slab. */
html body .elementor-form .elementor-field-type-submit button,
html body .elementor-form button[type="submit"]{
 width:100%!important;margin:6px 0 0!important;
 height:54px!important;min-height:54px!important;
 padding:0 26px!important;border-radius:14px!important;
 display:inline-flex!important;align-items:center!important;justify-content:center!important;
 line-height:1!important}

/* ======================================================================
   THE INTRO BLOCK
   Its container centres its children, so the heading floated in the middle
   of the section while the form below started at the left edge. Aligning
   the container's children to the start lines the two up; the text keeps a
   readable measure through its own max-width instead.
   ====================================================================== */
body.page-id-33 .e-con-inner{align-items:stretch!important}
body.page-id-33 .e-con-inner > .elementor-widget{max-width:100%!important}
body.page-id-33 .e-con-inner > .elementor-widget h2,
body.page-id-33 .e-con-inner > .elementor-widget > div > p{max-width:46ch}

@media (max-width:720px){
 html body .elementor-form .elementor-form-fields-wrapper{
  grid-template-columns:1fr!important;gap:18px!important}
}

/* tp-voices-x */

.tp-voices{--v-gap:clamp(16px,2vw,24px)}
.tp-voices-head{max-width:34ch}
.tp-voices-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:clamp(24px,4vw,56px);align-items:start;margin-top:clamp(28px,4vw,44px)}

/* rating panel */
.tp-rating{position:sticky;top:96px;border:1px solid #E6E4DF;border-radius:16px;padding:24px;background:#FAFAF8}
.tp-rating-score{display:flex;align-items:baseline;gap:10px}
.tp-rating-score b{font-family:'Plus Jakarta Sans',system-ui,sans-serif;font-weight:700;font-size:44px;line-height:1;
 letter-spacing:-.03em;font-variant-numeric:lining-nums tabular-nums;color:#14161A}
.tp-rating-stars{color:#A8871C;letter-spacing:2px;font-size:15px}
.tp-rating-src{display:inline-flex;align-items:center;gap:7px;margin-top:14px;padding:6px 11px;border-radius:999px;
 border:1px solid #E6E4DF;background:#fff;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#5A5F66}
.tp-rating-src svg{width:13px;height:13px;flex:0 0 auto}
.tp-rating p{margin:16px 0 0;font-size:13.5px;line-height:1.6;color:#5A5F66}
.tp-rating-link{display:inline-block;margin-top:16px;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;
 color:#856812;text-decoration:none;border-bottom:1px solid rgba(133,104,18,.3);padding-bottom:3px;
 transition:border-color .2s ease}
.tp-rating-link:hover{border-color:#856812}
.tp-cost-card-cta{min-height:44px;display:flex;align-items:center;justify-content:flex-start;padding-block:10px;box-sizing:border-box}
.tp-rating-bars{margin-top:18px;display:grid;gap:7px}
.tp-rating-bar{display:grid;grid-template-columns:14px 1fr;align-items:center;gap:9px;font-size:11px;color:#5A5F66}
.tp-rating-bar i{height:5px;border-radius:99px;background:#EBE8E1;display:block;position:relative;overflow:hidden}
.tp-rating-bar i::after{content:"";position:absolute;inset:0 auto 0 0;width:var(--w,0%);background:#A8871C;border-radius:99px;
 transform-origin:left;animation:tpbar .9s cubic-bezier(.22,.61,.36,1) both}
@keyframes tpbar{from{transform:scaleX(0)}to{transform:scaleX(1)}}

/* carousel */
.tp-rail-wrap{position:relative;min-width:0}
.tp-rail{display:flex;gap:var(--v-gap);overflow-x:auto;scroll-snap-type:x mandatory;
 scroll-behavior:smooth;padding:4px 4px 18px;margin:-4px -4px 0;scrollbar-width:none}
.tp-rail::-webkit-scrollbar{display:none}
.tp-voice{scroll-snap-align:start;flex:0 0 min(360px,82%);display:flex;flex-direction:column;
 border:1px solid #E6E4DF;border-radius:16px;padding:24px;background:#fff;
 transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}
.tp-voice:hover{border-color:#D8D4C8;box-shadow:0 12px 30px -18px rgba(20,22,26,.28);transform:translateY(-2px)}
.tp-voice-stars{margin:0 0 12px;color:#A8871C;letter-spacing:3px;font-size:14px}
.tp-voice-q{margin:0 0 20px;font-size:16px;line-height:1.6;color:#14161A;flex:1 1 auto}
.tp-voice-by{display:flex;align-items:center;gap:11px;margin-top:auto}
.tp-avatar{width:38px;height:38px;border-radius:50%;flex:0 0 auto;display:grid;place-items:center;
 background:#14161A;color:#fff;font-size:13px;font-weight:600;letter-spacing:.02em}
.tp-voice-n{margin:0;font-size:13.5px;color:#14161A;line-height:1.3}
.tp-voice-n span{display:block;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#5A5F66;margin-top:3px}

.tp-rail-nav{display:flex;align-items:center;gap:10px;margin-top:6px}
.tp-rail-nav button{width:44px;height:44px;border-radius:50%;border:1px solid #E6E4DF;background:#fff;cursor:pointer;
 display:grid;place-items:center;transition:border-color .2s ease,background .2s ease,opacity .2s ease}
.tp-rail-status{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.tp-rail-nav button:hover:not(:disabled){border-color:#A8871C;background:rgba(168,135,28,.06)}
.tp-rail-nav button:disabled{opacity:.35;cursor:default}
.tp-rail-nav svg{width:15px;height:15px;stroke:#14161A;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.tp-rail-dots{display:flex;gap:6px;margin-left:6px}
.tp-rail-dots b{width:6px;height:6px;border-radius:50%;background:#DCD8D0;transition:background .2s ease,width .2s ease}
.tp-rail-dots b[data-on="1"]{background:#A8871C;width:18px;border-radius:99px}

@media (max-width:900px){
 .tp-voices-layout{grid-template-columns:1fr;gap:24px}
 .tp-rating{position:static}
 .tp-rating-bars{display:none}
 .tp-voice{flex-basis:min(340px,86%)}
 .tp-rating-src,.tp-rating-link{min-height:44px;display:inline-flex;align-items:center}
 .tp-rating-link{padding-block:10px;margin-bottom:-10px}
}
@media (prefers-reduced-motion:reduce){
 .tp-rail{scroll-behavior:auto}
 .tp-voice,.tp-rating-bar i::after{transition:none;animation:none}
 .tp-rating-bar i::after{width:var(--w,0%)}
}

/* tp-pages-x */

body.page-id-34 .e-con,body.page-id-35 .e-con,body.page-id-36 .e-con{padding-left:0!important;padding-right:0!important;max-width:100%!important}
/* Elementor puts its own padding on .e-con-inner, not the container — here a
   120px top pad that stacked on the section padding and pushed the first line
   of every page most of a screen down. */
body.page-id-34 .e-con > .e-con-inner,
body.page-id-35 .e-con > .e-con-inner,
body.page-id-36 .e-con > .e-con-inner{padding:0!important;max-width:100%!important;width:100%!important}
body.page-id-34 [data-elementor-type="wp-page"] > .e-con,
body.page-id-35 [data-elementor-type="wp-page"] > .e-con,
body.page-id-36 [data-elementor-type="wp-page"] > .e-con{
 padding:clamp(44px,5vw,64px) clamp(18px,5vw,40px) clamp(56px,7vw,88px)!important;overflow-x:clip}

/* The page heads carried Elementor's own generous widget margins on top of the
   container padding, which put roughly 420px of nothing between the header and
   the first line anyone came to read. */
body.page-id-34 .elementor-element-d431e7d,
body.page-id-35 .elementor-element-c64179f{margin-bottom:clamp(24px,3vw,36px)}
body.page-id-34 .elementor-element-d431e7d > .elementor-widget,
body.page-id-35 .elementor-element-c64179f > .elementor-widget{margin-bottom:10px!important}
body.page-id-34 .elementor-element-d431e7d > .elementor-widget:last-child,
body.page-id-35 .elementor-element-c64179f > .elementor-widget:last-child{margin-bottom:0!important}
body.page-id-35 .elementor-element-c64179f .elementor-widget-text-editor{max-width:64ch;margin-inline:auto}

/* Zeroing the inner padding also took the space off the block below the
   questions, so once a filter shortened the list the closing section rode up
   into it. It gets its own rule instead of inheriting Elementor's. */
body.page-id-35 .elementor-element-4b112bb{
 margin-top:clamp(48px,6vw,72px)!important;
 padding-top:clamp(32px,4vw,44px)!important;
 border-top:1px solid #E6E4DF;text-align:center}
body.page-id-35 .elementor-element-4b112bb > .e-con-inner{
 display:flex;flex-direction:column;align-items:center;gap:14px}
/* "Have a specific question?" sat a whole screen above its own button on a
   phone: the heading keeps Elementor's widget margin and the button block
   adds its own on top. One gap between them, set here. */
body.page-id-35 .elementor-element-4b112bb .elementor-widget-heading{
 margin-bottom:0!important}
body.page-id-35 .elementor-element-4b112bb .elementor-widget-button{
 margin-top:0!important}
body.page-id-35 .elementor-element-4b112bb > .e-con-inner{
 gap:clamp(14px,2.4vw,20px)!important}
body.page-id-35 .elementor-element-4b112bb .elementor-widget{margin:0!important}
body.page-id-35 .elementor-element-4b112bb .elementor-widget-text-editor{max-width:52ch}
body.page-id-34 [data-elementor-type="wp-page"] > .e-con > *,
body.page-id-35 [data-elementor-type="wp-page"] > .e-con > *,
body.page-id-36 [data-elementor-type="wp-page"] > .e-con > *{
 width:100%!important;max-width:1080px!important;margin-inline:auto!important}

/* The chip and ghost-button styles were written into the shop and studio
   plugins, which only load on their own pages — so here the theme's default
   button styling won, and the filters rendered as pink outlined boxes. Both
   are restated for these pages. */
.tp-faq .tp-chip,.tp-story .tp-sd-ghost{font-family:'Poppins', sans-serif!important;cursor:pointer;white-space:nowrap;
 padding:8px 14px!important;min-height:36px!important;border-radius:999px!important;
 border:1px solid #E0DDD6!important;background:#FFFFFF!important;color:#14161A!important;
 font-size:12.5px!important;line-height:1!important;letter-spacing:.01em!important;text-transform:none!important;
 box-shadow:none!important;
 transition:border-color .16s ease,background .16s ease,color .16s ease}
.tp-faq .tp-chip:hover{border-color:#C9C4B8!important}
.tp-faq .tp-chip:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(168,135,28,.5)!important}
.tp-faq .tp-chip.is-on{background:#14161A!important;border-color:#14161A!important;color:#FFFFFF!important}

.tp-story .tp-sd-ghost{display:inline-flex;align-items:center;justify-content:center;min-height:46px;
 padding:14px 24px!important;border:1px solid #E6E4DF!important;border-radius:14px!important;
 background:#fff!important;font-size:11px!important;letter-spacing:.18em!important;text-transform:uppercase!important;
 color:#14161A!important;text-decoration:none!important;
 transition:border-color .2s ease,background .2s ease}
.tp-story .tp-sd-ghost:hover{border-color:#A8871C!important;background:rgba(168,135,28,.06)!important}

/* ---- FAQ ---- */
.tp-faq-nav{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:clamp(20px,3vw,28px)}
.tp-faq-search{position:relative;flex:1 1 260px;min-width:0;display:block}
.tp-faq-search svg{position:absolute;left:15px;top:50%;transform:translateY(-50%);width:16px;height:16px;
 stroke:#8A8477;fill:none;stroke-width:1.6;stroke-linecap:round;pointer-events:none;z-index:1}
/* The site-wide field rule sets padding with !important, so the icon well has
   to be declared at least as strongly or the placeholder sits under the glass. */
html body .tp-faq .tp-faq-search input[type="search"]{
 width:100%!important;padding:11px 14px 11px 42px!important}
.tp-faq-tabs{display:flex;flex-wrap:wrap;gap:6px}

.tp-faq-list{border-top:1px solid #E6E4DF}
.tp-qa{border-bottom:1px solid #E6E4DF}
.tp-qa[hidden]{display:none}
.tp-qa summary{list-style:none;cursor:pointer;display:flex;align-items:flex-start;gap:16px;
 padding:20px 4px;font-size:16px;line-height:1.45;color:#14161A;
 transition:color .18s ease}
.tp-qa summary::-webkit-details-marker{display:none}
.tp-qa summary:hover{color:#856812}
.tp-qa summary span{flex:1 1 auto;min-width:0}
/* A drawn plus that becomes a minus — no glyph, so it never inherits the
   serif face and never sits off-centre. */
.tp-qa summary:after{content:"";flex:0 0 auto;width:14px;height:14px;margin-top:4px;
 background:
  linear-gradient(#14161A,#14161A) center/14px 1.5px no-repeat,
  linear-gradient(#14161A,#14161A) center/1.5px 14px no-repeat;
 transition:transform .25s cubic-bezier(.22,.61,.36,1),opacity .2s ease;opacity:.55}
.tp-qa[open] summary:after{transform:rotate(90deg);
 background:linear-gradient(#856812,#856812) center/14px 1.5px no-repeat;opacity:1}
.tp-qa[open] summary{color:#14161A;font-weight:500}
.tp-qa > div{padding:0 44px 22px 4px;font-size:15px;line-height:1.7;color:#4A4F55;max-width:72ch}
.tp-qa > div p{margin:0 0 12px}
.tp-qa > div p:last-child{margin:0}
.tp-qa mark{background:rgba(168,135,28,.22);color:inherit;padding:0 2px;border-radius:2px}
.tp-faq-empty{padding:36px 4px;color:#5A5F66;font-size:14.5px}

/* ---- How it Works: a real timeline ----
   Split layout on desktop: Left column has numbered step items, right column has sticky photo stage.
*/
body.page-id-36 .tp-proc,
.tp-proc{max-width:1180px!important;margin:0 auto!important;padding:0!important}

body.page-id-36 .tp-proc-split,
.tp-proc-split{display:grid!important;grid-template-columns:minmax(0,1.1fr) minmax(0,0.9fr)!important;
 gap:clamp(32px,5vw,64px)!important;align-items:start!important;margin-top:clamp(32px,4vw,48px)!important}

body.page-id-36 .tp-steps,
.tp-proc-split .tp-steps,
.tp-steps{display:block!important;list-style:none!important;margin:0!important;padding:0!important;position:relative!important;grid-template-columns:none!important}
.tp-steps:before{content:""!important;position:absolute!important;left:19px!important;top:14px!important;bottom:14px!important;width:1px!important;background:#E6E4DF!important}

body.page-id-36 .tp-stepc,
.tp-stepc{position:relative!important;display:grid!important;grid-template-columns:40px minmax(0,1fr)!important;
 gap:20px!important;padding-bottom:clamp(32px,4vw,48px)!important;border:0!important;cursor:pointer!important}
.tp-stepc:last-child{padding-bottom:0!important}

body.page-id-36 .tp-stepn,
.tp-stepn{position:relative!important;z-index:1!important;
 width:40px!important;height:40px!important;min-width:40px!important;max-width:40px!important;
 aspect-ratio:1/1!important;border-radius:50%!important;align-self:start!important;justify-self:start!important;
 display:grid!important;place-items:center!important;padding:0!important;
 background:#FFFFFF!important;border:1px solid #E6E4DF!important;
 font-family:'Poppins', sans-serif!important;font-weight:700!important;font-size:12px!important;
 font-variant-numeric:lining-nums tabular-nums!important;color:#14161A!important;letter-spacing:-.01em!important;
 transition:all .28s cubic-bezier(.16,1,.3,1)!important}
.tp-stepc > div{min-width:0!important}
.tp-stepc:hover .tp-stepn{border-color:#A8871C!important;color:#856812!important}
.tp-steph{margin:8px 0 8px!important;font-size:clamp(19px,2.2vw,23px)!important;line-height:1.25!important;color:#14161A!important;transition:color .25s ease!important}
.tp-stept{margin:0 0 12px!important;font-size:15px!important;line-height:1.7!important;color:#4A4F55!important;max-width:62ch!important}
.tp-stepm{margin:0!important;display:inline-flex!important;align-items:center!important;padding:6px 12px!important;border-radius:999px!important;
 background:#FAFAF8!important;border:1px solid #E6E4DF!important;
 font-size:10.5px!important;letter-spacing:.12em!important;text-transform:uppercase!important;color:#5A5F66!important;transition:all .25s ease!important}
.tp-proc-cta{display:flex!important;flex-wrap:wrap!important;align-items:center!important;justify-content:space-between!important;gap:18px!important;
 margin-top:clamp(40px,5vw,60px)!important;padding-top:clamp(28px,3.5vw,36px)!important;border-top:1px solid #E6E4DF!important}
.tp-proc-cta p{font-size:15px!important;color:#4A4F55!important}

/* ---- desktop step pacing & active prominence ---- */
@media (min-width:1025px){
 body.page-id-36 .tp-stepc{min-height:360px!important;padding-bottom:70px!important;opacity:0.38!important;transform:none!important;
  transition:opacity .35s cubic-bezier(.16,1,.3,1),transform .35s cubic-bezier(.16,1,.3,1)!important}
 body.page-id-36 .tp-stepc:hover{opacity:0.75!important}
 body.page-id-36 .tp-stepc.is-current{opacity:1!important;transform:translateX(4px)!important}
 body.page-id-36 .tp-stepc.is-current .tp-stepn{background:#14161A!important;color:#FFFFFF!important;
  border-color:#A8871C!important;box-shadow:0 0 0 4px rgba(168,135,28,.2),0 4px 12px rgba(0,0,0,.12)!important;
  transform:scale(1.08)!important}
 body.page-id-36 .tp-stepc.is-current .tp-steph{color:#14161A!important;font-weight:500!important}
 body.page-id-36 .tp-stepc.is-current .tp-stepm{border-color:rgba(168,135,28,.35)!important;background:rgba(168,135,28,.06)!important;color:#856812!important}
 
 body.page-id-36 .tp-step-shot,
 .tp-step-shot{display:none!important}
}

/* ---- the picture that follows the steps ---- */
body.page-id-36 .tp-proc-media,
.tp-proc-media{position:sticky!important;top:calc(var(--tp-header-h,76px) + 32px)!important;display:block!important}
body.page-id-36 .tp-proc-stage,
.tp-proc-stage{position:relative!important;width:100%!important;aspect-ratio:4/5!important;border-radius:16px!important;overflow:hidden!important;
 background:#F3F1EC!important;border:1px solid #E6E4DF!important}
body.page-id-36 .tp-proc-stage img,
.tp-proc-stage img{position:absolute!important;top:0!important;left:0!important;right:0!important;bottom:0!important;inset:0!important;width:100%!important;height:100%!important;object-fit:cover!important;display:block!important;
 opacity:0!important;transform:scale(1.025)!important;pointer-events:none!important;
 transition:opacity .32s cubic-bezier(.16,1,.3,1),transform .4s cubic-bezier(.16,1,.3,1)!important}
body.page-id-36 .tp-proc-stage img.is-on,
.tp-proc-stage img.is-on{opacity:1!important;transform:none!important;pointer-events:auto!important}
body.page-id-36 .tp-proc-cap,
.tp-proc-cap{margin:12px 0 0!important;font-size:12.5px!important;line-height:1.5!important;color:#5A5F66!important;min-height:19px!important;
 transition:opacity .25s ease!important}

/* On mobile / tablet, photo is inside each step */
.tp-step-shot{margin:0 0 14px!important;border-radius:12px!important;overflow:hidden!important;
 background:#F3F1EC!important;border:1px solid #E6E4DF!important;aspect-ratio:4/3!important}
.tp-step-shot img{width:100%!important;height:100%!important;object-fit:cover!important;object-position:50% 38%!important;display:block!important}
@media (max-width:600px){
 .tp-step-shot{aspect-ratio:3/4!important}
}

@media (max-width:1024px){
 body.page-id-36 .tp-proc-split,
 .tp-proc-split{display:block!important;grid-template-columns:none!important;gap:0!important}
 body.page-id-36 .tp-proc-media,
 .tp-proc-media{display:none!important}
 body.page-id-36 .tp-step-shot,
 .tp-step-shot{display:block!important}
}

/* ---- About: a single centered editorial story column ---- */
body.page-id-34 .tp-story,
.tp-story{display:block!important;max-width:760px!important;width:100%!important;margin-inline:auto!important;padding:0!important;grid-template-columns:none!important}
body.page-id-34 .tp-story > *,
.tp-story > *{display:block!important;width:100%!important;max-width:100%!important;float:none!important;clear:both!important;grid-column:auto!important}
body.page-id-34 .tp-story-open,
.tp-story-open{margin-bottom:clamp(24px,3vw,34px)!important}
body.page-id-34 .tp-story-open .tp-eyebrow,
body.page-id-34 .tp-story-open .tp-h2,
.tp-story-open .tp-eyebrow,.tp-story-open .tp-h2{margin:0!important}
.tp-story-open .tp-h2{margin-top:8px!important}
body.page-id-34 .tp-story-body,
.tp-story-body{display:block!important;width:100%!important}
.tp-story-body p{font-size:16.5px!important;line-height:1.75!important;color:#3F444A!important;margin:0 0 20px!important;max-width:68ch!important}
.tp-story-body .tp-lede{font-size:clamp(19px,2.2vw,22px)!important;line-height:1.55!important;color:#14161A!important;margin-bottom:26px!important}
.tp-pull{margin:32px 0!important;padding:0 0 0 22px!important;border-left:2px solid #A8871C!important;
 font-family:'Poppins', sans-serif!important;font-size:clamp(22px,2.8vw,28px)!important;line-height:1.35!important;
 color:#14161A!important;font-style:italic!important}

/* ---- About: Company Profile Section ---- */
body.page-id-34 .tp-topee-profile,
.tp-topee-profile{display:block!important;width:100%!important;margin-top:clamp(40px,5vw,60px)!important;padding-top:clamp(28px,3.5vw,36px)!important;border-top:1px solid #E6E4DF!important}
.tp-topee-profile .tp-timeline-h3{font-size:clamp(22px,2.6vw,28px)!important;margin:8px 0 16px!important;color:#14161A!important}
.tp-topee-profile p{font-size:15.5px!important;line-height:1.7!important;color:#4A4F55!important;margin:0 0 14px!important;max-width:68ch!important}

/* ---- About: UI-focused Milestones Timeline ---- */
body.page-id-34 .tp-timeline-section,
.tp-timeline-section{
 display:block!important;
 width:100%!important;
 max-width:760px!important;
 margin:clamp(48px,6vw,72px) auto 0!important;
 padding-top:clamp(36px,4.5vw,48px)!important;
 border-top:1px solid #E6E4DF!important;
 cursor:default!important;
 user-select:none!important;
}
.tp-timeline-header{
 margin-bottom:clamp(28px,4vw,36px)!important;
 text-align:center!important;
}
.tp-timeline-header .tp-eyebrow{
 margin:0 0 8px!important;
}
.tp-timeline-h3{
 font-family:'Poppins', sans-serif!important;
 font-size:clamp(28px,3.5vw,36px)!important;
 font-weight:600!important;
 line-height:1.2!important;
 color:#14161A!important;
 margin:0!important;
}
body.page-id-34 .tp-timeline-track,
.tp-timeline-track{
 position:relative!important;
 display:grid!important;
 grid-template-columns:repeat(3,1fr)!important;
 gap:clamp(14px,2vw,22px)!important;
 width:100%!important;
 max-width:100%!important;
 box-sizing:border-box!important;
}
body.page-id-34 .tp-timeline-spine,
.tp-timeline-spine{
 position:absolute!important;
 top:19px!important;
 left:16.66%!important;
 right:16.66%!important;
 height:2px!important;
 background:linear-gradient(90deg,#8E7037 0%,#D4AF37 50%,#8E7037 100%)!important;
 z-index:1!important;
 display:block!important;
}
body.page-id-34 .tp-timeline-item,
.tp-timeline-item{
 position:relative!important;
 display:flex!important;
 flex-direction:column!important;
 align-items:center!important;
 z-index:2!important;
 height:100%!important;
 min-width:0!important;
 width:100%!important;
}
.tp-timeline-node-wrap{
 width:100%!important;
 display:flex!important;
 justify-content:center!important;
 margin-bottom:20px!important;
}
.tp-timeline-node{
 width:40px!important;
 height:40px!important;
 min-width:40px!important;
 max-width:40px!important;
 border-radius:50%!important;
 background:#FFFFFF!important;
 border:2px solid #8E7037!important;
 box-shadow:0 0 0 5px rgba(142,112,55,0.12),0 4px 12px rgba(20,22,26,0.06)!important;
 display:flex!important;
 align-items:center!important;
 justify-content:center!important;
}
.tp-timeline-dot{
 width:10px!important;
 height:10px!important;
 border-radius:50%!important;
 background:#8E7037!important;
}
body.page-id-34 .tp-timeline-card,
.tp-timeline-card{
 width:100%!important;
 max-width:100%!important;
 background:#FAFAF8!important;
 border:1px solid #E6E4DF!important;
 border-radius:18px!important;
 padding:22px 14px!important;
 display:flex!important;
 flex-direction:column!important;
 justify-content:space-between!important;
 flex:1!important;
 box-shadow:0 2px 12px rgba(20,22,26,0.03)!important;
 box-sizing:border-box!important;
 text-align:center!important;
 min-width:0!important;
}
.tp-timeline-card-top{
 display:flex!important;
 align-items:center!important;
 justify-content:space-between!important;
 margin-bottom:16px!important;
}
.tp-timeline-badge-pill{
 display:inline-flex!important;
 align-items:center!important;
 padding:4px 9px!important;
 background:#FFFFFF!important;
 border:1px solid #E6E4DF!important;
 border-radius:999px!important;
 font-size:10.5px!important;
 font-weight:700!important;
 letter-spacing:.12em!important;
 text-transform:uppercase!important;
 color:#8E7037!important;
}
.tp-timeline-tag{
 font-size:9.5px!important;
 font-weight:700!important;
 letter-spacing:.14em!important;
 text-transform:uppercase!important;
 color:#8A8F96!important;
}
body.page-id-34 .tp-timeline-graphic,
.tp-timeline-graphic{
 display:flex!important;
 align-items:center!important;
 justify-content:center!important;
 margin:0 auto 16px!important;
 width:64px!important;
 height:64px!important;
 max-width:64px!important;
 max-height:64px!important;
 min-width:64px!important;
 min-height:64px!important;
 border-radius:16px!important;
 background:#FFFFFF!important;
 border:1px solid #EDEAE2!important;
 box-shadow:0 3px 10px rgba(20,22,26,0.03)!important;
 box-sizing:border-box!important;
 overflow:hidden!important;
}
body.page-id-34 .tp-timeline-icon,
.tp-timeline-icon,
body.page-id-34 .tp-timeline-graphic svg,
.tp-timeline-graphic svg{
 width:34px!important;
 height:34px!important;
 max-width:34px!important;
 max-height:34px!important;
 display:block!important;
 margin:0 auto!important;
 flex-shrink:0!important;
}
.tp-timeline-stat-wrap{
 display:flex!important;
 flex-direction:column!important;
 align-items:center!important;
 justify-content:center!important;
 width:120px!important;
 min-height:72px!important;
 padding:10px 18px!important;
 box-sizing:border-box!important;
 border:1px solid #EDEAE2!important;
 border-radius:14px!important;
 background:#FFFFFF!important;
 box-shadow:0 3px 10px rgba(20,22,26,.05)!important;
 overflow:visible!important;
}
.tp-timeline-stat-num{
 font-family:'Poppins', sans-serif!important;
 font-size:26px!important;
 font-weight:500!important;
 line-height:1!important;
 color:#8E7037!important;
 letter-spacing:-0.01em!important;
}
/* The milestone graphic is wider than the icon slot. Without resizing its
   parent, the 120px stat card is clipped back to the inherited 64px square. */
.tp-timeline-graphic:has(.tp-timeline-stat-wrap),
body.page-id-34 .tp-timeline-graphic:has(.tp-timeline-stat-wrap){
 width:120px!important;
 height:72px!important;
 min-width:120px!important;
 min-height:72px!important;
 max-width:120px!important;
 max-height:72px!important;
 overflow:visible!important;
}
.tp-timeline-content{
 flex-grow:1!important;
 display:flex!important;
 flex-direction:column!important;
 justify-content:center!important;
}
.tp-timeline-title{
 font-family:'Poppins', sans-serif!important;
 font-size:15px!important;
 font-weight:600!important;
 color:#14161A!important;
 margin:0 0 6px!important;
 line-height:1.3!important;
}
.tp-timeline-desc{
 font-size:12.5px!important;
 line-height:1.5!important;
 color:#5A6065!important;
 margin:0!important;
}

@media (max-width:768px){
 body.page-id-34 .tp-timeline-header,
 .tp-timeline-header{text-align:left!important}
 body.page-id-34 .tp-timeline-track,
 .tp-timeline-track{grid-template-columns:1fr!important;gap:20px!important;padding-left:36px!important}
 body.page-id-34 .tp-timeline-spine,
 .tp-timeline-spine{display:none!important}
 body.page-id-34 .tp-timeline-item,
 .tp-timeline-item{flex-direction:row!important;align-items:flex-start!important}
 .tp-timeline-item:not(:last-child)::after{
  content:''!important;
  position:absolute!important;
  top:36px!important;
  bottom:-20px!important;
  left:-19px!important;
  width:2px!important;
  background:linear-gradient(180deg,#8E7037 0%,#D4AF37 50%,#8E7037 100%)!important;
  z-index:1!important;
 }
 .tp-timeline-node-wrap{
  width:auto!important;
  margin-bottom:0!important;
  margin-left:-36px!important;
  margin-right:18px!important;
  padding-top:18px!important;
 }
 .tp-timeline-node{width:36px!important;height:36px!important}
 .tp-timeline-dot{width:9px!important;height:9px!important}
 .tp-timeline-card{padding:18px 16px!important;text-align:left!important;flex-direction:column!important}
 .tp-timeline-card-top{margin-bottom:12px!important}
 body.page-id-34 .tp-timeline-graphic,
 .tp-timeline-graphic{margin:0 0 14px 0!important;width:52px!important;height:52px!important}
 .tp-timeline-stat-num{font-size:22px!important}
 .tp-timeline-content{text-align:left!important}
}

.tp-story-rules{margin-top:clamp(48px,6vw,72px);padding-top:clamp(32px,4vw,44px);border-top:1px solid #E6E4DF}
.tp-story-rules > .tp-eyebrow{margin:0 0 22px}
.tp-rules{list-style:none;counter-reset:r;margin:0;padding:0;display:grid;gap:2px}
.tp-rules li{counter-increment:r;display:grid;grid-template-columns:34px minmax(0,1fr);gap:18px;
 padding:20px 0;border-bottom:1px solid #EFEDE8}
.tp-rules li:last-child{border-bottom:0}
.tp-rules li:before{content:counter(r,decimal-leading-zero);grid-column:1;grid-row:1;
 font-family:'Poppins', sans-serif;font-weight:700;font-size:11px;
 font-variant-numeric:lining-nums tabular-nums;color:#A8871C;padding-top:5px}
.tp-rules li h3{grid-column:2;grid-row:1}
.tp-rules li p{grid-column:2;grid-row:2}
.tp-rules h3{margin:0 0 6px;font-size:17px;line-height:1.3;color:#14161A}
.tp-rules p{margin:0;font-size:14.5px;line-height:1.65;color:#4A4F55;max-width:58ch}
body.page-id-34 .tp-story-sign,
.tp-story-sign{margin-top:clamp(40px,5vw,60px)!important;padding:clamp(26px,3.5vw,36px)!important;
 border:1px solid #E6E4DF!important;border-radius:16px!important;background:#FAFAF8!important}
.tp-story-sign p{margin:0 0 20px!important;font-size:15px!important;line-height:1.7!important;color:#4A4F55!important;max-width:60ch!important}
body.page-id-34 .tp-story-actions,
.tp-story-actions{display:flex!important;flex-wrap:wrap!important;gap:12px!important;align-items:center!important;justify-content:center!important}
body.page-id-34 .tp-story-actions > a,
.tp-story-actions > a{min-height:50px!important;height:50px!important;margin:0!important;
 padding:14px 28px!important;
 display:inline-flex!important;align-items:center!important;justify-content:center!important}

@media (max-width:600px){
 .tp-faq-nav{gap:10px}
 .tp-faq-tabs{flex-wrap:wrap;overflow:visible;margin:0;padding:0;width:100%;max-width:100%;box-sizing:border-box}
 .tp-faq-tabs::-webkit-scrollbar{display:none}
 .tp-faq .tp-chip{min-height:44px!important;display:inline-flex;align-items:center;justify-content:center}
 .tp-qa summary{font-size:15px;padding:17px 2px;gap:12px}
 .tp-qa > div{padding:0 30px 18px 2px;font-size:14.5px}
 .tp-stepc{grid-template-columns:32px minmax(0,1fr)}
 .tp-steps:before{left:15px}
 .tp-stepn{width:32px;height:32px;font-size:11px}
 .tp-proc-cta{flex-direction:column;align-items:stretch}
 .tp-proc-cta .tp-side-cta{justify-content:center}
 .tp-rules li{grid-template-columns:26px minmax(0,1fr);gap:12px}
 .tp-story-actions > a{width:100%;justify-content:center}
}
@media (prefers-reduced-motion:reduce){
 .tp-qa summary,.tp-qa summary:after{transition:none!important}
}


/* ---- ALL REFINEMENTS (MOBILE FIXED HEADER & SEQUENCE ADJUSTMENTS) ---- */
@media (max-width: 1024px) {
  .elementor-button{min-height:44px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;padding-top:12px!important;padding-bottom:12px!important;white-space:normal!important;text-align:center!important}
  .tp-base-tab{min-height:44px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;padding-top:10px!important;padding-bottom:10px!important}
  html { scroll-padding-top: 84px; }
  .tp-timeline-section,
  .tp-faq,
  .tp-proc,
  .tp-cost,
  .tp-catalog-section,
  .tp-studios-section,
  .tp-rvpage { scroll-margin-top: 84px; }
  html body header#site-header.site-header.skiper38-header,
  header#site-header.skiper38-header,
  header#site-header {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    width: 100vw !important;
    max-width: 100vw !important;
    height: 60px !important;
    min-height: 60px !important;
    z-index: 999999 !important;
    -webkit-transform: translate3d(0, 0, 0) !important;
    transform: translate3d(0, 0, 0) !important;
  }
  .skiper38-nav {
    display: none !important;
  }
}
@media (max-width: 767px) {
  html body header#site-header.site-header.skiper38-header,
  header#site-header.skiper38-header,
  header#site-header {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    width: 100vw !important;
    max-width: 100vw !important;
    height: 60px !important;
    min-height: 60px !important;
    z-index: 999999 !important;
    -webkit-transform: translate3d(0, 0, 0) !important;
    transform: translate3d(0, 0, 0) !important;
  }
  .skiper38-nav {
    display: none !important;
  }
}

/* Review popup suppressed */
.tp-rvtip {
  display: none !important;
}

/* Subject breathing room: pull subject away from right screen edge on desktop */
@media (min-width: 1025px) {
  .elementor-element-375f65f {
    padding-right: clamp(40px, 6vw, 110px) !important;
    box-sizing: border-box !important;
  }
}

/* Cutout edge fix: multiply blend mode dissolves any off-white hair/shoulder boundaries */
.tsq-canvas {
  mix-blend-mode: multiply !important;
}

/* Clean, modern single number marker treatment without accidental dot */
.tsq-step .tsq-dot {
  display: none !important;
}
.tsq-step .tsq-num {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  font-size: clamp(34px, 3.6vw, 44px) !important;
  font-weight: 600 !important;
  color: #9C854E !important;
  line-height: 1 !important;
  letter-spacing: -0.02em !important;
  font-style: normal !important;
  display: inline-block !important;
  margin-bottom: 0 !important;
}
.tsq-step .tsq-numcol {
  min-width: 48px !important;
  padding-top: 2px !important;
}

/* Darker, high-contrast body copy for effortless readability */
.tsq-step .tsq-p {
  color: #1E2226 !important;
  font-weight: 400 !important;
}
.tsq-step .tsq-list {
  color: #22262A !important;
}
.tsq-step .tsq-list strong {
  color: #0E1012 !important;
  font-weight: 600 !important;
}
.tp-body, p.tp-hero-sub, .tp-card-d {
  color: #1E2226 !important;
}

/* Back to top breathing room */
#tp-top {
  right: clamp(28px, 4vw, 48px) !important;
  bottom: clamp(28px, 4vw, 48px) !important;
}
@media (max-width: 600px) {
  #tp-top {
    right: 22px !important;
    bottom: calc(24px + env(safe-area-inset-bottom, 0px)) !important;
    margin-bottom: 0 !important;
  }
}

/* Prevent horizontal overflow causing macOS scrollbar thumb indicator */
html:root, body {
  overflow-x: clip !important;
  max-width: 100vw !important;
}


/* topee-global-typography */

/* Headings & Display Elements: Bodoni Moda */
h1, h2, h3, h4, h5, h6,
.elementor-heading-title,
h1.elementor-heading-title,
h2.elementor-heading-title,
h3.elementor-heading-title,
h4.elementor-heading-title,
.tp-hero-h,
.tp-h2, .tp-h3, .tp-h4,
.tp-card-h,
.tp-cost-h,
.tp-cost-title,
.tsq-h,
.tsq-step .tsq-h,
.tsq-num,
.tsq-step .tsq-num,
.tp-spec-row h4,
.tp-spec-col h4,
.tp-voice-q,
.tp-steph,
.tp-quote,
.tp-pull,
blockquote,
.tp-rvpage-h,
.tp-rvpage-h2,
.tp-rvpage-cta h2,
.tp-timeline-h3,
.tp-timeline-stat-num,
.tp-base-foot-title,
#tp-base-title,
.tp-bcard-title,
.tp-story-open h2,
.tp-rules h3,
.tp-voices-head h2,
.tp-fact-n {
  font-family: 'Poppins', sans-serif !important;
}

.tp-timeline-stat-num,
.tsq-step .tsq-num,
.tp-fact-n {
  font-family: 'Poppins', sans-serif !important;
  font-variant-numeric: lining-nums tabular-nums !important;
}

/* Body Text, Navigation, Controls, Labels & UI: Montserrat */
html, body,
p, span, li, a, input, textarea, select, button, label,
.elementor-widget-text-editor,
.elementor-button,
.elementor-icon-list-text,
.subheading,
nav, nav a,
.skiper38-nav-title,
.skiper38-nav-sub a,
.skiper38-drawer-title,
.skiper38-drawer-sub a,
.skiper38-megamenu-h,
.skiper38-link,
.tp-eyebrow,
.tp-timeline-eyebrow,
.tp-timeline-tag,
.tp-timeline-badge-pill,
.tp-timeline-desc,
.tp-timeline-title,
.tp-story-body p,
.tp-rules p,
.tp-story-sign p,
.tp-rules li:before,
.tp-cost-card p,
.tp-cost-card li,
.tp-cost-card-cta,
.tp-hero-eyebrow,
.tp-hero-sub,
.tp-hero-marks span,
.tp-hero-marks strong,
.tp-hero-cta,
.tp-card-tag,
.tp-bcard-label,
.tp-bcard-badge,
.tp-bcard-summary,
.tp-bchip,
.tp-chip,
.tp-side-cta,
.tp-sd-ghost,
.tp-base-tab,
.tp-size-badge,
.tp-color-name,
.tp-density-name,
.tp-density-pct,
.tp-faq-search input,
.tp-qa summary,
.tp-qa > div,
.tp-voice-n,
.tp-voice-by,
.tp-avatar,
.tp-filters-count,
.tp-quiz-summary-title,
.tp-fg-label,
.tp-cost-badge,
.tp-cost-meta,
.tp-cost-note {
  font-family: 'Poppins', sans-serif !important;
}

.elementor-widget-heading .elementor-heading-title,
h1.elementor-heading-title,
h2.elementor-heading-title,
h3.elementor-heading-title,
.tp-hero-h,
.tp-h2,
.tp-card-h,
.tp-cost-h,
.tsq-h {
  font-weight: 600 !important;
}

b, strong,
.elementor-widget-text-editor strong,
.elementor-widget-text-editor b {
  font-weight: 700 !important;
}
