/* ===========================================================================
   The Pilates Firm — brand theme layered on UIkit 3
   Replicates the live look: Poppins/Work Sans, slate-blue (#769fb5) primary,
   dark toolbar, centered navbar, right-edge page accent, UIkit buttons.
   =========================================================================== */
:root{
  --tpf-primary:#769fb5;
  --tpf-primary-dark:#5d8294;
  --tpf-ink:#404042;
  --tpf-accent:#fd6251;
  --tpf-page-bg:#eaecec;
}

/* ---- Typography ---- */
/* Consistent, comfortable body size across every page */
body{font-family:'Work Sans',sans-serif;color:var(--tpf-ink);background:var(--tpf-page-bg);
  font-size:17px;line-height:1.65}
main p,.tpf-content p,.uk-section p{font-size:1.0625rem}
h1,h2,h3,h4,h5,h6,.uk-h1,.uk-h2,.uk-h3,.uk-heading-medium,.uk-logo{
  font-family:'Poppins',sans-serif;color:var(--tpf-ink)}
.uk-text-primary{color:var(--tpf-primary)!important}
/* italics should match surrounding text colour, not UIkit's default red */
em,i{color:inherit}

/* ---- Page frame (slate-blue right edge, like the original) ---- */
.tm-page{position:relative;background:#fff}
@media (min-width:960px){ .tm-page{border-right:10px solid var(--tpf-primary)} }

/* ---- Top toolbar: centered circular social icons ---- */
.tm-toolbar{background:var(--tpf-ink);padding:10px 0}
.tpf-toolbar-icons{gap:14px}
.tpf-toolbar-icons a{
  width:38px;height:38px;border-radius:50%;display:inline-flex;align-items:center;
  justify-content:center;background:rgba(255,255,255,.14);color:#fff;transition:.2s}
.tpf-toolbar-icons a:hover{background:var(--tpf-primary);color:#fff}

/* ---- Header / navbar (centered split menu + center logo) ---- */
/* Persistent full-width blue line across the bottom of the menu bar */
.tm-header{background:#fff;border-bottom:2px solid var(--tpf-primary)}
.tm-header .uk-navbar-container,.tm-header-mobile .uk-navbar-container{background:#fff}
.uk-logo img{height:54px;width:auto}
.tpf-nav>li>a{
  font-family:'Poppins',sans-serif;font-weight:500;font-size:14px;letter-spacing:.03em;
  color:var(--tpf-ink);text-transform:none;min-height:88px;padding:0 16px}
.tpf-nav>li>a:hover,.tpf-nav>li.uk-active>a{color:var(--tpf-primary)}
/* center logo (absolutely centered on page via uk-navbar-center) */
.tpf-logo{padding:6px 0;display:flex;align-items:center}
.uk-navbar-center .tpf-logo img{height:76px;width:auto}
/* dropdown */
.uk-navbar-dropdown-nav>li>a{font-family:'Poppins',sans-serif;font-size:14px}
.uk-navbar-dropdown-nav>li.uk-active>a,.uk-navbar-dropdown-nav>li>a:hover{color:var(--tpf-primary)}
.tm-header-mobile .uk-logo img{height:48px}

/* ---- Buttons (match UIkit/YOOtheme look) ---- */
.uk-button{border-radius:2px;text-transform:none;font-family:'Poppins',sans-serif;
  font-weight:500;letter-spacing:.03em;transition:.2s}
.uk-button-primary{background:var(--tpf-primary);color:#fff}
.uk-button-primary:hover,.uk-button-primary:focus{background:var(--tpf-primary-dark);color:#fff}
.uk-button-default{background:transparent;border:1px solid var(--tpf-ink);color:var(--tpf-ink)}
.uk-button-default:hover,.uk-button-default:focus{background:var(--tpf-ink);color:#fff}
.uk-button-text::before{border-bottom-color:var(--tpf-primary)}

/* ---- Hero peeking carousel ---- */
.tpf-hero{background:#fff;padding:0;overflow:hidden}
.tpf-slider{position:relative}
/* natural wide-and-short banner proportions so the baked letters stay intact */
.tpf-slide{overflow:hidden}
.tpf-slide img{width:100%;height:auto;display:block}
.tpf-slider .uk-slidenav{color:var(--tpf-ink);background:rgba(255,255,255,.7);
  border-radius:50%;padding:10px}
.tpf-slider .uk-slidenav:hover{background:#fff;color:var(--tpf-primary)}
.tpf-hero-tagline{font-family:'Poppins',sans-serif;color:var(--tpf-primary);
  text-align:center;font-weight:600;font-size:clamp(1.7rem,3.2vw,2.4rem);
  letter-spacing:.01em;margin:34px 0 10px}

/* ---- Sections ---- */
.uk-section-muted{background:var(--tpf-page-bg)}
.uk-section-secondary{background:var(--tpf-ink)}
.tpf-card{background:#fff;border:1px solid #eaeaea}
/* default buttons on the dark band -> light outline */
.uk-section-secondary .uk-button-default{border-color:#fff;color:#fff;background:transparent}
.uk-section-secondary .uk-button-default:hover{background:#fff;color:var(--tpf-ink)}

/* ---- Pricing page ---- */
/* PILATES wordmark sits contained + top-aligned behind the cards (like live) */
.tpf-price-banner{background-repeat:no-repeat;background-position:center top;
  background-size:contain;padding:90px 0 56px}
@media (max-width:960px){.tpf-price-banner{background-image:none!important;padding:24px 0 40px}}
.tpf-price-card{box-shadow:0 8px 30px rgba(64,64,66,.18);background:#fff}
.tpf-price-card .uk-heading-divider{border-bottom:2px solid var(--tpf-primary);padding-bottom:.3em}
.tpf-tier{margin-top:22px}
.tpf-tier h4{font-family:'Poppins',sans-serif;margin:0 0 .4em;font-weight:600}
.tpf-price-list{list-style:none;margin:0;padding:0}
.tpf-price-list li{display:flex;align-items:baseline;gap:8px;padding:5px 0;border-bottom:1px dashed #e2e5e6}
.tpf-price-list li>span:first-child{flex:1;font-weight:500}
.tpf-price{color:var(--tpf-primary);font-weight:700;font-family:'Poppins',sans-serif}

/* ---- Contact page ---- */
.tpf-contact-card address{font-style:normal;line-height:1.8;margin-bottom:1em}
.tpf-contact-card .uk-button{margin-top:auto}
.tpf-hours{list-style:none;margin:0 0 .8em;padding:0;font-size:.95rem}
.tpf-hours li{display:flex;justify-content:space-between;gap:10px;padding:4px 0;
  border-bottom:1px dashed #e2e5e6}
.tpf-hours li>span:first-child{font-weight:600}
.tpf-map{display:block;width:100%;height:380px;border:0}
@media (max-width:640px){.tpf-map{height:300px}}

/* ---- Studio gallery ---- */
.tpf-gallery-item{display:block;overflow:hidden;border-radius:6px}
.tpf-gallery-item img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .3s,opacity .3s}
.tpf-gallery-item:hover img{transform:scale(1.04);opacity:.92}

/* ---- Reviews / testimonials ---- */
.tpf-reviews .tpf-review-card{background:#fff;border:1px solid #e2e5e6;border-radius:8px;
  padding:26px 28px;box-shadow:0 4px 18px rgba(64,64,66,.07);
  height:100%;display:flex;flex-direction:column}
.tpf-stars{color:#f5a623;letter-spacing:3px;font-size:1.05rem;margin-bottom:.7em}
.tpf-review-card blockquote{margin:0 0 1.1em;border:0;padding:0;font-size:1rem;line-height:1.7;
  color:var(--tpf-ink);font-style:normal;flex:1 0 auto}
.tpf-review-by{border-top:1px solid #eee;padding-top:.9em;margin-top:auto}
.tpf-review-name{font-family:'Poppins',sans-serif;font-weight:600;color:var(--tpf-primary);display:block}
.tpf-review-cred{font-size:.85rem;color:#6b6f72}

/* ---- Blog listing cards ---- */
.tpf-blog-card{height:100%;display:flex;flex-direction:column;overflow:hidden;border:1px solid #e2e5e6}
.tpf-blog-thumb{display:block;overflow:hidden}
.tpf-blog-thumb img{width:100%;aspect-ratio:16/10;object-fit:cover;transition:transform .3s}
.tpf-blog-card:hover .tpf-blog-thumb img{transform:scale(1.04)}
.tpf-blog-date{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;
  color:var(--tpf-primary);font-weight:600;margin:0 0 .4em;font-family:'Poppins',sans-serif}
.tpf-blog-title{font-size:1.12rem;line-height:1.32;margin:0 0 .5em;font-family:'Poppins',sans-serif}
.tpf-blog-title a{color:var(--tpf-ink)}
.tpf-blog-title a:hover{color:var(--tpf-primary);text-decoration:none}

/* ---- Blog post ---- */
.tpf-post-hero{position:relative;color:#fff;padding:70px 0;text-align:center;overflow:hidden}
.tpf-post-hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.tpf-post-hero-overlay{position:absolute;inset:0;background:linear-gradient(rgba(45,45,47,.5),rgba(45,45,47,.62))}
.tpf-post-hero-content{position:relative;z-index:1}
.tpf-post-hero h1{color:#fff;max-width:920px;margin:.25em auto;font-size:clamp(1.8rem,3.6vw,2.8rem);line-height:1.2}
.tpf-post-crumbs{color:rgba(255,255,255,.85);font-size:.85rem}
.tpf-post-crumbs a{color:#fff}
.tpf-post-meta{color:rgba(255,255,255,.92);font-family:'Poppins',sans-serif;margin:.6em 0 0}
.tpf-post-meta a{color:#fff;text-decoration:underline}
.tpf-post-body{max-width:760px}
.tpf-post-body img{border-radius:6px;margin:1.6em auto;box-shadow:0 6px 24px rgba(64,64,66,.12)}
/* the post's featured image floats smaller so text wraps around it */
.tpf-post-body img.tpf-post-lead-img{float:right;width:min(420px,50%);margin:.3em 0 1.2em 1.6em}
.tpf-post-body img.tpf-post-lead-img.tpf-float-left{float:left;margin:.3em 1.6em 1.2em 0}
@media (max-width:640px){.tpf-post-body img.tpf-post-lead-img{float:none;width:100%;margin:1.2em auto}}
.tpf-post-body h2{margin-top:1.5em}
.tpf-post-cta{max-width:760px;margin:52px auto 0;background:var(--tpf-page-bg);
  border-left:4px solid var(--tpf-primary);border-radius:6px;padding:28px 32px;text-align:center}
.tpf-post-cta h3{margin-top:0}

/* ---- FAQ accordion ---- */
.tpf-faq{max-width:840px}
.tpf-faq>li{background:#fff;border:1px solid #e2e5e6;border-radius:6px;margin-top:12px;padding:6px 20px}
.tpf-faq .uk-accordion-title{font-family:'Poppins',sans-serif;font-size:1.08rem;font-weight:600;
  color:var(--tpf-ink);padding:14px 0}
.tpf-faq .uk-accordion-title::before{margin-left:12px}
.tpf-faq .uk-open .uk-accordion-title{color:var(--tpf-primary)}
.tpf-faq .uk-accordion-content{margin-top:0;padding-bottom:8px}
.tpf-faq .uk-accordion-content p{margin-top:0}

/* ---- Reusable top banner (hero) ---- */
.tpf-banner{position:relative;background-size:cover;background-position:center;
  background-repeat:no-repeat;display:flex;align-items:center;
  min-height:clamp(140px,17vw,250px);overflow:hidden}
.tpf-banner-overlay{position:absolute;inset:0;background:rgba(239,239,239,.22)}
/* span full width inside the flex banner so text-align on the title works */
.tpf-banner>.uk-container{width:100%}
.tpf-banner-title{font-family:'Poppins',sans-serif;font-weight:700;text-transform:uppercase;
  letter-spacing:.04em;color:var(--tpf-primary);margin:0;font-size:clamp(2.2rem,5.2vw,4rem);text-align:center}
@media (min-width:640px){
  .tpf-banner-title.tpf-banner-right{text-align:right}
  .tpf-banner-title.tpf-banner-left{text-align:left}
}

/* ---- Trainer cards (About / Meet the Team) ---- */
.tpf-trainer-photo{width:100%;max-width:260px;aspect-ratio:1/1;object-fit:cover;margin:0 auto}
.tpf-trainer-feature .tpf-trainer-photo{max-width:360px}
.tpf-trainer-card{height:100%}
.tpf-trainer-role{text-transform:uppercase;letter-spacing:.05em;font-weight:600;margin:.3em 0 1em}
.tpf-trainer-feature{box-shadow:0 8px 30px rgba(64,64,66,.12)}
.tpf-trainer-card .uk-heading-line span::before,.tpf-trainer-card .uk-heading-line span::after,
.tpf-trainer-feature .uk-heading-line span::before,.tpf-trainer-feature .uk-heading-line span::after{
  border-bottom-color:var(--tpf-primary)}

/* ---- Page head (interior) ---- */
.tpf-page-head{background:var(--tpf-ink);color:#fff;padding:54px 0;text-align:center}
.tpf-page-head h1{color:#fff;margin:0}
.tpf-page-head .tpf-crumbs{color:rgba(255,255,255,.7);font-size:.85rem}
.tpf-page-head .tpf-crumbs a{color:rgba(255,255,255,.9)}

/* ---- Article content ---- */
.tpf-content{max-width:820px;margin:0 auto}
.tpf-content img{border-radius:4px;margin:1.5em auto;box-shadow:0 6px 24px rgba(64,64,66,.12)}
.tpf-content h2{margin-top:1.4em}

/* ---- Signup band (slate-blue) ---- */
.uk-tile-primary,.uk-section-primary{background:var(--tpf-primary)}
.uk-section-primary p,.uk-section-primary{color:#fff}
.tpf-wendy-name{font-size:clamp(2.4rem,5vw,3.6rem)}
.tpf-signup{background:var(--tpf-primary);padding:48px 0;text-align:center}
.tpf-signup h3{color:#fff;font-family:'Poppins',sans-serif;font-size:1.4rem;margin-bottom:1.2rem}
.tpf-signup .uk-button-default{border-color:#fff;color:#fff}
.tpf-signup .uk-button-default:hover{background:#fff;color:var(--tpf-primary)}

/* ---- Footer (white, matches live) ---- */
.tm-footer{background:#fff;color:var(--tpf-ink);padding:24px 0 40px}
.tm-footer hr{margin:0 0 30px;border-top-color:#e2e5e6}
.tm-footer a{color:var(--tpf-ink)}
.tm-footer a:hover{color:var(--tpf-primary);text-decoration:none}
.tpf-foot-subnav>li>a{font-family:'Poppins',sans-serif;font-weight:500;text-transform:none;color:var(--tpf-ink)}
.tpf-foot-logo{height:64px;width:auto;display:inline-block}
.tpf-foot-copy{font-size:.85rem;color:var(--muted,#6b6f72);line-height:1.8}
.tpf-foot-copy a{color:var(--tpf-primary)}

/* ---- Cookie banner ---- */
.tpf-cookie{position:fixed;left:16px;right:16px;bottom:16px;max-width:560px;margin:0 auto;
  background:#fff;border:1px solid #eaeaea;border-radius:4px;box-shadow:0 8px 30px rgba(0,0,0,.18);
  padding:18px 20px;z-index:1010;display:flex;flex-direction:column;gap:12px}
.tpf-cookie p{margin:0;font-size:.9rem}

/* logo footer */
.tpf-footer-logo{height:60px;width:auto;margin-bottom:14px}
