/*
Theme Name: Nic Allen Framework
Template: generatepress
Version: 1.0
*/

/* =========================
VARIABLES
========================= */


:root{
--bg:#0b0f10;
--panel:#141a1d;
--panel-2:#1b2124;

--text:#f4f7f8;
--muted:#aab8be;

--accent:#19c2a4;
--accent-hover:#22d9ba;

--border:rgba(255,255,255,.08);

--radius:18px;

--shadow:0 20px 50px rgba(0,0,0,.35);
}
/* =========================
BASE
========================= */

html,
body,
.site,
.site-content,
.content-area,
.inside-article,
.site-footer,
.footer-widgets,
.site-info{
  background:var(--bg) !important;
  color:var(--text);
}

body{
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}

*{ box-sizing:border-box; }

a{
  color:var(--accent);
  text-decoration:none;
}

a:hover{ color:var(--accent-hover); }

.site :where(.entry-content, .entry-summary, .archive-description, .sbf-footer-column, .mobile-footer-contact) a:not(:where(.wp-block-button__link, .gb-button, .button, .blog-cta-button, .cta-call, .cta-form)):visited,
.site .sbf-archive-card .read-more:visited{
  color:var(--accent) !important;
}

.site :where(.entry-content, .entry-summary, .archive-description, .sbf-footer-column, .mobile-footer-contact) a:not(:where(.wp-block-button__link, .gb-button, .button, .blog-cta-button, .cta-call, .cta-form)):hover,
.site :where(.entry-content, .entry-summary, .archive-description, .sbf-footer-column, .mobile-footer-contact) a:not(:where(.wp-block-button__link, .gb-button, .button, .blog-cta-button, .cta-call, .cta-form)):focus-visible,
.site .sbf-archive-card .read-more:hover,
.site .sbf-archive-card .read-more:focus-visible{
  color:var(--accent-hover) !important;
}

.site :where(.entry-content, .entry-summary, .archive-description, .sbf-footer-column, .mobile-footer-contact) a:not(:where(.wp-block-button__link, .gb-button, .button, .blog-cta-button, .cta-call, .cta-form)):focus-visible,
.site .sbf-archive-card .read-more:focus-visible{
  outline:2px solid rgba(25,194,164,.7);
  outline-offset:3px;
}

hr,
.wp-block-separator{
  display:none !important;
}

/* =========================
CONTAINERS
========================= */

.inside-header,
.entry-content,
.site-main{
  max-width:1180px;
  margin:0 auto;
  padding:0 24px;
}

/* =========================
TYPOGRAPHY
========================= */

h1,h2,h3,h4{
  color:#fff;
  font-weight:500;
  line-height:1.12;
  letter-spacing:-0.02em;
  margin:0 0 18px;
}

h1{ font-size:62px; }
h2{ font-size:42px; }
h3{ font-size:28px; }

p,
li{
  color:var(--muted);
  font-size:20px;
  line-height:1.72;
  max-width:820px;
  margin:0 0 18px;
}

/* =========================
HEADER
========================= */

.site-header{
  position:sticky;
  top:0;
  z-index:9999;
  background:rgba(0,0,0,.94) !important;
  backdrop-filter:blur(7px);
  border-bottom:1px solid rgba(255,255,255,.04);
}

.inside-header{
  min-height:88px;
  display:flex;
  align-items:center;
  justify-content:space-between;
}

/* =========================
LOGO
========================= */

.site-branding,
.site-branding-container,
.site-logo,
.custom-logo-link{
  background:transparent !important;
  box-shadow:none !important;
}

.site-branding .main-title,
.site-branding .main-title a,
.site-description{
  color:var(--text) !important;
  background:transparent !important;
  box-shadow:none !important;
  text-shadow:none;
}

.site-branding .main-title{
  font-size:22px;
  line-height:1.15;
  font-weight:500;
  letter-spacing:0;
}

.site-branding .main-title::after{
  content:"High-performance specialist business websites";
  display:block;
  margin-top:3px;
  color:var(--muted);
  font-size:11px;
  line-height:1.2;
  font-weight:400;
  letter-spacing:.01em;
}

.site-branding .main-title a{
  padding:0 !important;
  border-radius:0 !important;
}

.site-description{
  color:var(--muted) !important;
}

@media (max-width:768px){
  .site-branding .main-title{
    font-size:18px;
  }

  .site-branding .main-title::after{
    display:none;
  }
}

.site-branding img,
.custom-logo-link img,
.custom-logo,
.site-logo img{
  max-height:56px !important;
  width:auto;
  transition:max-height .25s ease, transform .25s ease;
}

