

#toggle-menu {
  display: flex;
  align-items: center;
  gap: 0px !important; /* try 4px or 6px for tighter fit */
}

@media (max-width: 768px) {
  #toggle-menu {
    display: flex !important;
    align-items: center !important;
    gap: 8px;
    padding-left: 4px !important;
    background: none;
    border: none;
    cursor: pointer;
    height: 40px; /* Match icon bar */
  }

  #toggle-menu span.hamburger-icon {
    position: relative;
    top: -4px; /* ← tweak this until perfectly centered */
    font-size: 34px !important;
    color: #000;
    line-height: 1;
    display: inline-block;
  }

  #toggle-menu img.fade-in-logo {
    height: 24px;
    vertical-align: middle;
    display: inline-block;
  }

  .header-social-icons {
    top: 0;
    height: 40px;
    display: flex !important;
    align-items: center !important;
  }

  .header-social-icons a img {
    vertical-align: middle;
  }
}

.no-wrap {
  white-space: nowrap;
}

@media (max-width: 768px) {
  .no-wrap {
    font-size: 1.2rem; /* tweak as needed */
  }
}


#toggle-menu.button {
  box-shadow: none !important;
  transition: none !important;
}

@media (max-width: 768px) {
  #toggle-menu.button {
    background-color: #ffffff !important; /* Pure white */
  }

  /* Optional: ensure it's reset after closing menu */
  input[type="checkbox"]#toggle:not(:checked) + label#toggle-menu.button {
    background-color: #ffffff !important;
    color: #111111 !important;
    border-color: #111111 !important;
  }
}


.left-align {
  text-align: left !important;
}


.custom-header-padding1 {
  padding-top: 25px !important;     /* space above the header */
  padding-bottom: 70px !important;  /* space below */
  padding-left: 0px !important;    /* space to the left */
  padding-right: 0px !important;   /* space to the right */
}

.custom-header-padding2 {
  padding-top: 25px !important;     /* space above the header */
  padding-bottom: 0px !important;  /* space below */
  padding-left: 0px !important;    /* space to the left */
  padding-right: 0px !important;   /* space to the right */
}

/* Remove gap/padding between these specific columns */
.column-top-image {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

.column-header-text {
  margin-top: 0 !important;
  padding-top: 0 !important;
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

.column-intro-paragraph {
  margin-top: 0 !important;
  padding-top: 0 !important;
}


.icon-row {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important; /* ensures vertical alignment */
  gap: 30px !important;
  margin: 10px 0 !important;
}

.icon-row img {
  width: 50px !important;
  height: 50px !important;
  max-width: 50px !important;
  max-height: 50px !important;
  object-fit: contain !important;
  display: inline-block !important;
  margin: 0 !important;
  padding: 0 !important;
  vertical-align: middle !important;
  line-height: 1 !important;
  box-sizing: border-box !important;
}

  .icon-row {
    width: 100% !important;
    justify-content: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

	.icon-row,
.icon-row * {
  text-align: center;
}


/* SINGLE ICON ROW */
.icon-row2 {
  display: flex;
  justify-content: center;
  align-items: center;

  width: 100%;
  margin: 10px auto;
  box-sizing: border-box;
}

/* Remove Gutenberg default image spacing */
.icon-row2 .wp-block-image {
  margin: 0;
}

/* Keep link tight to icon */
.icon-row2 a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* Icon sizing */
.icon-row2 img {
  width: 80px;
  height: 80px;
  display: block;
  object-fit: contain;
}



/* SINGLE ICON ROW */
.icon-row3 {
  display: flex;
  justify-content: center;
  align-items: center;

  width: 100%;
  margin: 10px auto;
  box-sizing: border-box;
}

/* Remove Gutenberg default image spacing */
.icon-row3 .wp-block-image {
  margin: 0;
}

/* Keep link tight to icon */
.icon-row3 a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* Icon sizing */
.icon-row3 img {
  width: 83px;
  height: 83px;
  display: block;
  object-fit: contain;
}

.icon-row3 {
  display: flex;
  justify-content: center;
  align-items: center;

  width: 100%;
  margin: 10px auto;
  box-sizing: border-box;

  transform: translateX(4px); /* ← shift right by X px */
}




@media (min-width: 769px) {
  #site-navigation {
    max-width: 1200px; /* Match your content container */
    margin: 0 auto;
    left: 0;
    right: 0;
    padding: 0 20px;
  }
}

/* === FIXED HEADER STYLES === */
#site-navigation {
  position: fixed !important;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 9999 !important; /* Ensure it's on top */
  background-color: #000; /* Match your header background */
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2); /* Optional */
}

/* Make sure sticky buttons fall below menu */
.sticky-button-group {
  position: relative; /* Or sticky if it's sticky */
  z-index: 1000 !important;
}

/* Prevent content from being hidden behind fixed nav */
body {
  padding-top: 15px; /* Adjust based on header height */
}

