/*
Theme Name: SALTY FATTY
Theme URI: https://saltyfatty.com/
Author: SALTY FATTY LLC
Description: Minimal, high-contrast starter theme for SALTY FATTY.
Version: 1.4.0
License: GPL-2.0-or-later
Text Domain: salty-fatty
*/
:root{
  --sf-black:#000;
  --sf-white:#fff;
  --sf-red:#ff1111;
  --sf-max:1400px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--sf-black);
  color:var(--sf-white);
  font-family:Impact,"Arial Narrow","Helvetica Neue",Arial,sans-serif;
  text-transform:uppercase;
}
a{color:inherit;text-decoration:none}

/* Header */
.site-header{
  position:absolute;
  inset:0 0 auto 0;
  z-index:10;
  padding:18px 48px;
}
body.admin-bar .site-header{top:32px}
.header-inner{
  width:100%;
  max-width:var(--sf-max);
  margin:auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:32px;
}
.site-wordmark{
  font-size:30px;
  line-height:1;
  letter-spacing:.02em;
  white-space:nowrap;
}
.site-wordmark .fatty{color:var(--sf-red)}
.main-nav ul{
  list-style:none;
  display:flex;
  align-items:center;
  gap:40px;
  padding:0;
  margin:0;
}
.main-nav a{
  font-size:18px;
  line-height:1;
  letter-spacing:.04em;
  padding:8px 0;
}
.main-nav a:hover,
.main-nav .current-menu-item a{color:var(--sf-red)}

/* Home: bold desktop composition that fits in one viewport without scrolling. */
body.home{overflow:hidden}
.hero{
  height:100vh;
  min-height:0;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  padding:clamp(68px,8vh,86px) 28px 74px;
  overflow:hidden;
}
body.admin-bar .hero{height:calc(100vh - 32px);padding-top:clamp(68px,8vh,86px)}
.hero-inner{
  width:100%;
  max-width:1280px;
  margin:0 auto;
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
}
/* These are the separate supplied brand assets — keep them large and crisp. */
.wolf-emblem{
  display:block;
  width:min(200px,20vw,24vh);
  max-width:none;
  height:auto;
  margin:0 auto;
  flex:0 0 auto;
}
.wordmark-image{
  display:block;
  width:min(600px,48vw,68vh);
  max-width:none;
  height:auto;
  margin:10px auto 0;
  flex:0 0 auto;
}
.hero-message{
  width:100%;
  max-width:1240px;
  margin:14px auto 0;
}
.hero-message h1{
  margin:0;
  font-size:clamp(27px,2.05vw,34px);
  line-height:.88;
  letter-spacing:.012em;
}
.hero-message h1 .hero-line{
  display:block;
  width:100%;
  white-space:nowrap;
}
.hero-message p{
  margin:clamp(28px,3.2vh,34px) auto 0;
  font-size:clamp(21px,1.55vw,26px);
  line-height:1.05;
  letter-spacing:.02em;
}
.pack-link{
  display:inline-block;
  margin-top:clamp(14px,1.8vh,20px);
  padding:12px 28px;
  border:2px solid var(--sf-red);
  color:var(--sf-red);
  font-size:clamp(18px,1.25vw,21px);
  line-height:1;
  letter-spacing:.02em;
  transition:background .18s ease,color .18s ease;
}
.pack-link:hover,.pack-link:focus{
  background:var(--sf-red);
  color:var(--sf-black);
}

/* Footer */
.site-footer{
  border-top:1px solid #333;
  padding:18px 48px;
  background:var(--sf-black);
}
body.home .site-footer{
  position:fixed;
  left:0;
  right:0;
  bottom:0;
  z-index:10;
}
.footer-inner{
  width:100%;
  max-width:var(--sf-max);
  margin:auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  font-family:"Arial Narrow","Helvetica Neue",Arial,sans-serif;
  font-size:13px;
  line-height:1;
  letter-spacing:.06em;
}
.footer-links{display:flex;align-items:center;gap:18px}
.footer-links a:hover{color:var(--sf-red)}

/* Interior pages */
.page-content{
  min-height:100vh;
  padding:140px 28px 90px;
  max-width:1000px;
  margin:auto;
}
.page-content h1{font-size:clamp(42px,6vw,78px);line-height:1;margin-bottom:40px}
.page-content p,.page-content li{
  font-family:"Helvetica Neue",Arial,sans-serif;
  text-transform:none;
  font-size:18px;
  line-height:1.65;
}