.site-header.is-scrolled .site-branding img,
.site-header.is-scrolled .custom-logo-link img,
.site-header.is-scrolled .custom-logo,
.site-header.is-scrolled .site-logo img,
body.logo-shrink .site-logo img,
body.logo-shrink .custom-logo{
  max-height:42px !important;
  transform:scale(.92);
}

/* =========================
NAVIGATION
========================= */

.main-navigation{
  margin-left:auto;
  background:transparent !important;
}

.main-navigation ul{
  display:flex;
  align-items:center;
  gap:30px;
  margin:0;
  padding:0;
}

.main-navigation li{ position:relative; }

.main-navigation a{
  color:#ececec !important;
  font-size:18px;
  font-weight:400;
  height:44px;
  display:flex;
  align-items:center;
}

.main-navigation a:hover,
.main-navigation .current-menu-item > a,
.main-navigation .current-menu-ancestor > a{
  color:var(--accent) !important;
}

.main-navigation .sub-menu{
  background:var(--panel) !important;
  border:1px solid var(--border);
  border-radius:16px;
  box-shadow:var(--shadow);
  min-width:320px;
  padding:10px 0;
}

.main-navigation .sub-menu a{
  height:auto;
  padding:14px 22px;
  line-height:1.45;
}

.main-navigation .sub-menu a:hover{
  background:var(--panel-2) !important;
}

/* =========================
BUTTONS
========================= */

.wp-block-button__link,
.gb-button,
button,
input[type=submit]{
  background:var(--accent) !important;
  color:#000 !important;
  border:none !important;
  box-shadow:none !important;
  border-radius:14px;
  padding:16px 26px;
  font-weight:600;
  transition:.2s ease;
}

.wp-block-button__link:hover,
.gb-button:hover,
button:hover,
input[type=submit]:hover{
  background:var(--accent-hover) !important;
  transform:translateY(-2px);
}

/* =========================
HOME HERO
========================= */

.home .entry-content > h1:first-child{
  font-size:72px;
  margin-top:42px;
  margin-bottom:26px;
  max-width:980px;
}

.home .entry-content > h1:first-child + h2,
.home .entry-content > h1:first-child + p{
  font-size:32px;
  line-height:1.35;
  color:#f0f0f0;
  max-width:900px;
}

.home .entry-content > h1:first-child + * + p{
  font-size:22px;
  max-width:860px;
}
.page .entry-title{
    display:none;
}
/* =========================
MEDIA
========================= */

.wp-block-image img,
figure img,
iframe{
  width:100%;
  display:block;
  border-radius:20px !important;
  box-shadow:
    0 28px 60px rgba(0,0,0,.35),
    0 0 0 1px rgba(255,255,255,.03);
}

iframe{
  border:none !important;
}

/* =========================
CARDS
========================= */

.trust-row,
.guides-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:22px;
  margin:34px 0;
}

.trust-card,
.guide-card{
  background:var(--panel);
  border:1px solid var(--border);
  border-radius:18px;
  padding:28px;
}

.trust-card:hover,
.guide-card:hover{
  background:var(--panel-2);
}

.trust-card strong,
.guide-card h3{
  display:block;
  color:#fff;
  margin-bottom:12px;

}

.trust-card,
.guide-card p{
  color:#c8c8c8;
  font-size:18px;
}

/* =========================
FORMS
========================= */

input,
textarea,
select{
  width:100%;
  padding:14px;
  background:var(--bg) !important;
  color:#fff !important;
  border:1px solid rgba(255,255,255,.10) !important;
  border-radius:12px !important;
}

textarea{ min-height:160px; }

.consultation-form .form-field{
  margin-bottom:16px;
}

.consultation-form .consent-field{
  margin-bottom:10px;
}

.consultation-form .checkbox-option{
  display:flex;
  align-items:center;
  gap:10px;
  min-height:44px;
  margin:0;
}

.consultation-form .checkbox-option input[type=checkbox]{
  flex:0 0 auto;
  width:18px;
  height:18px;
  margin:0;
}

.consultation-form .consultation-button{
  margin-top:0;
}

.page-id-15 .entry-content > h1:first-child{
  margin-top:54px;
}

.page-id-15 .form-intro{
  margin-bottom:28px;
}

.consultation-form button,
.consultation-form .consultation-button,
.consultation-form input[type=submit]{
  background:var(--accent) !important;
  color:#08100f !important;
  border-radius:12px;
  font-weight:700;
  box-shadow:0 10px 24px rgba(0,0,0,.22) !important;
}

.consultation-form button:hover,
.consultation-form .consultation-button:hover,
.consultation-form input[type=submit]:hover{
  background:var(--accent) !important;
  transform:translateY(-1px);
  box-shadow:0 12px 28px rgba(0,0,0,.28) !important;
}

.consultation-form .form-reassurance{
  margin-top:10px;
  margin-bottom:0;
}