/* === SOCIAL ICONS === */

/* Desktop: completely hide */
@media (min-width: 769px) {
  .header-social-icons {
    display: none !important;
  }
}

/* Base icon image size */
.header-social-icons a img {
  width: 26px !important;
  height: 26px !important;
}

@media (max-width: 768px) {
  .header-social-icons {
    position: absolute !important;
    top: 0;
    right: 10px;
    display: flex !important;
    flex-direction: row !important;
    gap: 8px !important;
    background-color: transparent;
    z-index: 10001 !important;
    padding: 0;
    align-items: center;
    height: 40px; /* Match your header height */
  }
}




.stretch-text {
  text-align: justify;
}



/* === Desktop: Float right with margin and normal size === */
.mobile-float-fix {
  float: right;
  margin-left: 20px;
  margin-bottom: 10px;
  max-width: 300px;
}


/* === Mobile Fix: Smaller image, right-floated with equal padding === */
@media (max-width: 768px) {
  .mobile-float-fix {
    float: right !important;
    display: inline !important;
    max-width: 140px !important;
    margin: 0 16px 10px 16px !important; /* top right bottom left */
  }

  .mobile-float-fix img {
    width: 100% !important;
    height: auto !important;
    display: block;
  }

  .full-width-background-column .wp-block-paragraph {
    padding-left: 16px !important;
    padding-right: 16px !important;
    box-sizing: border-box;
  }
}


.section-separator-gap {
  margin-top: 25px !important;  /* adjust this to control the space */
}



/* === DESKTOP (default) === */
.full-width-background-column {
  width: 100% !important;
  max-width: 100% !important;
  background-color: #080033 !important;
  padding: 60px 0;
  box-sizing: border-box;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Center inner content inside container */
.full-width-background-column .wp-block-columns {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
  box-sizing: border-box;
}

/* === MOBILE OVERRIDE (force full screen edge-to-edge) === */
@media (max-width: 768px) {
  .full-width-background-column {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(-50vw + 50%) !important;
    margin-right: calc(-50vw + 50%) !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .full-width-background-column .wp-block-columns {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
}


/* === MAIN MENU STYLES === */

/* Main menu background */
#site-navigation ul,
#site-navigation ul ul,
#site-navigation.toggled ul {
    background-color: #000000;
}

/* Menu links */
#site-navigation a {
    color: #ffffff;
    text-decoration: none;
    font-family: 'Fahkwang', sans-serif;
    letter-spacing: 0.5px;
}

/* Hover state for links */
#site-navigation a:hover {
    background-color: #222222;
    color: #ffffff;
}

/* Active/current page item */
#site-navigation .current-menu-item > a,
#site-navigation .current_page_item > a {
    background-color: #444444;
    color: #ffffff;
}

/* === MOBILE MENU TOGGLE BUTTON ("MENU+") === */

/* Default (menu closed) */
#toggle-menu.button {
    background-color: #ffffff !important;
    color: #111111 !important;
    font-family: 'Fahkwang', sans-serif !important;
    font-size: 16px !important;
    text-transform: uppercase;
    letter-spacing: 1px;
    border: 2px solid #111111;
    padding: 8px 10px;
    border-radius: 3px;
    transition: all 0.3s ease;
    display: inline-block;
    visibility: visible !important;
    opacity: 1 !important;
}

/* Hover state */
#toggle-menu.button:hover,
#toggle-menu.button:active {
    background-color: #f3f3f3 !important;
    color: #111111 !important;
    border-color: #111111;
}

/* Menu is open (toggle checked) */
input[type="checkbox"]#toggle:checked + label#toggle-menu.button {
    background-color: #111111 !important;
    color: #ffffff !important;
    border-color: #111111 !important;
}



/* =========================================================
   FORCE-BREAKOUT (true edge-to-edge)
   Put class "force-breakout" on the Cover block
   ========================================================= */
.wp-block-cover.force-breakout {
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  overflow: hidden !important;
}

.wp-block-cover.force-breakout .wp-block-cover__image-background {
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: cover !important;
  object-position: 50% 35% !important;
  display: block !important;
}



/* === TEXT CONTAINER === */
.wp-block-cover.force-breakout .wp-block-cover__inner-container {
  position: relative;
  z-index: 2;
  text-align: center;
  padding: 2rem;
}



@media (max-width: 768px) {
  .mobile-full-width-wrapper {
    width: 100vw;
    margin-left: calc(-50vw + 50%);
    margin-right: calc(-50vw + 50%);
  }

  .mobile-full-width-img {
    width: 100% !important;
    height: auto !important;
    display: block;
  }
}

/* Make all buttons black on hover */
.wp-block-button__link:hover {
  background-color: #000 !important;
  color: #fff !important;
  border-color: #000 !important;
}