@media (max-width:760px){
  body.home{overflow:auto}
  .site-header{position:absolute;padding:16px 20px}
  body.admin-bar .site-header{top:46px}
  .header-inner{align-items:flex-start;gap:18px}
  .site-wordmark{font-size:23px}
  .main-nav ul{gap:13px;flex-wrap:wrap;justify-content:flex-end}
  .main-nav a{font-size:12px}
  .hero,
  body.admin-bar .hero{
    height:auto;
    min-height:100svh;
    padding:110px 20px 110px;
  }
  .wolf-emblem{width:min(210px,48vw)}
  .wordmark-image{width:min(560px,88vw);max-width:88vw;margin-top:30px}
  .hero-message{margin-top:42px}
  .hero-message h1{font-size:clamp(24px,7vw,34px)}
  .hero-message h1 .hero-line{white-space:normal}
  .hero-message p{margin-top:30px;font-size:clamp(19px,5.5vw,27px)}
  .pack-link{margin-top:32px;width:100%;max-width:500px;padding:15px 18px}
  body.home .site-footer{position:relative}
  .site-footer{padding:18px 20px}
  .footer-inner{flex-direction:column;align-items:center;text-align:center;line-height:1.3}
}

/* Coaching page */
body.page-template-page-coaching{overflow:hidden}
.coaching-page{min-height:calc(100vh - 32px);padding:92px 34px 28px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.coaching-inner{width:100%;max-width:1450px;margin:0 auto;text-align:center}
.coaching-title{margin:0 0 22px;font-size:clamp(54px,5.8vw,88px);line-height:.85;letter-spacing:.02em;color:var(--sf-red)}
.coaching-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.service-card{height:248px;perspective:1200px}
.service-card-inner{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .55s ease}
.service-card.is-flipped .service-card-inner{transform:rotateY(180deg)}
.service-face{position:absolute;inset:0;backface-visibility:hidden;border:2px solid var(--sf-red);padding:24px 24px 18px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;background:#050505}
.service-back{transform:rotateY(180deg)}
.service-face h2{margin:0;width:100%;padding-bottom:12px;border-bottom:2px solid var(--sf-red);font-size:clamp(27px,2.25vw,39px);line-height:1;letter-spacing:.025em;color:var(--sf-white)}
.service-face h2 .red{color:var(--sf-red)}
.service-front-copy{font-size:clamp(18px,1.35vw,23px);line-height:1.08;letter-spacing:.025em;max-width:620px}
.red{color:var(--sf-red)}
.flip-button{width:100%;border:2px solid var(--sf-red);background:transparent;color:var(--sf-white);padding:10px 12px;font:inherit;font-size:clamp(14px,1.1vw,18px);line-height:1;letter-spacing:.03em;cursor:pointer;text-transform:uppercase}
.flip-button:hover,.flip-button:focus{background:var(--sf-red);color:var(--sf-black)}
.flip-button span{font-size:1.2em;margin-left:8px}
.flip-back{width:auto;padding:7px 14px;font-size:12px}
.pricing-row{width:100%;display:flex;align-items:baseline;gap:14px;text-align:left}
.pricing-row strong{font-size:clamp(38px,3.1vw,54px);line-height:1;white-space:nowrap}
.pricing-row span{font-size:clamp(13px,1vw,17px);line-height:1.05}
.integrated-copy{font-size:clamp(17px,1.25vw,21px);line-height:1.15}
.additional-call{font-size:clamp(16px,1.15vw,20px);line-height:1.25}
.fitness-price{width:100%;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:clamp(14px,1.05vw,18px);line-height:1.08}
.fitness-price strong{font-size:clamp(30px,2.5vw,44px);line-height:1}
.fitness-price small{font-family:"Helvetica Neue",Arial,sans-serif;text-transform:none;font-size:11px;line-height:1.2;letter-spacing:0}
.commitment-bar{margin:12px auto 0;border:2px solid var(--sf-red);padding:9px 14px;font-size:clamp(15px,1.15vw,19px);line-height:1;letter-spacing:.03em}
.consultation{margin-top:13px}
.consultation-button{display:inline-block;border:2px solid var(--sf-red);color:var(--sf-red);padding:9px 16px;font:inherit;font-size:15px;line-height:1;letter-spacing:.03em;margin-bottom:7px;transition:background .18s ease,color .18s ease}
.consultation-button:hover,.consultation-button:focus{background:var(--sf-red);color:var(--sf-black)}
.consultation-button span{font-size:1.2em;margin-left:7px}
.consultation h2{margin:0;font-size:clamp(26px,2.2vw,38px);line-height:1;letter-spacing:.02em}
.consultation p{margin:7px auto 0;font-family:"Helvetica Neue",Arial,sans-serif;text-transform:uppercase;font-weight:700;font-size:clamp(11px,.9vw,14px);line-height:1.15;letter-spacing:.02em}
@media (max-width:900px){
  body.page-template-page-coaching{overflow:auto}
  .coaching-page{min-height:100svh;height:auto;padding:105px 18px 50px;overflow:visible}
  .coaching-grid{grid-template-columns:1fr;gap:14px}
  .service-card{height:230px}
  .coaching-title{margin-bottom:18px}
  .commitment-bar{margin-top:14px}
  .consultation{margin-top:18px}
}

/* Contact page */
body.page-template-page-contact{overflow:hidden}
.contact-page{min-height:calc(100vh - 32px);padding:104px 34px 34px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.contact-inner{width:100%;max-width:1380px;margin:0 auto;text-align:center}
.contact-title{margin:0 0 22px;color:var(--sf-red);font-size:clamp(54px,5.8vw,88px);line-height:.85;letter-spacing:.02em}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.contact-panel{border:2px solid var(--sf-red);min-height:330px;padding:28px 34px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#050505}
.contact-panel h2{margin:0 0 32px;font-size:clamp(28px,2.4vw,40px);line-height:1.02;letter-spacing:.025em}
.contact-info h2{margin-bottom:36px}
.contact-item{width:100%;margin:0 0 28px}
.contact-item:last-child{margin-bottom:0}
.contact-label{font-size:clamp(17px,1.3vw,22px);line-height:1;margin-bottom:9px;letter-spacing:.03em}
.contact-item a{font-size:clamp(18px,1.45vw,24px);line-height:1.1;letter-spacing:.025em}
.contact-booking h2{margin-bottom:28px}
.contact-booking h2 span span{display:inline-block}
.fit-heading{font-size:clamp(17px,1.25vw,21px);line-height:1;margin-bottom:23px}
.fit-list{display:flex;flex-direction:column;gap:11px;font-size:clamp(16px,1.2vw,20px);line-height:1.05;letter-spacing:.025em}
.schedule-button{display:inline-block;margin-top:29px;padding:13px 27px;border:2px solid var(--sf-red);color:var(--sf-red);font-size:clamp(17px,1.2vw,20px);line-height:1;letter-spacing:.025em;transition:background .18s ease,color .18s ease}
.schedule-button:hover,.schedule-button:focus{background:var(--sf-red);color:var(--sf-black)}
.schedule-button span{font-size:1.15em;margin-left:8px}
.contact-brand{margin-top:18px;display:flex;flex-direction:column;align-items:center}
.contact-wolf{display:block;width:min(105px,11vw,13vh);height:auto}
.contact-wordmark{display:block;width:min(360px,30vw,38vh);height:auto;margin-top:5px}
@media (max-width:900px){
  body.page-template-page-contact{overflow:auto}
  .contact-page{min-height:100svh;height:auto;padding:105px 18px 50px;overflow:visible}
  .contact-grid{grid-template-columns:1fr;gap:14px}
  .contact-panel{min-height:280px;padding:24px 22px}
  .contact-title{margin-bottom:18px}
  .contact-brand{margin-top:18px}
  .contact-wolf{width:min(150px,35vw)}
  .contact-wordmark{width:min(430px,78vw);max-width:78vw}
}

/* Contact visual refinements — approved layout */
body.page-template-page-contact .site-footer{display:none}
body.page-template-page-contact .contact-page{min-height:100vh;height:100vh;padding:78px 34px 24px}
body.admin-bar.page-template-page-contact .contact-page{min-height:calc(100vh - 32px);height:calc(100vh - 32px)}
body.page-template-page-contact .contact-title{margin-bottom:12px}
body.page-template-page-contact .contact-grid{gap:28px}
body.page-template-page-contact .contact-panel{min-height:350px;padding:30px 56px}
body.page-template-page-contact .contact-info{align-items:flex-start}
body.page-template-page-contact .contact-info h2{align-self:center;margin-bottom:38px}
body.page-template-page-contact .contact-item{display:flex;align-items:center;gap:34px;margin-bottom:32px}
body.page-template-page-contact .contact-icon{width:78px;height:78px;flex:0 0 78px;border:2px solid var(--sf-red);color:var(--sf-white);display:flex;align-items:center;justify-content:center}
body.page-template-page-contact .contact-icon svg{width:52px;height:52px}
body.page-template-page-contact .contact-copy{min-width:0;text-align:left}
body.page-template-page-contact .contact-label{margin-bottom:8px}
body.page-template-page-contact .contact-item a{white-space:nowrap}
body.page-template-page-contact .contact-booking h2{margin-bottom:28px}
body.page-template-page-contact .fit-heading{margin-bottom:25px}
body.page-template-page-contact .fit-list{gap:15px}
body.page-template-page-contact .schedule-button{margin-top:31px;background:var(--sf-red);color:var(--sf-white);border-color:var(--sf-red);min-width:78%;padding:15px 28px}
body.page-template-page-contact .schedule-button:hover,body.page-template-page-contact .schedule-button:focus{background:var(--sf-white);color:var(--sf-black)}
body.page-template-page-contact .contact-brand{margin-top:14px;flex-direction:row;justify-content:center;gap:22px}
body.page-template-page-contact .contact-wolf{width:min(125px,10vw,15vh)}
body.page-template-page-contact .contact-wordmark{width:min(470px,36vw,45vh);margin-top:0}
@media (max-width:900px){
  body.page-template-page-contact .contact-page,body.admin-bar.page-template-page-contact .contact-page{height:auto;min-height:100svh;padding:105px 18px 50px}
  body.page-template-page-contact .contact-grid{grid-template-columns:1fr;gap:14px}
  body.page-template-page-contact .contact-panel{min-height:280px;padding:24px 22px}
  body.page-template-page-contact .contact-info h2{margin-bottom:30px}
  body.page-template-page-contact .contact-item{gap:18px}
  body.page-template-page-contact .contact-icon{width:64px;height:64px;flex-basis:64px}
  body.page-template-page-contact .contact-icon svg{width:44px;height:44px}
  body.page-template-page-contact .contact-item a{white-space:normal}
  body.page-template-page-contact .contact-brand{flex-direction:column;gap:5px}
  body.page-template-page-contact .contact-wolf{width:min(150px,35vw)}
  body.page-template-page-contact .contact-wordmark{width:min(430px,78vw);max-width:78vw}
}


/* Contact page compact desktop layout — tuned for the 1024px CSS viewport used by WordPress Live Preview. */
@media (min-width:901px) and (max-width:1200px){
  body.page-template-page-contact .contact-page{
    height:calc(100vh - 32px);
    min-height:0;
    padding:72px 24px 16px;
  }
  body.page-template-page-contact .contact-inner{
    max-width:980px;
  }
  body.page-template-page-contact .contact-title{
    font-size:58px;
    line-height:.86;
    margin-bottom:10px;
  }
  body.page-template-page-contact .contact-grid{
    gap:16px;
  }
  body.page-template-page-contact .contact-panel{
    min-height:290px;
    padding:22px 26px;
  }
  body.page-template-page-contact .contact-panel h2{
    font-size:29px;
    line-height:1;
    margin-bottom:20px;
  }
  body.page-template-page-contact .contact-info h2{
    margin-bottom:22px;
  }
  body.page-template-page-contact .contact-item{
    gap:18px;
    margin-bottom:18px;
  }
  body.page-template-page-contact .contact-icon{
    width:58px;
    height:58px;
    flex:0 0 58px;
    border-width:2px;
  }
  body.page-template-page-contact .contact-icon svg{
    width:38px;
    height:38px;
  }
  body.page-template-page-contact .contact-label{
    font-size:17px;
    margin-bottom:5px;
  }
  body.page-template-page-contact .contact-item a{
    font-size:18px;
    white-space:nowrap;
  }
  body.page-template-page-contact .contact-booking h2{
    font-size:27px;
    margin-bottom:18px;
  }
  body.page-template-page-contact .fit-heading{
    font-size:17px;
    margin-bottom:17px;
  }
  body.page-template-page-contact .fit-list{
    gap:9px;
    font-size:17px;
  }
  body.page-template-page-contact .schedule-button{
    margin-top:20px;
    min-width:62%;
    padding:12px 22px;
    font-size:17px;
    background:#ff1111 !important;
    color:#fff !important;
    border-color:#ff1111 !important;
  }
  body.page-template-page-contact .contact-brand{
    margin-top:10px;
    gap:14px;
  }
  body.page-template-page-contact .contact-wolf{
    width:78px;
  }
  body.page-template-page-contact .contact-wordmark{
    width:300px;
  }
}


/* Contact rendering safeguard: do not depend on a WordPress body-template class. */
.contact-page {
  min-height: calc(100vh - 32px);
  height: calc(100vh - 32px);
  padding: 72px 34px 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  box-sizing: border-box;
}
.contact-page .contact-inner { width: 100%; max-width: 1320px; margin: 0 auto; text-align: center; }
.contact-page .contact-title { margin: 0 0 16px; color: var(--sf-red); font-size: clamp(52px, 5vw, 76px); line-height: .86; }
.contact-page .contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.contact-page .contact-panel { border: 2px solid var(--sf-red); min-height: 0; height: 310px; padding: 22px 34px; box-sizing: border-box; display: flex; flex-direction: column; align-items: center; justify-content: center; background: #050505; }
.contact-page .contact-panel h2 { margin: 0 0 24px; font-size: clamp(25px, 2.2vw, 34px); line-height: 1.02; }
.contact-page .contact-info { align-items: center; }
.contact-page .contact-info h2 { margin-bottom: 24px; }
.contact-page .contact-item { width: auto; min-width: 390px; display: flex; align-items: center; gap: 18px; margin: 0 0 20px; }
.contact-page .contact-item:last-child { margin-bottom: 0; }
.contact-page .contact-icon { width: 58px; height: 58px; flex: 0 0 58px; border: 2px solid var(--sf-red); color: var(--sf-white); display: flex; align-items: center; justify-content: center; box-sizing: border-box; }
.contact-page .contact-icon svg { width: 36px; height: 36px; }
.contact-page .contact-copy { text-align: left; min-width: 0; }
.contact-page .contact-label { font-size: 16px; line-height: 1; margin-bottom: 5px; }
.contact-page .contact-item a { font-size: 18px; line-height: 1.1; white-space: nowrap; }
.contact-page .contact-booking h2 { margin-bottom: 20px; }
.contact-page .fit-heading { font-size: 16px; line-height: 1; margin-bottom: 17px; }
.contact-page .fit-list { gap: 9px; font-size: 17px; line-height: 1.05; }
.contact-page .schedule-button { display: inline-block; margin-top: 20px; min-width: 230px; padding: 12px 22px; border: 2px solid var(--sf-red); background: var(--sf-red); color: var(--sf-white); font-size: 17px; line-height: 1; }
.contact-page .contact-brand { margin-top: 12px; display: flex; flex-direction: row; justify-content: center; align-items: center; gap: 16px; }
.contact-page .contact-wolf { width: 76px; height: auto; }
.contact-page .contact-wordmark { width: 300px; height: auto; margin-top: 0; }
@media (max-width: 900px) {
  .contact-page { height: auto; min-height: 100svh; padding: 105px 18px 50px; overflow: visible; }
  .contact-page .contact-grid { grid-template-columns: 1fr; gap: 14px; }
  .contact-page .contact-panel { height: auto; min-height: 280px; padding: 24px 22px; }
  .contact-page .contact-item { min-width: 0; width: 100%; }
  .contact-page .contact-brand { flex-direction: column; gap: 5px; }
  .contact-page .contact-wolf { width: min(150px, 35vw); }
  .contact-page .contact-wordmark { width: min(430px, 78vw); }
}

/* SALTY FATTY contact page — centered single panel */
body.page-template-page-contact .contact-grid {
  grid-template-columns: minmax(0, 760px);
  justify-content: center;
}

body.page-template-page-contact .contact-booking {
  display: none;
}

body.page-template-page-contact .contact-info {
  align-items: center;
  text-align: center;
}

body.page-template-page-contact .contact-info h2 {
  text-align: center;
}

body.page-template-page-contact .contact-item {
  justify-content: center;
}

body.page-template-page-contact .contact-copy {
  text-align: left;
}

@media (max-width: 900px) {
  body.page-template-page-contact .contact-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

body.page-template-page-contact .contact-grid {
  display: flex;
  justify-content: center;
}

body.page-template-page-contact .contact-grid > .contact-info {
  width: 100%;
  max-width: 760px;
}

body.page-template-page-contact .contact-grid > .contact-booking {
  display: none !important;
}