.sbf-hp{
  position:absolute !important;
  left:-9999px !important;
  width:1px !important;
  height:1px !important;
  opacity:0 !important;
}

#consultation-form{
  scroll-margin-top:150px;
}

.admin-bar #consultation-form{
  scroll-margin-top:182px;
}

/* =========================
FOOTER
========================= */

.site-footer,
.footer-widgets,
.site-info{
  color:#9a9a9a;
  border-top:1px solid rgba(255,255,255,.05);
}

.mobile-footer-contact{
  display:none;
}

.sbf-desktop-footer{
  display:block;
}

.sbf-desktop-footer .footer-widgets-container{
  max-width:1240px;
  margin:0 auto;
  padding-left:28px;
  padding-right:28px;
}

.sbf-footer-columns{
  display:grid;
  grid-template-columns:minmax(360px,1.35fr) minmax(220px,.85fr) minmax(300px,1fr);
  gap:30px;
  align-items:start;
  padding:34px 0 24px;
}

.sbf-footer-column h2{
  color:#fff;
  font-size:20px;
  line-height:1.2;
  margin:0 0 12px;
}

.sbf-footer-column p,
.sbf-footer-column address{
  color:var(--muted);
  font-size:16px;
  line-height:1.6;
  margin:0;
  max-width:none;
}

.sbf-footer-column address{
  font-style:normal;
}

.sbf-footer-column a{
  color:var(--accent);
}

.site-info{
  padding-top:16px;
  padding-bottom:18px;
}

.inside-site-info{
  max-width:1240px;
}

/* MAP BUTTON SPACING */

.wp-block-buttons,
.gb-button-wrapper,
.map-cta,
.entry-content iframe + .wp-block-buttons{
  margin-top:22px;
  margin-bottom:18px;
}

/* ==================================================
RESPONSIVE
================================================== */

@media (max-width:1024px){

  .trust-row,
  .guides-grid{
    grid-template-columns:repeat(2,1fr);
  }

}

@media (min-width:769px) and (max-width:1100px){

  .inside-header{
    min-height:72px;
    padding-left:18px;
    padding-right:18px;
    gap:16px;
    flex-wrap:nowrap;
  }

  .site-branding,
  .site-logo{
    flex:0 0 auto;
  }

  .site-branding img,
  .custom-logo-link img,
  .custom-logo,
  .site-logo img{
    max-height:46px !important;
  }

  .main-navigation{
    flex:1 1 auto;
    min-width:0;
  }

  .main-navigation .inside-navigation{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    min-height:0;
  }

  .main-navigation .main-nav{
    min-width:0;
  }

  .main-navigation ul{
    flex-wrap:nowrap;
    gap:16px;
  }

  .main-navigation li{
    flex:0 0 auto;
  }

  .main-navigation a{
    height:38px;
    font-size:15px;
    line-height:1.15;
    white-space:nowrap;
  }

  .main-navigation .menu-bar-items,
  .main-navigation .menu-bar-item,
  .main-navigation .search-item{
    display:flex;
    align-items:center;
    flex:0 0 auto;
    height:38px;
  }

  .main-navigation .menu-bar-item > a,
  .main-navigation .search-item > a{
    height:38px;
    display:flex;
    align-items:center;
    justify-content:center;
  }

  .main-navigation .sub-menu{
    min-width:260px;
  }

  h1{
    font-size:52px;
  }

  h2{
    font-size:36px;
  }

  p,
  li{
    font-size:19px;
  }

  .home .entry-content > h1:first-child{
    font-size:56px;
    margin-top:30px;
    margin-bottom:18px;
    max-width:900px;
  }

  .home .entry-content > h1:first-child + h2,
  .home .entry-content > h1:first-child + p{
    font-size:27px;
    line-height:1.32;
    max-width:820px;
  }

  .home .entry-content > h1:first-child + * + p{
    font-size:20px;
    max-width:780px;
  }

  .entry-content,
  .site-main{
    padding-left:22px;
    padding-right:22px;
  }

  .wp-block-buttons,
  .gb-button-wrapper,
  .map-cta,
  .entry-content iframe + .wp-block-buttons{
    margin-top:18px;
    margin-bottom:14px;
  }

}

