/**
 * Theme Name: Blocksy Child
 * Description: Blocksy Child theme
 * Author: Creative Themes
 * Template: blocksy
 * Text Domain: blocksy
 */

/* ==========================================================================
   WebNative — Custom CSS
   --------------------------------------------------------------------------
   1.  Utilities
   2.  Hero section            #hero-section
   3.  Counters / stats
   4.  Case study slider       .case-slider
   5.  Services accordion      #services
   6.  Logo slider             #logo-slider
   7.  Blog / table of contents
   8.  Global CTA              #global-cta
   9.  Case study frames       #desktop-web / #mobile-web
   10. Theme odds and ends
   ========================================================================== */


/* ==========================================================================
   1. UTILITIES
   ========================================================================== */

.pink{
	color: var(--theme-palette-color-1)
}

.yellow{
	color: var(--theme-palette-color-5)
}

#mobile-menu .elementor-item  {
    justify-content: center;
}

#mobile-menu .sub-menu{
	display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
}


/* ==========================================================================
   2. HERO SECTION
   Layer order: background-color → ::before glows → ::after grid → content
   ========================================================================== */

#hero-section{
  position:relative;
  overflow:hidden;
  background-color:#170B26;        /* sits UNDER your waves image */
}

#hero-section::before,
#hero-section::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
}

/* pink + purple glows */
#hero-section::before{
  z-index:0;
  background:
    radial-gradient(80% 60% at 76% 16%, rgba(233,16,101,.18), transparent 60%),
    radial-gradient(100% 80% at  6% 96%, rgba(96,42,142,.50), transparent 62%),
    linear-gradient(180deg, transparent 35%, rgba(30,15,50,.55) 100%);
}

/* 78px grid, masked to fade at the edges */
#hero-section::after{
  z-index:1;
  background-image:
    linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);
  background-size:78px 78px;
  -webkit-mask-image:radial-gradient(72% 66% at 46% 44%,#000 20%,transparent 80%);
          mask-image:radial-gradient(72% 66% at 46% 44%,#000 20%,transparent 80%);
}


/* ==========================================================================
   3. COUNTERS / STATS
   ========================================================================== */

.elementor-counter-number-suffix{
	color: var(--theme-palette-color-1)
}


/* ==========================================================================
   4. CASE STUDY SLIDER
   ========================================================================== */

.case-slider .swiper-pagination{
	left: 100px;
}

.case-slider .swiper-pagination-bullet{
	   width: 40px;
    border-radius: 0;
		background-color: #5d5d5ded;
}

.case-slider .swiper-pagination-bullet.swiper-pagination-bullet-active{
	width: 60px;
	background-color: var(--theme-palette-color-1)
}


/* ==========================================================================
   5. SERVICES ACCORDION  #services
   -------------------------------------------------------------------------
   Two icon treatments run here:
     a) .e-n-accordion-item-title-icon  — Elementor's own toggle icon (right),
        given a bordered circle
     b) ::before + ::after              — pink circle + masked SVG (left)
   ========================================================================== */

#services h3{
	font-family: "Plus Jakarta Sans";
	font-weight: 700;
}

/* --- title box ---------------------------------------------------------- */

/* DUPLICATE: this selector is declared twice in the original.
   The 65px below overrides the 60px, so 60px never applies.
   Both kept until you confirm which to drop. */
#services .e-n-accordion-item-title{
	padding-left: 60px;
}

#services .e-n-accordion-item-title{
    position:relative;
    padding-left:65px;
}

/* --- a) Elementor toggle icon, right side ------------------------------- */

#services .e-n-accordion-item-title-icon{
	border: 1px solid var(--n-accordion-border-color);
	padding: 10px;
	border-radius: 50px;
}

#services .e-n-accordion-item-title:hover .e-n-accordion-item-title-icon{
	border-color: var( --e-global-color-primary );
}

#services .e-n-accordion-item summary[aria-expanded="true"] .e-n-accordion-item-title-icon{
	border-color: var( --e-global-color-primary );
}

/* --- b) custom service icon, left side ---------------------------------- */

/* circle */
#services .e-n-accordion-item-title::before{
    content:"";
    position:absolute;
    left:0;
    top:50%;
    transform:translateY(-50%);
    width:44px;
    height:44px;
    border-radius:50%;
    background:rgba(233,16,101,.10);
    transition:.3s ease;
}

/* icon shape — the mask image is set per service below */
#services .e-n-accordion-item-title::after{
    content:"";
    position:absolute;
    left:12px;
    top:50%;
    transform:translateY(-50%);
    width:20px;
    height:20px;
    background:#E91065;
    -webkit-mask-repeat:no-repeat;
    -webkit-mask-position:center;
    -webkit-mask-size:contain;
    mask-repeat:no-repeat;
    mask-position:center;
    mask-size:contain;
    transition:.3s ease;
}

/* per-service masks */
#web .e-n-accordion-item-title::after{
    -webkit-mask-image: url('/new/wp-content/uploads/2026/07/website.svg');
    mask-image: url('/new/wp-content/uploads/2026/07/website.svg');
}

#seo .e-n-accordion-item-title::after{
    -webkit-mask-image: url('/new/wp-content/uploads/2026/07/search-3.svg');
    mask-image: url('/new/wp-content/uploads/2026/07/search-3.svg');
}

#design .e-n-accordion-item-title::after{
    -webkit-mask-image: url('/new/wp-content/uploads/2026/07/edit-tools.svg');
    mask-image: url('/new/wp-content/uploads/2026/07/edit-tools.svg');
}

#social .e-n-accordion-item-title::after{
    -webkit-mask-image: url('/new/wp-content/uploads/2026/07/social-media.svg');
    mask-image: url('/new/wp-content/uploads/2026/07/social-media.svg');
}

