/* Simply Schedule Appointments - full width booking widget */
.page-id-14 .elementor-widget-shortcode,
.page-id-14 .elementor-widget-shortcode .elementor-widget-container,
.page-id-14 .elementor-shortcode {
	width: 100% !important;
	max-width: 100% !important;
	flex: 1 1 100% !important;
	align-self: stretch !important;
}
.page-id-14 .ssa_booking_iframe {
	width: 100% !important;
	min-width: 100% !important;
	min-height: 900px !important;
	border-radius: 12px;
}
@media (max-width: 767px) {
	.page-id-14 .ssa_booking_iframe { min-height: 1100px !important; }
}

:root{
  --tjhb-primary:#4A2418; --tjhb-primary-dark:#301006; --tjhb-secondary:#8A4F3D;
  --tjhb-gold:#D6A23D; --tjhb-soft-gold:#F5BE56; --tjhb-cream:#FFF9EF; --tjhb-surface:#FAF3E7;
  --tjhb-white:#FFFFFF; --tjhb-text:#1E1B14; --tjhb-text-soft:#514440; --tjhb-border:#D6C2BD;
  --tjhb-header-h:88px; --tjhb-mab-h:64px;
}
body{ font-family:'Plus Jakarta Sans',sans-serif; color:var(--tjhb-text); background:var(--tjhb-cream); padding-bottom:var(--tjhb-mab-h); }
h1,h2,h3,h4,h5{ font-family:'Playfair Display',serif; color:var(--tjhb-primary-dark); }
a{ text-decoration:none; color:inherit; }