@media (max-width:768px){

  /* Layout */
  .inside-header,
  .entry-content,
  .site-main,
  .inside-article,
  .form-wrap{
    width:100% !important;
    max-width:none !important;
    margin:0 auto;
    padding-left:18px !important;
    padding-right:18px !important;
  }

  /* Typography */
  h1{
    font-size:42px !important;
    line-height:1.08 !important;
  }

  h2{
    font-size:30px !important;
    line-height:1.14 !important;
  }

  h3{
    font-size:24px !important;
  }

  p,
  li{
    font-size:18px !important;
    line-height:1.6 !important;
    max-width:none !important;
  }

  .home .entry-content > h1:first-child{
    font-size:46px !important;
  }

  .home .entry-content > h1:first-child + h2,
  .home .entry-content > h1:first-child + p{
    font-size:24px !important;
  }

  .home .entry-content > h1:first-child + * + p{
    font-size:18px !important;
  }

  /* Cards */
  .trust-row,
  .guides-grid{
    grid-template-columns:1fr;
  }

  /* Form */
  .consultation-form,
  .consultation-form input,
  .consultation-form textarea,
  .consultation-form select,
  .page-id-15 form,
  .page-id-15 .form-field{
    width:100% !important;
    max-width:none !important;
  }

  .form-field{
    margin-bottom:16px !important;
  }

  .consultation-form .checkbox-option{
    align-items:flex-start;
    width:100%;
    max-width:none;
  }

  .consultation-form .checkbox-option input[type=checkbox]{
    flex:0 0 18px;
    width:18px !important;
    min-width:18px;
    height:18px;
    margin-top:3px;
  }

  .form-wrap h2,
  .form-wrap .form-intro{
    width:100% !important;
    max-width:none !important;
    margin-left:0 !important;
    margin-right:0 !important;
    padding:0 !important;
  }

  /* Footer */
  .sbf-desktop-footer{
    display:none !important;
  }

  .footer-widgets .widget{
    width:100% !important;
    margin-bottom:22px !important;
  }

  .site-footer,
  .footer-widgets,
  .site-info{
    margin-bottom:0 !important;
  }

  .site-info{
    padding-top:18px !important;
    padding-bottom:104px !important;
  }

  .inside-site-info{
    display:block !important;
  }

  .mobile-footer-contact{
    display:block;
    max-width:340px;
    margin:0 auto 14px;
    padding:0 18px 14px;
    color:#cfcfcf;
    font-size:15px;
    line-height:1.55;
    text-align:center;
    border-bottom:1px solid rgba(255,255,255,.08);
  }

  .mobile-footer-contact strong{
    display:block;
    color:#fff;
    font-size:16px;
    font-weight:600;
    margin-bottom:8px;
  }

  .mobile-footer-contact address{
    margin:0 0 8px;
    color:#cfcfcf;
    font-style:normal;
  }

  .mobile-footer-contact a{
    color:var(--accent) !important;
    font-weight:700;
  }

  .copyright-bar{
    padding:0 18px;
    font-size:13px;
    line-height:1.5;
  }

  .footer-widgets .widget:last-child,
  .inside-footer-widgets > div:last-child{
    margin-bottom:0 !important;
  }

}

@media (max-width:480px){

  .site-logo img,
  .custom-logo{
    max-height:48px !important;
  }

  h1,
  .single-post h1,
  .guides-title{
    font-size:38px !important;
    line-height:1.06 !important;
    text-wrap:balance;
  }

  h2{
    line-height:1.1 !important;
    text-wrap:balance;
  }

  .home .entry-content > h1:first-child{
    font-size:40px !important;
    line-height:1.05 !important;
    text-wrap:balance;
  }

  .sbf-results-title,
  .blog .entry-title a,
  .sbf-archive-card .entry-title a{
    font-size:32px !important;
    line-height:1.08 !important;
    text-wrap:balance;
  }

}

/* VIDEO POSTER */
.video-poster {
    position: relative;
    width: 100%;
    max-width: 100%;
    cursor: pointer;
    overflow: hidden;
    border-radius: 16px;
}

.video-poster img {
    display: block;
    width: 100%;
    height: auto;
}

/* PLAY BUTTON */
.play-button {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 72px;
    height: 72px;
    transform: translate(-50%, -50%);
    background: rgba(0,0,0,.65);
    border-radius: 50%;
}

.play-button::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 54%;
    transform: translate(-50%, -50%);
    border-left: 22px solid #fff;
    border-top: 14px solid transparent;
    border-bottom: 14px solid transparent;
}

/* VIDEO PLAYER */
.video-wrap {
    position: relative;
    width: 100%;
    padding-bottom: 56.25%;
    height: 0;
}

.video-wrap iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}
.blog .entry-title a,
.single-post .entry-title,
.single-post h1 {
    color:#fff !important;
	font-size:52px;
    line-height:1.08;
}

.blog .entry-title a:hover {
    color:#00cfc8 !important;
}
@media (max-width:768px){
.blog .entry-title a{
    font-size:38px;
}
}

/* Patient Guides Intro */
.guides-intro-wrap{
  padding:20px 24px 10px;
}

.guides-title{
  font-size:48px;
  line-height:1.1;
  margin:0 0 14px;
  color:#fff;
}