.page .entry-title {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

/* Fixed top nav bar */
.main-navigation {
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 9999;
  background-color: #fff;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
}

.main-navigation {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* Default for desktop */
.wp-block-group.is-position-sticky {
  position: sticky;
  top: 90px; /* desktop menu height */
  z-index: 9998;
}

/* Mobile fix */
@media (max-width: 768px) {
  .wp-block-group.is-position-sticky {
    top: 46px; /* adjust this to match your mobile menu height */
  }
}

.custom-logo {
  margin-top: 15px !important; /* Adjust as needed */
  display: block;
  position: relative;
  z-index: 1;
}

@font-face {
  font-family: 'Geraldine';
  src: url('https://formosa.hair/wp-content/uploads/2025/05/GERALDINE-PERSONAL-USE.ttf') format('truetype');
  font-weight: normal;
  font-style: normal;
}

@media (max-width: 768px) {
  .geraldine-heading {
    font-size: 56px !important;
  }
}

.geraldine-heading {
  font-family: 'Geraldine', cursive;
}

@media (max-width: 768px) {
  .wp-block-column {
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center !important;
  }

  .wp-block-buttons {
    justify-content: center !important;
  }
}

.home-intro {
  text-align: left !important;
}

.about-intro {
  text-align: left !important;
}

.services-intro {
  text-align: left !important;
}

.services-list-1 {
  text-align: left !important;
}

.services-list-2 {
  text-align: left !important;
}

.services-list-3 {
  text-align: left !important;
}

.services-list-4 {
  text-align: left !important;
}

.left-allign {
  text-align: left !important;
}



.services-description {
	padding: 5px 5px !important; /* top/bottom 20px, left/right 24px */
  box-sizing: border-box !important;
  display: block;
  width: 100% !important;

}

.services-description2 {
	padding: 12px 10px !important; /* top/bottom 20px, left/right 24px */
  box-sizing: border-box !important;
  display: block;
  width: 100% !important;

}

.text-block-uniform {
  padding: 20px !important;
  box-sizing: border-box;
}


.top-margin-only {
  margin-top: 42px !important;
  margin-bottom: 0 !important;
}

#KatieBio {
  scroll-margin-top: 110px;
}

#ChelseaBio {
  scroll-margin-top: 110px;
}



@media (max-width: 768px) {
  .back-button {
    display: block !important;
    text-align: left !important;
    margin-left: 0 !important;
    margin-right: auto !important;
    width: fit-content !important;
  }

  /* If it's wrapped in a block that centers it */
  .wp-block-button:has(.back-button) {
    text-align: left !important;
    justify-content: flex-start !important;
  }
}

@media (max-width: 768px) {
  .sticky-button-group .wp-block-buttons {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 10px 0;
  }

  .sticky-button-group .wp-block-button__link {
    width: 100%;
    max-width: 280px; /* Adjust based on design */
    text-align: center;
    white-space: normal;
    word-wrap: break-word;
    padding: 12px 16px;
    font-size: 14px;
    line-height: 1.4;
  }
}

/* Constrain the menu bar to the site's width on desktop */
@media (min-width: 769px) {
  .main-navigation {
    max-width: 1200px; /* Match your site's container width */
    margin: 0 auto;
    padding: 0 20px;
  }
}

/* Style the hamburger toggle button (☰ icon) */
#toggle-menu {
  display: inline-block;
  text-align: left;
  padding-left: 4px !important;
  background: none;
  border: none;
  cursor: pointer;
}



/* === STICKY BUTTON GROUP LAYOUT === */

/* DESKTOP: keep buttons horizontal */
@media (min-width: 769px) {
  .sticky-button-group .wp-block-buttons {
    display: flex;
    flex-direction: row;
    justify-content: center;
    gap: 20px;
  }

  .sticky-button-group .wp-block-button__link {
    width: 130px;
    min-height: 55px;
    font-size: 14px;
    line-height: 1.3;
    text-align: center;
    padding: 12px;
    white-space: normal;
    word-break: break-word;
  }
}

/* MOBILE: stack buttons vertically */
@media (max-width: 768px) {
  .sticky-button-group .wp-block-buttons {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
  }

  .sticky-button-group .wp-block-button__link {
    width: 100%;
    max-width: 280px;
    font-size: 14px;
    line-height: 1.3;
    padding: 12px 16px;
    text-align: center;
    white-space: normal;
    word-break: break-word;
  }
}

@media (max-width: 768px) {
  .sticky-button-group .wp-block-button {
    width: 100%;
    max-width: 260px;
  }

  .sticky-button-group .wp-block-button__link {
    display: block;
    width: 100%;
    padding: 12px 16px;
    font-size: 14px;
    line-height: 1.3;
    text-align: center;
    white-space: normal;
    word-break: break-word;
    box-sizing: border-box;
  }
}

@media only screen and (max-width: 768px) {
  .line-break {
    margin-top: -30px !important; /* or 0 */
    margin-bottom: 5px !important;
  }
	
	
  .element-above-or-below {
    padding-bottom: 0 !important;  /* If needed */
    margin-bottom: 0 !important;
  }
}