#optimise .e-n-accordion-item-title::after{
    -webkit-mask-image: url('/new/wp-content/uploads/2026/07/monitor.svg');
    mask-image: url('/new/wp-content/uploads/2026/07/monitor.svg');
}

/* hover + open state: fill the circle, invert the icon */
#services .e-n-accordion-item:hover .e-n-accordion-item-title::before,
#services .e-n-accordion-item[open] .e-n-accordion-item-title::before{
    background:#E91065;
}

#services .e-n-accordion-item:hover .e-n-accordion-item-title::after,
#services .e-n-accordion-item[open] .e-n-accordion-item-title::after{
    background:#fff;
}


/* ==========================================================================
   6. LOGO SLIDER
   ========================================================================== */

#logo-slider img{
	height: 70px;
	object-fit: contain;
	width: 120px;
}


/* ==========================================================================
   7. BLOG / TABLE OF CONTENTS
   ========================================================================== */

.single-post .elementor-toc__header{
	display:none
}

.single-post .content h2, .single-post .content h2 strong, .content h2{
	font-size: 40px;
}


.single-post .content h3, .single-post .content h3 strong{
	font-size: 28px;
}

/* ==========================================================================
   8. GLOBAL CTA
   ========================================================================== */

#global-cta{
  position:relative;
  background:var(--e-global-color-secondary);
  overflow:hidden;
}

#global-cta::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(60% 90% at 92% 50%, rgba(233,33,101,.55), transparent 62%),
    radial-gradient(50% 80% at 8% 100%, rgba(224,0,77,.18), transparent 60%);
}

#global-cta > .e-con-inner{position:relative;z-index:2}


/* ==========================================================================
   9. CASE STUDY FRAMES
   Raw screenshots in; browser chrome and phone bezel are CSS.
   ========================================================================== */

/* --- desktop: browser frame --------------------------------------------- */

#desktop-web{
  position:relative;
  width:100%;
  padding-top:42px;                 /* room for the chrome bar */
  background:#2A2036;
  border-radius:12px;
  overflow:hidden;
  box-shadow:0 50px 100px -35px rgba(0,0,0,.8), 0 0 0 1px rgba(255,255,255,.07);
}

/* three traffic lights, one element + two box-shadows */
#desktop-web::before{
  content:"";
  position:absolute;top:16px;left:18px;z-index:2;
  width:10px;height:10px;border-radius:50%;
  background:#FF5F57;
  box-shadow:18px 0 0 #FEBC2E, 36px 0 0 #28C840;
}

/* URL pill — set Advanced → Attributes → data-url|alpinespinalrehab.com */
#desktop-web::after{
  content:attr(data-url);
  position:absolute;top:11px;left:50%;transform:translateX(-50%);z-index:2;
  min-width:180px;max-width:52%;
  padding:5px 16px;border-radius:100px;
  background:rgba(0,0,0,.28);
  color:#8B7A9E;font-size:12px;line-height:1.5;text-align:center;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}

#desktop-web .elementor-widget-container{
  container-type:size;
  aspect-ratio:16/10;
  overflow:hidden;
  background:#fff;
}

#desktop-web img{
  width:100%;
	height:auto;
  transition:transform 2.8s cubic-bezier(.3,0,.3,1);
	border-radius: 0;
}

#desktop-web:hover img{transform:translateY(calc(-100% + 100cqh))}

/* --- mobile: phone frame ------------------------------------------------- */

#mobile-web{
  position:absolute;
  right:48px;bottom:-58px;z-index:3;
  width:25%;
	max-width:200px;
  padding:9px;                      /* the bezel */
  background:#2A2036;
  border-radius:26px;
  box-shadow:0 30px 60px -18px rgba(0,0,0,.75), 0 0 0 1px rgba(255,255,255,.09);
}

#mobile-web .elementor-widget-container{
  container-type:size;
  aspect-ratio:9/19;
  overflow:hidden;
  border-radius:18px;
  background:#fff;
}

#mobile-web img{
  width:100%;height:auto;
  transition:transform 2.8s cubic-bezier(.3,0,.3,1);
}

#mobile-web:hover img{transform:translateY(calc(-100% + 100cqh))}

/* --- fallbacks + responsive ---------------------------------------------- */

@supports not (height:100cqh){
  #desktop-web img,#mobile-web img{height:100%;object-fit:cover;object-position:top center}
  #desktop-web:hover img,#mobile-web:hover img{transform:none}
}

@media(max-width:1024px){
  #mobile-web{right:32px;bottom:-46px;width:22%}
}

@media(max-width:767px){
  #desktop-web{padding-top:34px;border-radius:9px}
  #desktop-web::before{top:13px;left:14px;width:8px;height:8px;box-shadow:14px 0 0 #FEBC2E,28px 0 0 #28C840}
  #desktop-web::after{font-size:10px;min-width:120px;padding:4px 12px;top:9px}
  #mobile-web{right:14px;bottom:-26px;width:25%;padding:6px;border-radius:18px}
  #mobile-web .elementor-widget-container{border-radius:13px}
}

@media(prefers-reduced-motion:reduce){
  #desktop-web img,#mobile-web img,
  #desktop-web:hover img,#mobile-web:hover img{transition:none;transform:none}
}


/* ==========================================================================
   10. THEME ODDS AND ENDS
   ========================================================================== */

a.ct-back-to-top {
    border: 1px solid #000;
}

.arrow {
	cursor: pointer;
        -webkit-animation: upNdown 2s infinite linear;
        animation: upNdown 2s infinite linear;
    }

@-webkit-keyframes upNdown {
         0% { }
         50% { transform: translateY(-10px); }
         100% { }
    }

@keyframes upNdown {
         0% { }
         50% { transform: translateY(-10px); }
         100% { }
    }