.guides-intro{
  max-width:760px;
  font-size:20px;
  line-height:1.6;
  color:#cfcfcf;
  margin:0 0 10px;
}

@media (max-width:768px){

.guides-intro-wrap{
  padding:18px 18px 6px;
}

.guides-title{
  font-size:38px;
}

.guides-intro{
  font-size:18px;
}

}
/* ==================================================
CTA SYSTEM - CLEAN & STRUCTURED
================================================== */

/* =========================
BLOG CTA (SECONDARY STYLE)
========================= */

.blog-cta-button{
  display:inline-block;
  padding:14px 28px;
  background:transparent;
  border:1px solid var(--accent);
  color:var(--accent) !important;
  font-weight:700;
  text-decoration:none;
  margin-top:15px;
  border-radius:8px;
  transition:.2s ease;
}

.blog-cta-button:hover{
  background:var(--accent);
  color:#000 !important;
}


/* =========================
BLOG CTA BOX (PRIMARY BLOCK CTA)
========================= */

.blog-cta-box{
  max-width:900px;
  margin:60px auto 90px;
  padding:38px;
  border:1px solid #00cfc8;
  border-radius:14px;
  background:#0d0d0d;
  text-align:center;
  clear:both;
}

.blog-cta-box h3{
  color:#fff !important;
  font-size:36px;
  line-height:1.2;
  margin:0 0 16px;
  font-weight:700;
}

.blog-cta-box p{
  color:#cfcfcf !important;
  font-size:20px;
  line-height:1.7;
  max-width:720px;
  margin:0 auto 24px;
}

.blog-cta-box .blog-cta-button{
  background:#00cfc8;
  color:#000 !important;
  border:none;
  padding:16px 34px;
}

.blog-cta-box .blog-cta-button:hover{
  background:#18e5dc;
}


/* =========================
MOBILE CTA HIERARCHY
========================= */

@media (max-width:768px){

  :where(.home, .page-id-11, .page-id-21) .entry-content .wp-block-button__link:not([href="/contact"]):not([href="/contact/"]):not([href$="/contact"]):not([href$="/contact/"]){
    display:inline-flex;
    align-items:center;
    min-height:44px;
    padding:8px 0 !important;
    background:transparent !important;
    color:var(--accent) !important;
    border:0 !important;
    border-radius:0;
    box-shadow:none !important;
    font-weight:700;
    text-decoration:underline;
    text-decoration-thickness:1px;
    text-underline-offset:4px;
  }

  :where(.home, .page-id-11, .page-id-21) .entry-content .wp-block-button__link:not([href="/contact"]):not([href="/contact/"]):not([href$="/contact"]):not([href$="/contact/"]):hover,
  :where(.home, .page-id-11, .page-id-21) .entry-content .wp-block-button__link:not([href="/contact"]):not([href="/contact/"]):not([href$="/contact"]):not([href$="/contact/"]):focus{
    background:transparent !important;
    color:var(--accent-hover) !important;
    transform:none;
  }

}


/* =========================
MOBILE STICKY CTA
========================= */

/* Hidden by default (desktop) */
.mobile-cta{
  display:none !important;
  visibility:hidden !important;
  opacity:0 !important;
  pointer-events:none !important;
}

/* Mobile only */
@media (max-width:768px){

  .mobile-cta.dual-cta{
    display:grid !important;
    grid-template-columns:1fr 1fr;
    gap:8px;
    position:fixed;
    left:12px;
    right:12px;
    bottom:calc(10px + env(safe-area-inset-bottom));
    z-index:99999;

    visibility:visible !important;
    opacity:1 !important;
    pointer-events:auto !important;
  }

  .mobile-cta.dual-cta a{
    display:flex;
    align-items:center;
    justify-content:center;
    height:56px;
    padding:0 10px;
    border-radius:14px;
    font-size:16px;
    font-weight:700;
    text-align:center;
    text-decoration:none;
    box-shadow:0 8px 22px rgba(0,0,0,.25);
  }
  .mobile-cta .cta-call{
    background:var(--panel-2) !important;
    color:#fff !important;
    border:1px solid rgba(255,255,255,.15);
  }

  .mobile-cta .cta-form{
    background:var(--accent) !important;
    color:#000 !important;
    font-weight:800;
  }

}
.cat-links {
    display: none !important;
}
.post-navigation {
    display: none;
}
/* SEARCH + ARCHIVE PAGE STYLING */

.search .site-main,
.archive .site-main{
  max-width:900px;
  margin:0 auto;
  padding:34px 25px 70px;
}

.sbf-results-header{
  background:transparent !important;
  margin:0 0 34px;
  padding:0;
  border:0;
}