.full-width-column {
  width: 100vw;         /* 100% of viewport width */
  max-width: 100vw;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  position: relative;
  left: 50%;
  right: 50%;
  transform: translateX(-50%);
}

/* Full-width background wrapper */
.full-width-section {
  width: 100vw !important;
  position: relative;
  left: 50% !important;
  right: 50% !important;
  transform: translateX(-50%) !important; /* your blue background */
}

/* Inner content container stays centered */
.full-width-section .content-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0px 20px;
  box-sizing: border-box;
}




@media only screen and (max-width: 768px) {
  .full-width-column-mobile {
    width: 100vw;
    max-width: 100vw;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    position: relative;
    left: 50%;
    right: 50%;
    transform: translateX(-50%);
  }

  .full-width-column-mobile .inner-column-mobile {
    width: 85%; /* or your desired max-width */
    max-width: 1200px; /* or container width */
    margin: 0 auto;
    padding-left: 0px;
    padding-right: 0px;
    position: relative;
    left: 0;
    transform: none;
  }
}


@media only screen and (max-width: 768px) {
.image-full-width {
  width: 95vw;         /* Full viewport width */
  max-width: 100vw;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  display: block;
  position: relative;
  left: 50%;
  right: 50%;
  transform: translateX(-50%);
	  }
}



.image-shift-up2 {
  position: relative;
  top: -40px; /* Adjust to control how far up it moves */
}


.scroll-reactive-image-wrapper {
  transform: scale(0);
  opacity: 0;
  transition: none;
  will-change: transform, opacity;
}



/* Make full-width sections truly edge-to-edge, no left/right mismatch */
.full-width-section {
  width: 100vw !important;
  max-width: 100vw !important;

  /* break out of the theme's content container */
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;

  /* neutralize your older centering method */
  left: auto !important;
  right: auto !important;
  transform: none !important;

  /* avoid any sneaky spacing */
  padding-left: 0 !important;
  padding-right: 0 !important;
}


/* === Google Maps InfoWindow: clean sizing + spacing === */

/* Outer container */
.gm-style .gm-style-iw-c {
  padding: 2px 6px 8px !important; /* space all around + bottom */
  border-radius: 14px !important;
  max-width: min(92vw, 260px) !important;
  box-sizing: border-box !important;
}

/* Inner scroll wrapper */
.gm-style .gm-style-iw-d {
  overflow: visible !important;
  max-height: none !important;
}

/* Add breathing room under the content (buttons float up) */
.gm-style .gm-style-iw-d > div {
  padding-bottom: 6px !important;
}

/* Remove default Google margin quirks */
.gm-style .gm-style-iw {
  padding: 0 !important;
}

/* === FORCE InfoWindow to stop using the inner scroll box === */
.gm-style .gm-style-iw-c {
  max-height: none !important;
}

.gm-style .gm-style-iw-d {
  overflow: visible !important;
  max-height: none !important;
  height: auto !important;
}

.gm-style .gm-style-iw-d > div {
  overflow: visible !important;
  max-height: none !important;
  height: auto !important;
}

#seperator { scroll-margin-top: 60px; } 
#seperator2 { scroll-margin-top: 110px; }
#ServicesHair { scroll-margin-top: 110px; }
#ServicesCare { scroll-margin-top: 110px; }
#ServicesOccassions { scroll-margin-top: 110px; }






/* ================================
   GOLD IMAGE BUTTON (FAIL-SAFE)
   Class goes on the Button block: btn-gold-bg
================================ */

/* Put the gold image on the wrapper itself */
.wp-block-button.btn-gold-bg {
  background-image: url("https://formosa.hair/wp-content/uploads/2026/01/Gold-Button-Small.png") !important;
  background-size: 100% 100% !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  border-radius: 10px !important;
  overflow: hidden !important;
  display: inline-block !important;
}

/* Make the actual clickable link transparent and full-size */
.wp-block-button.btn-gold-bg .wp-element-button,
.wp-block-button.btn-gold-bg .wp-block-button__link {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  border: 0 !important;
  box-shadow: none !important;

  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;

  /* Keep your button sizing */
  min-height: 42px !important;
  padding: 12px 24px !important;

  /* Text on top */
  color: #000 !important;
  font-weight: 700 !important;
  font-size: 14px !important;
  text-decoration: none !important;

  position: relative !important;
  z-index: 2 !important;
}

/* Override your global hover rule that turns buttons black */
.wp-block-button.btn-gold-bg .wp-element-button:hover,
.wp-block-button.btn-gold-bg .wp-block-button__link:hover {
  background: transparent !important;
  background-color: transparent !important;
  color: #fff !important;
}

/* Optional: hover darken (doesn't hide gold) */
.wp-block-button.btn-gold-bg:hover {
  filter: brightness(0.95);
}