/* HEADER */
.tjhb-header{ position:sticky; top:0; z-index:999; background:rgba(255,249,239,0.97); backdrop-filter:blur(6px); border-bottom:1px solid transparent; transition:border-color .3s ease, box-shadow .3s ease; }
.tjhb-header.tjhb-scrolled{ border-bottom-color:var(--tjhb-gold); box-shadow:0 4px 20px rgba(74,36,24,0.06); }
.tjhb-header-inner{ max-width:1280px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; padding:16px 24px; height:var(--tjhb-header-h); box-sizing:border-box; gap:24px; }
.tjhb-logo{ display:flex; align-items:center; gap:10px; flex-shrink:0; }
.tjhb-logo-mark{ display:flex; align-items:center; justify-content:center; width:40px; height:40px; border-radius:10px; background:var(--tjhb-primary); color:#fff; font-family:'Playfair Display',serif; font-weight:700; font-size:16px; }
.tjhb-logo-text{ font-family:'Playfair Display',serif; font-weight:600; font-size:19px; color:var(--tjhb-primary-dark); white-space:nowrap; }

.tjhb-nav{ flex:1; display:flex; justify-content:center; min-width:0; }
.tjhb-menu{ display:flex; list-style:none; margin:0; padding:0; gap:28px; align-items:center; }
.tjhb-menu>li{ position:relative; }
.tjhb-menu>li>a{ font-size:15px; font-weight:500; color:var(--tjhb-text); padding:8px 2px; white-space:nowrap; }
.tjhb-menu>li>a:hover{ color:var(--tjhb-secondary); }
.tjhb-menu .sub-menu{ display:none; position:absolute; top:100%; left:50%; transform:translateX(-50%); background:var(--tjhb-white); border:1px solid var(--tjhb-border); border-radius:12px; box-shadow:0 12px 32px rgba(74,36,24,0.12); list-style:none; margin:8px 0 0; padding:10px; min-width:220px; max-height:70vh; overflow-y:auto; z-index:1000; }
.tjhb-menu li.menu-item-has-children:hover .sub-menu{ display:block; }
.tjhb-menu .sub-menu li a{ display:block; padding:8px 12px; border-radius:8px; font-size:14px; white-space:nowrap; }
.tjhb-menu .sub-menu li a:hover{ background:var(--tjhb-surface); color:var(--tjhb-secondary); }

.tjhb-header-actions{ display:flex; align-items:center; gap:16px; flex-shrink:0; }
.tjhb-phone-link{ font-size:14px; font-weight:600; color:var(--tjhb-secondary); white-space:nowrap; }
.tjhb-btn{ display:inline-block; padding:12px 24px; border-radius:999px; font-size:14px; font-weight:600; white-space:nowrap; transition:background .3s ease,color .3s ease,border-color .3s ease; }
.tjhb-btn-primary{ background:var(--tjhb-primary); color:#fff; }
.tjhb-btn-primary:hover{ background:var(--tjhb-gold); color:var(--tjhb-primary-dark); }
.tjhb-btn-outline{ background:transparent; border:1.5px solid var(--tjhb-gold); color:var(--tjhb-primary-dark); }
.tjhb-btn-outline:hover{ background:var(--tjhb-soft-gold); }
.tjhb-btn-sm{ padding:9px 16px; font-size:13px; }

.tjhb-hamburger{ display:none; flex-direction:column; justify-content:center; gap:5px; width:40px; height:40px; background:none; border:none; cursor:pointer; flex-shrink:0; }
.tjhb-hamburger span{ display:block; width:22px; height:2px; background:var(--tjhb-primary-dark); margin:0 auto; }

.tjhb-mobile-menu{ display:none; }

@media (max-width:980px){
  .tjhb-nav, .tjhb-header-actions .tjhb-btn-primary, .tjhb-phone-link{ display:none; }
  .tjhb-hamburger{ display:flex; }
  .tjhb-header-inner{ padding:14px 20px; height:auto; }
  .tjhb-mobile-menu{ display:block; max-height:0; overflow:hidden; background:var(--tjhb-white); transition:max-height .3s ease; border-top:1px solid var(--tjhb-border); }
  .tjhb-mobile-menu.tjhb-open{ max-height:80vh; overflow-y:auto; }
  .tjhb-mobile-menu-list{ list-style:none; margin:0; padding:12px 20px; }
  .tjhb-mobile-menu-list li{ border-bottom:1px solid var(--tjhb-surface); }
  .tjhb-mobile-menu-list>li>a{ display:block; padding:14px 4px; font-size:16px; font-weight:500; }
  .tjhb-mobile-menu-list .sub-menu{ list-style:none; margin:0 0 10px; padding:0 0 0 14px; display:none; }
  .tjhb-mobile-menu-list li.tjhb-submenu-open .sub-menu{ display:block; }
  .tjhb-mobile-menu-list .sub-menu li a{ display:block; padding:10px 4px; font-size:14px; color:var(--tjhb-text-soft); }
  .tjhb-mobile-book{ display:block; text-align:center; margin:16px 20px; }
}

/* FOOTER */
.tjhb-footer{ background:var(--tjhb-primary-dark); color:var(--tjhb-cream); padding:80px 24px 32px; margin-top:80px; }
.tjhb-footer-inner{ max-width:1280px; margin:0 auto; display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:48px; }
.tjhb-footer-col h4{ color:var(--tjhb-soft-gold); font-size:14px; text-transform:uppercase; letter-spacing:0.05em; margin:0 0 18px; font-family:'Plus Jakarta Sans',sans-serif; font-weight:600; }
.tjhb-footer-brand p{ font-size:14px; line-height:1.7; color:rgba(255,249,239,0.75); margin:16px 0; max-width:320px; }
.tjhb-footer-brand .tjhb-logo-text{ color:var(--tjhb-cream); }
.tjhb-footer-brand .tjhb-logo-mark{ background:var(--tjhb-gold); color:var(--tjhb-primary-dark); }
.tjhb-footer-social{ display:flex; gap:12px; }
.tjhb-footer-social a{ display:flex; align-items:center; justify-content:center; width:36px; height:36px; border-radius:50%; border:1px solid rgba(255,249,239,0.3); font-size:15px; color:var(--tjhb-cream); transition:background .3s ease,color .3s ease; }\n.tjhb-footer-social a:hover{ background:var(--tjhb-gold); color:var(--tjhb-primary-dark); border-color:var(--tjhb-gold); }
.tjhb-footer-col ul{ list-style:none; margin:0; padding:0; }
.tjhb-footer-col ul li{ margin-bottom:12px; }
.tjhb-footer-col ul li a{ font-size:14px; color:rgba(255,249,239,0.8); }
.tjhb-footer-col ul li a:hover{ color:var(--tjhb-soft-gold); }
.tjhb-footer-info{ font-size:14px; color:rgba(255,249,239,0.85); margin:0 0 10px; line-height:1.5; }
.tjhb-footer-cta{ display:flex; flex-direction:column; gap:10px; margin-top:20px; }
.tjhb-footer-cta .tjhb-btn-outline{ border-color:rgba(255,249,239,0.4); color:var(--tjhb-cream); text-align:center; }
.tjhb-footer-cta .tjhb-btn-primary{ background:var(--tjhb-gold); color:var(--tjhb-primary-dark); text-align:center; }

.tjhb-footer-bottom{ max-width:1280px; margin:56px auto 0; padding-top:24px; border-top:1px solid rgba(255,249,239,0.15); display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; font-size:13px; color:rgba(255,249,239,0.6); }
.tjhb-footer-legal-list{ display:flex; flex-wrap:wrap; gap:20px; list-style:none; margin:0; padding:0; }
.tjhb-footer-legal-list a{ color:rgba(255,249,239,0.6); }
.tjhb-footer-legal-list a:hover{ color:var(--tjhb-soft-gold); }

@media (max-width:900px){
  .tjhb-footer-inner{ grid-template-columns:1fr 1fr; }
}
@media (max-width:560px){
  .tjhb-footer-inner{ grid-template-columns:1fr; }
  .tjhb-footer{ padding:56px 20px 24px; }
}

/* MOBILE ACTION BAR */
.tjhb-mobile-action-bar{ display:none; }
@media (max-width:980px){
  .tjhb-mobile-action-bar{ display:flex; position:fixed; bottom:0; left:0; right:0; height:var(--tjhb-mab-h); background:var(--tjhb-white); border-top:1px solid var(--tjhb-border); box-shadow:0 -4px 16px rgba(74,36,24,0.08); z-index:998; }
  .tjhb-mab-item{ flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; font-size:11px; font-weight:600; color:var(--tjhb-text-soft); }
  .tjhb-mab-icon{ font-size:18px; }
  .tjhb-mab-primary{ background:var(--tjhb-primary); color:#fff; margin:8px; border-radius:14px; }
  .tjhb-mab-primary .tjhb-mab-icon{ color:#fff; }
}

/* Calendly booking widget - full width fix */
.elementor-element-44b61a5.e-con { width: 100% !important; }
.elementor-element-44b61a5 .elementor-widget-html,
.elementor-element-44b61a5 .elementor-widget-container { width: 100% !important; flex: 1 1 100% !important; max-width: 100% !important; }
.calendly-inline-widget { width: 100% !important; max-width: 1100px; margin: 0 auto; }
.calendly-inline-widget iframe { width: 100% !important; }


/* MOBILE HEADER + FULL WIDTH FIXES */
@media (max-width:1024px){
  #elementor-widget-8658b8c .hfe-nav-menu__toggle,
  .elementor-widget-navigation-menu .hfe-nav-menu__toggle,
  .hfe-nav-menu__toggle {
    margin-left: auto !important;
    margin-right: 0 !important;
    justify-content: flex-end !important;
  }
  .elementor-357 .elementor-element-f151d86 > .elementor-widget-wrap,
  .elementor-357 .elementor-element-f151d86 .elementor-widget-navigation-menu {
    display: flex;
    justify-content: flex-end;
    width: 100%;
  }
}
@media (max-width:767px){
  .elementor-section.elementor-section-boxed > .elementor-container,
  .e-con.e-con-boxed > .e-con-inner {
    max-width: 100% !important;
  }
  .elementor-section, .e-con, .elementor-container, .e-con-inner {
    max-width: 100% !important;
  }
  body, .site, .elementor-page, #page { overflow-x: hidden; width: 100%; }
}