.sbf-results-title{
  color:#fff;
  font-size:42px;
  line-height:1.12;
  margin:0 0 12px;
}

.archive-description,
.archive-description p{
  color:#cfcfcf;
  font-size:19px;
  line-height:1.65;
  margin:0;
}

.sbf-post-list{
  display:block;
}

.sbf-archive-card{
  background:transparent !important;
  margin:0 0 38px !important;
  padding:0 0 34px !important;
  border-bottom:1px solid rgba(255,255,255,.08);
}

.sbf-archive-card .inside-article{
  background:transparent !important;
  padding:0 !important;
}

.sbf-archive-card .entry-title{
  margin:0 0 10px;
}

.sbf-archive-card .entry-title a{
  color:#fff !important;
  font-size:38px;
  line-height:1.12;
  text-decoration:none;
  font-weight:500;
}

.sbf-archive-card .entry-title a:hover{
  color:var(--accent) !important;
}

.sbf-archive-card .entry-meta{
  color:#8a8a8a;
  font-size:15px;
  line-height:1.4;
  margin:0 0 14px;
}

.sbf-archive-card .entry-summary,
.sbf-archive-card .entry-summary p{
  color:#cfcfcf;
  font-size:19px;
  line-height:1.68;
  max-width:none;
  margin:0 0 14px;
}

.sbf-archive-card .read-more{
  color:var(--accent) !important;
  font-size:17px;
  font-weight:600;
  text-decoration:none;
}

.sbf-archive-card .read-more:hover{
  color:var(--accent-hover) !important;
}

.search .post-image,
.archive .post-image,
.search .featured-image,
.archive .featured-image,
.search .page-header-image,
.archive .page-header-image,
.search .generate-page-header,
.archive .generate-page-header,
.search .page-header:not(.sbf-results-header),
.archive .page-header:not(.sbf-results-header),
.search .inside-article .featured-image,
.archive .inside-article .featured-image{
  display:none !important;
}

.search .more-link,
.archive .more-link{
  display:none !important;
}

@media (max-width:768px){

  .search .site-main,
  .archive .site-main{
    padding:26px 18px 54px;
  }

  .sbf-results-title{
    font-size:34px;
  }

  .sbf-archive-card{
    margin-bottom:30px !important;
    padding-bottom:28px !important;
  }

  .sbf-archive-card .entry-title a{
    font-size:30px;
  }

  .sbf-archive-card .entry-summary,
  .sbf-archive-card .entry-summary p{
    font-size:18px;
  }
}

/* Search form styling */

.search-form {
    background: #111111 !important;
    padding: 20px;
    border-radius: 6px;
    display: flex;
    align-items: center;
    gap: 0;
}

.navigation-search,
.search-modal-form {
    background: #111111 !important;
}

.search-field,
.search-form-navigation {
    background: transparent !important;
}

.search-form input[type="search"] {
    background: #111111 !important;
    border: 2px solid #16e0c4 !important;
    border-radius: 6px;
    color: #ffffff !important;
    padding: 14px 18px;
    box-shadow: none !important;
    opacity: 1 !important;
}

.search-form input[type="search"]::placeholder {
    color: #9a9a9a;
}

.search-form button,
.search-form input[type="submit"] {
    background: #16e0c4 !important;
    border: none !important;
    color: #000 !important;
}

.search-form input[type="submit"] {
    border-radius: 6px;
    padding: 14px 22px;
    font-weight: 600;
}

.search-form input[type="search"]:focus {
    outline: none;
    box-shadow: 0 0 0 1px #16e0c4 !important;
}
/* =========================
RESPONSIVE CTA BOX
========================= */

@media (max-width:768px){

  .blog-cta-box{
    padding:26px 18px;
    margin:40px 0 50px;
  }

  .blog-cta-box h3{
    font-size:28px;
  }

  .blog-cta-box p{
    font-size:17px;
  }

  .blog-cta-box .blog-cta-button{
    width:100%;
    max-width:320px;
  }

}
.hero-intro{
    max-width:700px;
    font-size:1.2rem;
    line-height:1.7;
    color:var(--muted);
}
.hero-buttons{
    display:flex;
    gap:16px;
    margin:40px 0 60px;
    flex-wrap:wrap;
}

.hero-buttons a{
    display:inline-block;
    padding:14px 24px;
    border-radius:14px;
    font-weight:600;
    text-decoration:none;
    transition:.25s ease;
}

.hero-buttons .primary{
    background:var(--accent);
    color:#0b0f10;
}

.hero-buttons .primary:hover{
    background:var(--accent-hover);
}

.hero-buttons .secondary{
    border:1px solid var(--border);
    color:var(--text);
}

.hero-buttons .secondary:hover{
    border-color:var(--accent);
    color:var(--accent);
}
.service-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
    gap:24px;
    margin-top:40px;
	margin-bottom:40px;
}