/* Equal-width behavior ONLY for gold buttons */
.wp-block-button.btn-gold-bg {
  width: 160px !important;
  max-width: 160px !important;
  flex: 0 0 auto !important;
}

.wp-block-button.btn-gold-bg .wp-block-button__link {
  width: 100% !important;
}

/* Ensure gold button link fills its block */
.wp-block-buttons .wp-block-button.btn-gold-bg .wp-block-button__link {
  width: 100% !important;
}

#seperator {
  scroll-margin-top: 60px;
}

#seperator2 {
  scroll-margin-top: 110px;
}



/* ================================
   FORMOSA SWIPER (PEEK SLIDER)
   ================================ */

.formosa-swiper {
  width: 100%;
  box-sizing: border-box;
  padding: 8px 0 22px;
}

.formosa-swiper .swiper {
  width: 100%;
  overflow: visible; /* allows the side "peek" */
}

.formosa-swiper .swiper-wrapper {
  align-items: center;
}

.formosa-swiper .swiper-slide {
  height: auto;
  display: flex;
  justify-content: center;
  align-items: center;
}

/* The slide card */
.formosa-swiper .slide-inner {
  width: 100%;
  max-width: 980px; /* keeps it from getting goofy huge on desktop */
  border-radius: 0px;
  transform: scale(0.92);
  transition: transform 500ms ease, filter 500ms ease;
  will-change: transform, filter;
}

/* Active slide is slightly larger */
.formosa-swiper .swiper-slide-active .slide-inner {
  transform: scale(1);
}

/* Images fill the slide cleanly */
.formosa-swiper img {
  width: 100%;
  height: auto;
  display: block;
}

/* --- ANIMATION FILTER START STATES (only applied when active) --- */

/* every 3rd slide: muted -> normal */
.formosa-swiper .swiper-slide-active.fx-muted .slide-inner {
  filter: saturate(0.55) contrast(1.0) brightness(1.0);
}

/* every 5th slide: grayscale -> normal */
.formosa-swiper .swiper-slide-active.fx-bw .slide-inner {
  filter: grayscale(1) saturate(0.85) contrast(1.05);
}

/* When we "trigger" the animation, transition to full color over 2s */
.formosa-swiper .swiper-slide-active.fx-animate .slide-inner {
  transition: transform 500ms ease, filter 2000ms ease;
  filter: none;
}

/* Pagination dots */
.formosa-swiper .swiper-pagination-bullet {
  opacity: 0.35;
}
.formosa-swiper .swiper-pagination-bullet-active {
  opacity: 1;
}



/* MOBILE TUNING */
@media (max-width: 768px) {
  .formosa-swiper {
    padding: 6px 0 18px;
  }

  .formosa-swiper .slide-inner {
    border-radius: 12px;
    transform: scale(0.96);
  }

  .formosa-swiper .swiper-slide-active .slide-inner {
    transform: scale(1);
  }
}



/* ================================
   FORMOSA SWIPER — TWEAKS
   (paste below the existing slider CSS)
================================ */

/* 1) Remove dots */
.formosa-swiper .swiper-pagination {
  display: none !important;
}

/* 2) Tighten spacing between slides (less gap) */
.formosa-swiper .swiper {
  /* optional: gives a little room so arrows can sit outside */
  padding: 0 8px !important;
}

/* 3) Make side peeks less visible by:
      - slightly reducing slidesPerView in JS (next section)
      - increasing active slide scale here
      - decreasing non-active scale a bit */
.formosa-swiper .slide-inner {
  transform: scale(0.88) !important;     /* smaller neighbors */
  transition: transform 650ms ease, filter 500ms ease !important;
}

@media (max-width: 768px) {
  .formosa-swiper .slide-inner { transform: scale(0.90) !important; }
  .formosa-swiper .swiper-slide-active .slide-inner { transform: scale(1.06) !important; }
}


/* ============================
   STOP HORIZONTAL SCROLL — ONLY FOR THE SLIDER SECTION
   Put class "formosa-slider-wrap" on the OUTER Group that contains the slider
============================ */

.formosa-slider-wrap{
  max-width: 100% !important;
  overflow-x: clip !important;     /* best: clips without creating a scroll container */
  position: relative !important;
}

/* Fallback for browsers that don’t support overflow: clip */
@supports not (overflow: clip) {
  .formosa-slider-wrap{
    overflow-x: hidden !important;
  }
}

/* Ensure swiper itself never leaks out */
.formosa-slider-wrap .formosa-swiper{
  width: 100% !important;
  max-width: 100% !important;
  overflow: visible !important;     /* important */
}

/* Safety: prevent any “extra width” math from slides */
.formosa-slider-wrap .swiper,
.formosa-slider-wrap .swiper-wrapper,
.formosa-slider-wrap .swiper-slide{
  box-sizing: border-box !important;
}