.service-card{
    background:var(--panel);
    border:1px solid var(--border);
    border-radius:var(--radius);
    padding:32px;
    transition:.25s ease;
}

.service-card:hover{
    transform:translateY(-4px);
    border-color:var(--accent);
}

.service-card h3{
    margin-top:0;
    margin-bottom:18px;
}
.service-card p{
    max-width:26ch;
}
.case-study-card {
    background: rgba(12, 18, 24, 0.92);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 40px;
    max-width: 980px;
    margin: 0 auto;
    backdrop-filter: blur(6px);
}

.case-study-image img{
    width:100%;
    display:block;
    border-radius:18px;
	margin-bottom:20px;
}

.case-study-card li {
    margin-bottom: 0.8rem;
}


.case-study-image:hover img {
    transform: scale(1.01);
}
.case-study-result {
    display: inline-block;
    margin: 1.5rem 0 2rem;
    padding: 0.9rem 1.2rem;
    border-radius: 12px;
    background: rgba(31, 183, 154, 0.08);
    border: 1px solid rgba(31, 183, 154, 0.2);
    color: #ffffff;
    font-weight: 600;
}
.case-study-metric {
    margin-bottom: 2rem;
}
.case-study-card ul {
    margin-top: 0;
	
}
.case-study-card h2 {
    margin-top: 0;
	max-width: 700px;
}
.services-intro,
.entry-content p{
    max-width: 760px;
}

.service-block {
    background: rgba(12,18,24,.72);
    border: 1px solid var(--border);
    border-radius: 24px;
    padding: 40px;
    margin: 48px 0;
}

.service-block h2 {
    margin-top: 0;
}

.service-block ul {
    margin-bottom: 0;
}

.service-block li {
    margin-bottom: .8rem;
}
p.site-description{
    margin: 0;
    margin-left: 14px;
    
    font-size: 0.92rem;
    font-weight: 400;
    letter-spacing: 0.08em;
    line-height: 1;
    
    color: rgba(255,255,255,0.82);
    
    text-transform: lowercase;
    white-space: nowrap;
    
    align-self: center;
    
    opacity: .82;
    transition: opacity .2s ease;
}

.site-branding:hover p.site-description{
    opacity: 1;
}
.services-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:30px;
}
@media (max-width:768px){

    .services-grid{
        grid-template-columns:1fr;
    }

}
.services-cta .btn-primary{
    display:inline-block;
}
.services-cta{
    margin:80px 0 100px;
    max-width:700px;
}
.services-cta h2{
    margin-bottom:25px;
}

.services-cta p{
    margin-bottom:0;
}
@media (max-width:768px){
    .services-cta .btn-primary{
        display:none;
    }
}
.contact-layout{
    display:grid;
    grid-template-columns:2fr 1fr;
    gap:32px;
    margin-top:60px;
}

.contact-panel{
    background:rgba(12,18,24,.92);
    border:1px solid var(--border);
    border-radius:var(--radius);
    padding:40px;
}

.contact-panel h2{
    margin-top:0;
}

@media(max-width:768px){
    .contact-layout{
        grid-template-columns:1fr;
    }

    .contact-panel{
        padding:28px;
    }
}
.home .hero-buttons a.primary,
.home .hero-buttons a.primary:visited{
  color:#0b0f10 !important;
  -webkit-text-fill-color:#0b0f10;
}
/* =========================
MOBILE WIDTH FIX
========================= */

@media (max-width:768px){

  html,
  body{
    width:100%;
    overflow-x:hidden;
  }

  .site,
  .site-content,
  .content-area,
  .grid-container,
  .container,
  .site-main,
  .inside-article{
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    margin-left:0 !important;
    margin-right:0 !important;
    padding-left:0 !important;
    padding-right:0 !important;
    float:none !important;
    transform:none !important;
  }

  .inside-header,
  .entry-content,
  .form-wrap{
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    margin-left:0 !important;
    margin-right:0 !important;
    padding-left:18px !important;
    padding-right:18px !important;
  }

  .entry-content > *,
  .entry-content p,
  .entry-content li,
  .hero-intro,
  .services-intro,
  .section-lead{
    max-width:100% !important;
  }

  .trust-row,
  .guides-grid,
  .service-grid,
  .services-grid,
  .contact-layout{
    width:100% !important;
    max-width:none !important;
    grid-template-columns:1fr !important;
    margin-left:0 !important;
    margin-right:0 !important;
  }

  .trust-card,
  .guide-card,
  .service-card,
  .service-block,
  .case-study-card,
  .contact-panel,
  .services-cta,
  .blog-cta-box{
    width:100% !important;
    max-width:none !important;
    margin-left:0 !important;
    margin-right:0 !important;
  }

  .consultation-form,
  .consultation-form input,
  .consultation-form textarea,
  .consultation-form select{
    width:100% !important;
    max-width:none !important;
  }

  img,
  iframe,
  video{
    max-width:100%;
  }
}

/* =========================
MOBILE HEADER OVERFLOW FIX
========================= */

@media (max-width:768px){

  html,
  body,
  .site{
    max-width:100%;
    overflow-x:hidden;
  }

  .site-header{
    width:100% !important;
    max-width:100% !important;
    overflow-x:clip;
  }

  .inside-header{
    display:flex;
    flex-wrap:nowrap;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    min-width:0 !important;
    max-width:100% !important;
    min-height:68px;
    overflow:visible;
  }

  .site-branding,
  .site-branding-container{
    display:flex;
    align-items:center;
    flex:1 1 auto;
    min-width:0 !important;
    max-width:100%;
    overflow:hidden;
  }

  .site-logo,
  .custom-logo-link{
    flex:0 0 auto;
    min-width:0;
  }

  .site-logo img,
  .custom-logo{
    max-width:76px !important;
    max-height:42px !important;
  }

  .site-description,
  p.site-description{
    flex:1 1 auto;
    min-width:0 !important;
    max-width:100% !important;
    margin:0 0 0 10px !important;
    color:var(--muted) !important;
    font-size:11px !important;
    line-height:1.25 !important;
    letter-spacing:.02em !important;
    text-transform:none;
    white-space:normal !important;
    overflow-wrap:anywhere;
  }


  .site-content,
  .content-area,
  .site-main,
  .inside-article,
  .entry-content{
    max-width:100% !important;
    overflow-x:clip;
  }

  .mobile-cta.dual-cta{
    left:10px !important;
    right:10px !important;
    width:auto !important;
    max-width:calc(100% - 20px) !important;
    box-sizing:border-box;
  }
}

@media (max-width:430px){

  .site-description,
  p.site-description{
    display:none !important;
  }

  .site-branding,
  .site-branding-container{
    overflow:visible;
  }

  .site-logo img,
  .custom-logo{
    max-width:70px !important;
    max-height:40px !important;
  }
}

/* =========================
MOBILE CTA SPACING
========================= */

@media (max-width:768px){

  .home .entry-content{
    padding-bottom:118px !important;
  }

  .home .hero-buttons{
    margin-bottom:118px !important;
  }

  .site-main,
  .inside-article,
  .entry-content{
    scroll-padding-bottom:96px;
  }

  .mobile-cta.dual-cta{
    bottom:calc(8px + env(safe-area-inset-bottom)) !important;
  }
}

@media (max-width:480px){

  .site-description,
  p.site-description,
  .site-branding .main-title::after{
    display:none !important;
  }
}
.consent-field .checkbox-option {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	line-height: 1.6;
	cursor: pointer;
}

.consent-field .checkbox-option input[type="checkbox"] {
	flex: 0 0 auto;
	margin-top: 0.3rem;
}

.consent-field .checkbox-option span {
	flex: 1;
}

.consent-field .checkbox-option a {
	white-space: nowrap;
}
.services-cta h2 a {
    color: inherit;
    text-decoration: none;
}

.services-cta h2 a:hover,
.services-cta h2 a:focus {
    color: var(--accent, #1fb79a);
}
.work-card__meta {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-bottom: 1rem;
}

.work-link {
    color: #1fb79a;
    text-decoration: none;
    font-weight: 600;
}

.work-link:hover {
    text-decoration: underline;
}

.work-card__category {
    color: #aab8be;
    font-size: 0.95rem;
}

.case-study-image-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin-bottom: 2rem;
}

.case-study-image-grid a {
    display: block;
}

.case-study-image-grid img,
.case-study-image img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 18px;
}

.work-links {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin-top: 2rem;
}

.work-button,
.case-study-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 14px 28px;
    margin-top: 1rem;
    background: #1fb79a;
    color: #081012 !important;
    border-radius: 8px;
    font-weight: 600;
    text-decoration: none;
    transition: background-color 0.2s ease;
}

.work-button:hover,
.case-study-button:hover {
    background: #18a589;
    color: #081012 !important;
    text-decoration: none;
}

.work-cta:last-of-type {
    margin-bottom: 4rem;
}

@media (max-width: 768px) {
    .case-study-image-grid {
        grid-template-columns: 1fr;
    }

    .work-links {
        flex-direction: column;
    }
}

a.gp-button.work-button {
    background: #1fb79a !important;
    color: #081012 !important;
    opacity: 1 !important;
}
a.gp-button.work-button:hover {
    background: #18a589 !important;
    color: #081012 !important;
}