/* Allow pinch gestures inside swiper */
#formosaSwiper,
#formosaSwiper * {
  touch-action: pan-y pinch-zoom;
}

/* Prevent image sizing rules from capping zoom */
.formosa-swiper .swiper-zoom-container img {
  max-width: none;
}

/* Hide Swiper arrows (kills the default blue arrows) */
.formosa-swiper .swiper-button-prev,
.formosa-swiper .swiper-button-next {
  display: none !important;
}


/* =========================================================
   LOCATION LINE (inside a column) — iPhone stays normal size,
   Android can shrink if needed.
   Add CSS classes:
   - Column block: location-column
   - Paragraph block: location-line
========================================================= */
@media (max-width: 768px) {
  .location-column {
    min-width: 0 !important;
    overflow: hidden !important;
  }

  /* Default (iPhone/iPad + most browsers): do NOT auto-shrink */
  .location-column .location-line {
    white-space: nowrap !important;

    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;

    margin: 0 auto !important;
    padding: 0 8px !important; /* reduced so it can sit closer to edges */

    text-align: center !important;

    overflow: hidden !important;
    text-overflow: ellipsis !important;

    font-size: 1.1rem !important;  /* iPhone: keep readable size */
    line-height: 1.15 !important;
  }

  /* Android (Chrome / Samsung Internet): allow controlled shrink-to-fit */
  @supports (-webkit-appearance: none) and (not (-webkit-touch-callout: none)) {
    .location-column .location-line {
      font-size: clamp(1.1rem, 2vw, 1.25rem) !important;
    }
  }

  /* prevent any inherited transforms from shifting it */
  .location-column .location-line,
  .location-column .location-line * {
    transform: none !important;
  }
}


.wella-font {
  font-family: Inter, system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
}

.svg-logo {
  margin-top: -20px;
  margin-bottom: 6px;
}



/* =========================================
   FORMOSA WHEEL SWIPER (Rolodex / Coverflow)
   ========================================= */

.formosa-slider-wrap.formosa-wheel-wrap{
  max-width: 100% !important;
  overflow-x: clip !important;
  position: relative !important;
}
@supports not (overflow: clip) {
  .formosa-slider-wrap.formosa-wheel-wrap{ overflow-x: hidden !important; }
}

.formosa-wheel-swiper{
  width: 100%;
  box-sizing: border-box;
  padding: 10px 0 26px; /* space for dash pagination */
}

.formosa-wheel-swiper .swiper{
  width: 100%;
  overflow: visible !important; /* allow peeks */
  padding: 0 !important;        /* edge-to-edge */
}

.formosa-wheel-swiper .swiper-wrapper{
  align-items: center;
}

.formosa-wheel-swiper .swiper-slide{
  height: auto;
  display: flex;
  justify-content: center;
  align-items: center;
}

/* Make whole slide clickable */
.formosa-wheel-swiper .slide-link{
  display: block;
  width: 100%;
  text-decoration: none;
}

/* Rounded “card” */
.formosa-wheel-swiper .slide-inner{
  width: 100%;
  max-width: 1100px;
  border-radius: 18px;
  overflow: hidden;
  transform: translateZ(0);
  will-change: transform, filter;
}

.formosa-wheel-swiper img{
  width: 100%;
  height: auto;
  display: block;
}

/* ===== Custom arrows (small black circles w/ white chevrons) ===== */
.formosa-wheel-swiper .formosa-wheel-nav{
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 50;

  width: 30px;
  height: 30px;
  border-radius: 999px;

  background: #000;
  border: none;

  display: flex;
  align-items: center;
  justify-content: center;

  cursor: pointer;
  opacity: 0.95;
  padding: 0;
}

.formosa-wheel-swiper .formosa-wheel-nav .arrow{
  color: #fff;
  font-size: 18px;
  line-height: 1;
  transform: translateY(-1px);
}

.formosa-wheel-swiper .formosa-wheel-nav.prev{ left: 8px; }
.formosa-wheel-swiper .formosa-wheel-nav.next{ right: 8px; }

.formosa-wheel-swiper .formosa-wheel-nav:active{
  transform: translateY(-50%) scale(0.98);
}

/* ===== Dash pagination ===== */
.formosa-wheel-swiper .formosa-wheel-pagination{
  position: relative;
  margin-top: 14px;
  display: flex;
  justify-content: center;
  gap: 8px;
}

.formosa-wheel-swiper .formosa-wheel-pagination .swiper-pagination-bullet{
  width: 22px;
  height: 4px;
  border-radius: 999px;
  background: #000;
  opacity: 0.25;
  margin: 0 !important;
}

.formosa-wheel-swiper .formosa-wheel-pagination .swiper-pagination-bullet-active{
  opacity: 0.95;
}

/* Mobile tuning */
@media (max-width: 768px){
  .formosa-wheel-swiper{
    padding: 8px 0 22px;
  }
  .formosa-wheel-swiper .slide-inner{
    max-width: 94vw;
    border-radius: 16px;
  }
  .formosa-wheel-swiper .formosa-wheel-nav.prev{ left: 6px; }
  .formosa-wheel-swiper .formosa-wheel-nav.next{ right: 6px; }
}


/* ================================
   FULL WIDTH — MOBILE ONLY
   Desktop: stays inside parent container
   Mobile: breaks out to viewport width
================================ */

/* Desktop / default: DO NOTHING special */
.full-width-section2{
  width: 100%;
  max-width: 100%;
  margin-left: 0;
  margin-right: 0;
  position: relative;
  left: auto;
  right: auto;
  transform: none;
  box-sizing: border-box;
}

/* WordPress inner container fix */
.full-width-section2 > .wp-block-group__inner-container{
  width: 100%;
  max-width: none;
  margin: 0;
  box-sizing: border-box;
}

/* Mobile only: breakout to full viewport width */
@media (max-width: 768px){
  .full-width-section2{
    width: 100vw !important;
    max-width: 100vw !important;

    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;

    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}

.group-full-width {
  width: 100% !important;
  max-width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box;
}

/* Kill Gutenberg inner container limits */
.group-full-width > .wp-block-group__inner-container {
  max-width: 100% !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}


.formosa-collapsed-toggle{
  display:flex;
  align-items:center;
  gap:8px;
}

.formosa-collapsed-toggle .hamburger-icon{
  font-size:34px;
  line-height:1;
  color:#000;
  position:relative;
  top:-4px; /* keep your centering tweak */
}

.formosa-mini-logo-link img.fade-in-logo{
  height:24px;
  vertical-align:middle;
  display:inline-block;
}



/* ============================
   FOOTER BUTTON — LET'S CONNECT
   ============================ */

#formosa-connect-footer {
  display: block;
  margin: 0 auto; /* center */
  padding: 14px 30px;

  background: #000;
  border: none;
  border-radius: 0;

  font-family: 'Fahkwang', system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 1.6px;
  text-transform: uppercase;

  color: #fff !important;
  cursor: pointer;
  text-align: center;
}

#formosa-connect-footer:hover,
#formosa-connect-footer:active,
#formosa-connect-footer:focus {
  background: #000 !important;
  color: #fff !important;
  outline: none;
}

/* ============================
   MODAL — LET'S CONNECT
   ============================ */

#formosa-connect-modal {
  position: fixed;
  inset: 0;
  z-index: 999999;
  display: none; /* hidden by default */
}

#formosa-connect-modal.active {
  display: block;
}

.formosa-connect-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.65);
}

.formosa-connect-box {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);

  width: min(360px, calc(100% - 40px));
  background: #fff;
  padding: 22px 18px 18px;
  text-align: center;
  box-sizing: border-box;
  border-radius: 0;

  font-family: 'Fahkwang', system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
}

.formosa-connect-close {
  position: absolute;
  top: 8px;
  right: 10px;

  background: transparent;
  border: 0;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  color: #000;
}

.formosa-connect-box h3 {
  margin: 0 0 8px;
  font-size: 22px;
  font-weight: 600;
}

.formosa-connect-box p {
  margin: 0 0 14px;
  font-size: 14px;
  opacity: 0.85;
}

.formosa-connect-actions {
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-items: center;
}

.formosa-connect-btn {
  width: 280px;               /* ✅ “X pixels” — adjust this number */
  width: 240px !important; 
	max-width: 100%;
  display: block;

  padding: 14px 12px;
  background: #000;
  color: #fff !important;
  text-decoration: none;

  text-transform: uppercase;
  letter-spacing: 1.6px;
  font-weight: 600;
  font-size: 14px;

  border: 1px solid #000;     /* ✅ ensures the black box always shows */
  box-sizing: border-box;
}

.formosa-connect-btn:hover,
.formosa-connect-btn:active,
.formosa-connect-btn:focus {
  background: #000 !important;
  color: #fff !important;
  outline: none;
}

.formosa-connect-box h4 {
  margin-bottom: 16px;
}

/* Kill ALL color changes on the close (X) button */
.formosa-connect-close,
.formosa-connect-close:hover,
.formosa-connect-close:focus,
.formosa-connect-close:active {
  color: #000 !important;
  background: transparent !important;
  outline: none !important;
  box-shadow: none !important;
}

.formosa-connect-box {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);

  width: min(360px, calc(100% - 40px));

  /* 🔽 BACKGROUND IMAGE */
  background-image: url("/wp-content/uploads/2026/02/soft-pink-floral-art-formosa-hair-studio.webp");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;

  /* 🔽 IMPORTANT: create contrast for text */
  padding: 18px 18px 18px;
  text-align: center;
  box-sizing: border-box;
  border-radius: 0;

  font-family: 'Fahkwang', system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
}

.formosa-connect-box {
  /* existing styles stay as-is */

  border: 2px solid #000;   /* ⬅️ black outline */
}







.formosa-footer-info {
  text-align: center;
  font-family: 'Fahkwang', sans-serif;
  font-size: 14px; /* slightly smaller */
  line-height: 1.6;
  color: #111;
}

.formosa-footer-info a {
  color: inherit;
  text-decoration: none;
}

.formosa-footer-info a:hover {
  text-decoration: underline;
}

.formosa-footer-info > div {
  margin: 4px 0;
}

/* Optional: slightly softer hours line */
.footer-hours {
  font-size: 13px;
  letter-spacing: 0.02em;
  opacity: 0.9;
}


/* FULL-WIDTH BREAKOUT */
.formosa-footer-full {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

/* FOOTER TYPOGRAPHY */
.formosa-footer-info {
  text-align: center;
  font-family: 'Fahkwang', sans-serif;
  font-size: 14px;
  line-height: 1.6;
  color: #111;
  padding: 4px 16px;
}

/* LINKS */
.formosa-footer-info a {
  color: inherit;
  text-decoration: none;
}

.formosa-footer-info a:hover {
  text-decoration: underline;
}

/* LINE SPACING */
.formosa-footer-info > div {
  margin: 4px 0;
}

/* HOURS — NO WRAP + SHRINK TO FIT */
.no-wrap-fit {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: clip;
  font-size: clamp(11px, 2.5vw, 13px);
  letter-spacing: 0.02em;
}
	
	
	
	
	/* Ensure overlay positioning works */
.formosa-wheel-wrap .slide-inner{
  position: relative;
}

/* ===== EXT BADGE — BELOW IMAGE + ENTER ANIMATION ===== */
.formosa-wheel-wrap .ext-badge{
  position: static !important;      /* ✅ not overlay */
  inset: auto !important;
  left: auto !important;
  right: auto !important;
  top: auto !important;
  bottom: auto !important;

  display: block !important;
  width: 100%;
  margin: 2px 0 0 !important;     /* space under image */
  padding: 0 !important;

  text-align: center !important;

  background: transparent !important;
  border-radius: 0 !important;

  color: #cf1141 !important;
  font-size: 10px;
  line-height: 1.2;

  pointer-events: none !important;

  /* enter animation start */
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 380ms ease, transform 380ms ease;
}

/* ✅ Case A: if this badge lives in the wheel swiper */
.formosa-wheel-wrap .swiper-slide-active .ext-badge{
  opacity: 1;
  transform: translateY(0);
  transition-delay: 180ms;
}

/* ✅ Case B: if this badge is in a scroll swipe-in section */
.swipe-in.is-swiped .ext-badge{
  opacity: 1;
  transform: translateY(0);
  transition-delay: 180ms;
}
	

#wp-content-modal{
  will-change: opacity, transform;
  transform: translateZ(0);
}
	
	
/* ========== SCROLL REVEAL (SAFE) ========== */

/* 1) Default: visible (so nothing breaks if JS fails) */
.reveal {
  opacity: 1 !important;
  transform: none !important;
}

/* 2) JS will add this class to "arm" it (hide it) */
.reveal.reveal-armed {
  opacity: 0 !important;
  transform: translateY(75px) !important;
}

/* 3) When revealed */
.reveal.reveal-armed.is-visible {
  opacity: 1 !important;
  transform: translateY(0) !important;
  transition: opacity 1800ms ease, transform 1800ms ease !important;
}


/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  .reveal,
  .reveal.reveal-armed,
  .reveal.reveal-armed.is-visible {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    outline: none !important;
  }
}


/* ========== HARD SWIPE IN (NO FADE) ========== */

/* Default: visible (safe fallback if JS fails) */
.swipe-in {
  transform: none !important;
}

/* Armed state (JS adds this) */
.swipe-in.swipe-armed {
  transition: none !important;
  will-change: transform;
}

/* Left → Right start position */
.swipe-in.swipe-armed.swipe-left {
  transform: translateX(-120%) !important;
}

/* Right → Left start position */
.swipe-in.swipe-armed.swipe-right {
  transform: translateX(120%) !important;
}

/* When triggered: hard swipe into place */
.swipe-in.swipe-armed.is-swiped {
  transform: translateX(0) !important;
  transition: transform 450ms cubic-bezier(.22,.61,.36,1) !important;
}

/* Optional delays (pick what you want) */
.swipe-delay-600 { transition-delay: 600ms !important; }


/* Reduced motion: just show it */
@media (prefers-reduced-motion: reduce) {
  .swipe-in,
  .swipe-in.swipe-armed,
  .swipe-in.swipe-armed.is-swiped {
    transform: none !important;
    transition: none !important;
  }
}



/* Lock horizontal overflow WITHOUT breaking sticky */
.page-clip{
  overflow-x: clip !important;
  position: relative;
}

@supports not (overflow: clip){
  .page-clip{
    overflow-x: hidden !important;
  }
}



