/* v20-effects-css */

/* v20 — visual effects */
:root{
  --fx-gold:#d99a54;
  --fx-navy:#172b44;
  --fx-soft:#fff7ed;
}

/* Smooth anchor movement */
html{scroll-behavior:smooth}

/* Reveal animation */
.fx-reveal{
  opacity:0;
  transform:translateY(24px);
  transition:
    opacity .7s cubic-bezier(.2,.7,.2,1),
    transform .7s cubic-bezier(.2,.7,.2,1);
  will-change:opacity,transform;
}
.fx-reveal.fx-visible{
  opacity:1;
  transform:none;
}

/* Stagger cards */
.fx-stagger > *{
  opacity:0;
  transform:translateY(20px) scale(.985);
  transition:
    opacity .6s cubic-bezier(.2,.7,.2,1),
    transform .6s cubic-bezier(.2,.7,.2,1),
    box-shadow .25s ease,
    border-color .25s ease;
}
.fx-stagger.fx-visible > *{
  opacity:1;
  transform:none;
}
.fx-stagger.fx-visible > *:nth-child(2){transition-delay:.05s}
.fx-stagger.fx-visible > *:nth-child(3){transition-delay:.10s}
.fx-stagger.fx-visible > *:nth-child(4){transition-delay:.15s}
.fx-stagger.fx-visible > *:nth-child(5){transition-delay:.20s}
.fx-stagger.fx-visible > *:nth-child(6){transition-delay:.25s}
.fx-stagger.fx-visible > *:nth-child(n+7){transition-delay:.30s}

/* Header glass effect */
.site-header-v12,
.header-v12{
  transition:background .25s ease,box-shadow .25s ease,transform .25s ease;
}
body.fx-scrolled .site-header-v12,
body.fx-scrolled .header-v12{
  background:rgba(255,255,255,.94)!important;
  backdrop-filter:blur(14px);
  box-shadow:0 10px 34px rgba(18,34,53,.10)!important;
}

/* Hero glow/parallax */
.hero-v12{
  overflow:hidden;
}
.hero-v12 .hero-photo-v12,
.hero-v12 .hero-image-v12,
.hero-v12 .hero-v12__photo{
  transition:transform .18s ease-out;
  will-change:transform;
}
.hero-v12 .hero-copy-v12{
  transition:transform .18s ease-out;
  will-change:transform;
}
.hero-v12 .eyebrow-v12{
  animation:fxPulse 4.5s ease-in-out infinite;
}
@keyframes fxPulse{
  0%,100%{box-shadow:0 0 0 0 rgba(217,154,84,0)}
  50%{box-shadow:0 0 0 8px rgba(217,154,84,.08)}
}

/* Button effects */
.btn-v12,
.reviews-v14__btn,
.mobile-contact-v17 a,
.seo-page .cta a{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  transition:
    transform .2s ease,
    box-shadow .2s ease,
    filter .2s ease!important;
}
.btn-v12::before,
.reviews-v14__btn::before,
.seo-page .cta a::before{
  content:"";
  position:absolute;
  top:-120%;
  left:-40%;
  width:34%;
  height:340%;
  transform:rotate(22deg);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.45),transparent);
  transition:left .6s ease;
  z-index:-1;
}
.btn-v12:hover::before,
.reviews-v14__btn:hover::before,
.seo-page .cta a:hover::before{
  left:120%;
}
.btn-v12:hover,
.reviews-v14__btn:hover,
.mobile-contact-v17 a:hover,
.seo-page .cta a:hover{
  transform:translateY(-2px);
  filter:saturate(1.05);
}

/* Card hover depth */
.service-card-v12,
.review-card-v14,
.price-card-v12,
.step-v12,
.stat-v12,
.seo-enrich-v19__card,
.seo-page .related,
.seo-page .cta{
  transition:
    transform .24s ease,
    box-shadow .24s ease,
    border-color .24s ease,
    background .24s ease!important;
}
.service-card-v12:hover,
.review-card-v14:hover,
.price-card-v12:hover,
.step-v12:hover,
.seo-enrich-v19__card:hover{
  transform:translateY(-6px);
  box-shadow:0 22px 52px rgba(18,34,53,.12)!important;
}
.stat-v12:hover{
  transform:translateY(-4px);
}
.service-card-v12:hover .arrow{
  transform:translateX(7px);
}

/* Subtle icon/number pop */
.stat-v12 strong,
.step-v12 .n,
.service-card-v12 .num{
  transition:transform .22s ease,box-shadow .22s ease;
}
.stat-v12:hover strong,
.step-v12:hover .n,
.service-card-v12:hover .num{
  transform:scale(1.07);
}

/* About image depth */
.about-image-v12,
.profile-practice-v13__photo{
  overflow:hidden;
  position:relative;
}
.about-image-v12::after,
.profile-practice-v13__photo::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(120deg,transparent 20%,rgba(255,255,255,.18) 50%,transparent 80%);
  transform:translateX(-120%);
  transition:transform .8s ease;
  pointer-events:none;
}
.about-image-v12:hover::after,
.profile-practice-v13__photo:hover::after{
  transform:translateX(120%);
}

/* FAQ animation */
.faq-v12 details{
  overflow:hidden;
}
.faq-v12 details > *:not(summary){
  animation:fxFade .25s ease;
}
@keyframes fxFade{
  from{opacity:0;transform:translateY(-6px)}
  to{opacity:1;transform:none}
}

/* Link underline effect */
.footer-links-v12 a,
.seo-page .related a{
  position:relative;
  text-decoration:none!important;
}
.footer-links-v12 a::after,
.seo-page .related a::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-2px;
  width:100%;
  height:1px;
  background:currentColor;
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .2s ease;
  opacity:.45;
}
.footer-links-v12 a:hover::after,
.seo-page .related a:hover::after{
  transform:scaleX(1);
}

/* Reviews emphasis */
.review-card-v14{
  position:relative;
}
.review-card-v14::after{
  content:"“";
  position:absolute;
  right:18px;
  bottom:-24px;
  font:700 92px/1 Georgia,serif;
  color:rgba(217,154,84,.07);
  pointer-events:none;
}

/* CTA glow */
.contact-card-v12{
  position:relative;
}
.contact-card-v12::before{
  content:"";
  position:absolute;
  width:180px;
  height:180px;
  right:-60px;
  top:-60px;
  background:radial-gradient(circle,rgba(217,154,84,.22),transparent 70%);
  animation:fxGlow 5s ease-in-out infinite;
}
@keyframes fxGlow{
  0%,100%{transform:scale(.9);opacity:.55}
  50%{transform:scale(1.15);opacity:1}
}

/* Floating back-to-top button */
.fx-top{
  position:fixed;
  right:18px;
  bottom:92px;
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  border:1px solid #dfe5ec;
  border-radius:14px;
  background:rgba(255,255,255,.94);
  color:#172b44;
  box-shadow:0 10px 28px rgba(18,34,53,.12);
  cursor:pointer;
  opacity:0;
  visibility:hidden;
  transform:translateY(10px);
  transition:.22s ease;
  z-index:1100;
}
.fx-top.fx-show{
  opacity:1;
  visibility:visible;
  transform:none;
}
.fx-top:hover{transform:translateY(-2px)}

/* Desktop-only micro parallax */
@media(min-width:901px){
  .hero-v12[data-fx-parallax="1"] .hero-photo-v12,
  .hero-v12[data-fx-parallax="1"] .hero-image-v12,
  .hero-v12[data-fx-parallax="1"] .hero-v12__photo{
    transform:translate3d(var(--fx-photo-x,0),var(--fx-photo-y,0),0);
  }
  .hero-v12[data-fx-parallax="1"] .hero-copy-v12{
    transform:translate3d(var(--fx-copy-x,0),var(--fx-copy-y,0),0);
  }
}

/* Mobile simplification */
@media(max-width:760px){
  .fx-reveal{transform:translateY(14px)}
  .service-card-v12:hover,
  .review-card-v14:hover,
  .price-card-v12:hover,
  .step-v12:hover,
  .seo-enrich-v19__card:hover{
    transform:none;
  }
  .fx-top{
    right:12px;
    bottom:92px;
    width:42px;
    height:42px;
  }
}

/* Respect accessibility */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    scroll-behavior:auto!important;
    transition-duration:.001ms!important;
  }
  .fx-reveal,.fx-stagger>*{
    opacity:1!important;
    transform:none!important;
  }
}


/* v21-usability-css */

/* v21 — usability */
:root{
  --ux-focus:#2f6fed;
  --ux-navy:#172b44;
  --ux-gold:#d99a54;
}

/* Keyboard accessibility */
.skip-link-v21{
  position:fixed;
  left:14px;
  top:10px;
  z-index:5000;
  padding:10px 14px;
  border-radius:10px;
  background:#172b44;
  color:#fff!important;
  text-decoration:none;
  transform:translateY(-160%);
  transition:transform .18s ease;
}
.skip-link-v21:focus{transform:none}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{
  outline:3px solid rgba(47,111,237,.48)!important;
  outline-offset:3px!important;
}

/* Current navigation */
.nav-v12 a.is-current{
  color:#a86120!important;
  font-weight:800!important;
}
.nav-v12 a.is-current::after{transform:scaleX(1)!important}

/* Better reading width */
.seo-page>p,
.seo-page>ul,
.seo-page>ol{
  max-width:920px;
}

/* Breadcrumbs */
.breadcrumbs-v21{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  align-items:center;
  margin:0 0 22px;
  color:#758195;
  font-size:14px;
}
.breadcrumbs-v21 a{
  color:#4d5c70;
  text-decoration:none;
}
.breadcrumbs-v21 a:hover{text-decoration:underline}
.breadcrumbs-v21 span[aria-hidden="true"]{opacity:.55}

/* Quick actions on service pages */
.quick-actions-v21{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:22px 0 32px;
  padding:16px;
  border:1px solid #e2e7ed;
  border-radius:16px;
  background:#f8fafc;
}
.quick-actions-v21 a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  padding:11px 16px;
  border-radius:11px;
  text-decoration:none;
  font-weight:800;
}
.quick-actions-v21__primary{
  background:#d99a54;
  color:#fff!important;
}
.quick-actions-v21__dark{
  background:#172b44;
  color:#fff!important;
}
.quick-actions-v21__light{
  border:1px solid #d8dee7;
  background:#fff;
  color:#172b44!important;
}

/* Service cards become obvious actions */
.service-card-v12{
  cursor:pointer;
}
.service-card-v12:focus-within{
  outline:3px solid rgba(47,111,237,.28);
  outline-offset:3px;
}
.service-card-v12 a{
  position:relative;
  z-index:2;
}

/* Form clarity */
.form-help-v21{
  margin:14px 0 0;
  padding:14px 16px;
  border-radius:12px;
  background:#f7f9fb;
  color:#5f6d80;
  font-size:14px;
  line-height:1.55;
}
.form-help-v21 a{color:#425b78}
.form-status-v21{
  display:none;
  margin-top:12px;
  padding:12px 14px;
  border-radius:10px;
  font-size:14px;
}
.form-status-v21.is-error{
  display:block;
  background:#fff2f2;
  color:#9e3030;
  border:1px solid #f0caca;
}
.form-status-v21.is-ok{
  display:block;
  background:#effaf3;
  color:#276641;
  border:1px solid #cce8d5;
}
.form-v12 label:not(.checkbox-label):not([for="agreement"]){
  display:block;
  margin:0 0 7px;
  color:#33445a;
  font-size:14px;
  font-weight:700;
}
.form-v12 input,.form-v12 textarea,.form-v12 select{
  min-height:50px;
}
.form-v12 textarea{min-height:120px}

/* More usable FAQ */
.faq-v12 summary{
  cursor:pointer!important;
  min-height:48px;
  display:flex;
  align-items:center;
}

/* Contact details */
.contact-links-v21{
  display:grid;
  gap:10px;
  margin-top:18px;
}
.contact-links-v21 a{
  display:flex;
  align-items:center;
  min-height:46px;
  padding:11px 13px;
  border-radius:10px;
  background:rgba(255,255,255,.08);
  text-decoration:none;
}

/* Desktop floating contact button */
.desktop-contact-v21{
  position:fixed;
  right:18px;
  bottom:24px;
  z-index:1050;
  display:flex;
  gap:8px;
  padding:7px;
  border:1px solid rgba(220,226,234,.95);
  border-radius:16px;
  background:rgba(255,255,255,.95);
  box-shadow:0 12px 36px rgba(18,34,53,.16);
  backdrop-filter:blur(12px);
}
.desktop-contact-v21 a{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:10px 14px;
  border-radius:10px;
  text-decoration:none;
  font-weight:800;
}
.desktop-contact-v21__call{background:#172b44;color:#fff!important}
.desktop-contact-v21__write{background:#d99a54;color:#fff!important}

/* Small utility note */
.page-note-v21{
  margin:26px 0;
  padding:16px 18px;
  border-left:4px solid #d99a54;
  border-radius:0 12px 12px 0;
  background:#fffaf4;
  color:#556378;
}

/* Mobile */
@media(max-width:760px){
  .desktop-contact-v21{display:none}
  .breadcrumbs-v21{
    font-size:13px;
    margin-bottom:16px;
  }
  .quick-actions-v21{
    display:grid;
    grid-template-columns:1fr;
    margin:18px 0 26px;
    padding:12px;
  }
  .quick-actions-v21 a{
    width:100%;
  }
  .service-card-v12{
    cursor:default;
  }
  .seo-page>p,.seo-page>ul,.seo-page>ol{max-width:none}
}


/* v23-icons-css */

/* v23 — icons on top of v21 */
.icon-v23{
  display:inline-flex;
  width:20px;
  height:20px;
  flex:0 0 20px;
  align-items:center;
  justify-content:center;
  vertical-align:-4px;
}
.icon-v23 svg{
  display:block;
  width:100%;
  height:100%;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.nav-v12 a{
  display:inline-flex!important;
  align-items:center;
  gap:7px;
}
.nav-v12 .icon-v23{width:17px;height:17px;flex-basis:17px;opacity:.72}
.quick-actions-v21 a,
.desktop-contact-v21 a,
.mobile-contact-v17 a{
  gap:8px;
}
.quick-actions-v21 .icon-v23,
.desktop-contact-v21 .icon-v23,
.mobile-contact-v17 .icon-v23{
  width:18px;height:18px;flex-basis:18px;
}
.contact-links-v21 a{gap:9px}
.contact-links-v21 .icon-v23{color:#e4aa6c}
.service-card-v12 .arrow{
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
}
.service-card-v12 .arrow .icon-v23{width:19px;height:19px}
.check-v12 b{
  display:grid!important;
  place-items:center!important;
}
.check-v12 b .icon-v23{
  width:18px;height:18px;
}
.footer-links-v12 a{
  display:inline-flex;
  align-items:center;
  gap:7px;
}
.footer-links-v12 .icon-v23{
  width:15px;height:15px;flex-basis:15px;opacity:.7;
}
@media(max-width:900px){
  .nav-v12 a{gap:10px}
  .nav-v12 .icon-v23{width:19px;height:19px;flex-basis:19px}
}


/* v24-marketing-css */

/* v24 — SEO/UX/marketing conversion layer */
.trust-strip-v24{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:20px 0 26px}
.trust-item-v24{padding:13px 14px;border:1px solid #e2e7ed;border-radius:14px;background:rgba(255,255,255,.86);font-size:14px;line-height:1.35;color:#46566b}
.trust-item-v24 strong{display:block;color:#172b44;margin-bottom:3px}
.marketing-cta-v24{margin:34px 0;padding:28px;border-radius:22px;background:linear-gradient(135deg,#172b44,#263f5d);color:#fff;box-shadow:0 18px 46px rgba(18,34,53,.15)}
.marketing-cta-v24 h2{color:#fff!important;margin:0 0 9px!important;font-size:30px!important}
.marketing-cta-v24 p{max-width:760px;color:#dce4ed!important;margin:0 0 18px!important}
.marketing-cta-v24__actions{display:flex;flex-wrap:wrap;gap:10px}
.marketing-cta-v24__actions a{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:11px 17px;border-radius:11px;text-decoration:none;font-weight:800}
.marketing-cta-v24__primary{background:#d99a54;color:#fff!important}
.marketing-cta-v24__secondary{background:#fff;color:#172b44!important}
.process-note-v24{margin:22px 0;padding:20px 22px;border:1px solid #e4e9ef;border-radius:16px;background:#f8fafc}
.process-note-v24 h2{font-size:25px!important;margin:0 0 10px!important}
.process-note-v24 ol{margin:0;padding-left:21px}
.process-note-v24 li{margin:7px 0}
.intent-links-v24{display:flex;flex-wrap:wrap;gap:9px;margin:20px 0 28px}
.intent-links-v24 a{padding:9px 12px;border:1px solid #dce3eb;border-radius:999px;background:#fff;color:#33465d;text-decoration:none;font-size:14px;font-weight:700}
.intent-links-v24 a:hover{border-color:#d99a54;background:#fff8ef}
@media(max-width:760px){
 .trust-strip-v24{grid-template-columns:1fr 1fr}
 .marketing-cta-v24{padding:22px}
 .marketing-cta-v24__actions{display:grid;grid-template-columns:1fr}
 .marketing-cta-v24__actions a{width:100%}
}
@media(max-width:430px){.trust-strip-v24{grid-template-columns:1fr}}


/* v25-layout-fix-css */

/* v25 — layout/rhythm fixes based on screenshot review */
:root{
  --v25-container:1240px;
  --v25-gutter:28px;
}

/* Normalize section rhythm */
.section-v12,
.reviews-v14,
.faq-v12,
.contact-section-v12{
  padding-top:72px!important;
  padding-bottom:72px!important;
  min-height:0!important;
}
main > section,
main > .section-v12,
main > .reviews-v14{
  min-height:0!important;
}

/* Remove accidental giant gaps caused by inherited spacing */
.reviews-v14{
  margin-bottom:0!important;
}
.reviews-v14__more{
  margin-top:26px!important;
  margin-bottom:0!important;
}
.reviews-v14 + .marketing-cta-v24{
  margin-top:44px!important;
}
.marketing-cta-v24 + .section-v12,
.marketing-cta-v24 + section{
  margin-top:0!important;
}

/* Marketing CTA must follow site grid, not viewport edge-to-edge */
.marketing-cta-v24{
  width:calc(100% - (var(--v25-gutter) * 2))!important;
  max-width:var(--v25-container)!important;
  margin:44px auto!important;
  padding:30px 32px!important;
  border-radius:22px!important;
}
.marketing-cta-v24 h2{
  max-width:900px!important;
  font-size:clamp(28px,3vw,38px)!important;
  line-height:1.15!important;
}
.marketing-cta-v24 p{
  max-width:850px!important;
  margin-bottom:18px!important;
}

/* FAQ alignment */
.faq-v12{
  max-width:var(--v25-container)!important;
  width:calc(100% - (var(--v25-gutter) * 2))!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
.faq-v12 .section-head-v12{
  margin-bottom:28px!important;
}

/* Steps: eliminate giant top/bottom whitespace */
.steps-section-v12,
.section-v12:has(.steps-v12){
  padding-top:68px!important;
  padding-bottom:68px!important;
}
.steps-v12{
  margin-top:26px!important;
  margin-bottom:0!important;
  align-items:stretch!important;
}
.step-v12{
  min-height:210px!important;
  padding:26px 28px!important;
}

/* Prices: keep heading and explanatory copy visually together */
.section-v12:has(.price-v12){
  padding-top:70px!important;
  padding-bottom:70px!important;
}
.section-v12:has(.price-v12) .section-head-v12{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(320px,.85fr)!important;
  gap:48px!important;
  align-items:end!important;
  margin-bottom:32px!important;
}
.section-v12:has(.price-v12) .section-head-v12 > div,
.section-v12:has(.price-v12) .section-head-v12 > p{
  margin:0!important;
}
.price-v12{
  margin-top:0!important;
}

/* Keep all large content blocks on same horizontal grid */
.container-v12,
.reviews-v14 .container-v12,
.section-v12 > .container-v12{
  max-width:var(--v25-container)!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding-left:var(--v25-gutter)!important;
  padding-right:var(--v25-gutter)!important;
}

/* Prevent full viewport children from escaping container */
main .marketing-cta-v24,
main .process-note-v24{
  box-sizing:border-box!important;
}

/* Related/SEO blocks */
.process-note-v24{
  margin-top:20px!important;
  margin-bottom:28px!important;
}
.intent-links-v24{
  margin-top:18px!important;
  margin-bottom:26px!important;
}

/* Floating controls: avoid stacking over each other */
.desktop-contact-v21{
  right:22px!important;
  bottom:22px!important;
}
.fx-top,
.back-to-top,
.to-top{
  right:26px!important;
  bottom:96px!important;
}
body:has(.desktop-contact-v21) .fx-top{
  bottom:94px!important;
}

/* If old duplicate to-top button exists, hide it in favor of fx-top */
body:has(.fx-top) .back-to-top,
body:has(.fx-top) .to-top{
  display:none!important;
}

/* Footer should start naturally, not after forced blank area */
.site-footer-v12{
  margin-top:0!important;
}

/* Tablet */
@media(max-width:980px){
  :root{--v25-gutter:22px}
  .section-v12:has(.price-v12) .section-head-v12{
    grid-template-columns:1fr!important;
    gap:16px!important;
    align-items:start!important;
  }
}

/* Mobile */
@media(max-width:760px){
  :root{--v25-gutter:18px}
  .section-v12,
  .reviews-v14,
  .faq-v12,
  .contact-section-v12{
    padding-top:52px!important;
    padding-bottom:52px!important;
  }
  .marketing-cta-v24{
    margin:32px auto!important;
    padding:22px 20px!important;
    border-radius:18px!important;
  }
  .marketing-cta-v24 h2{
    font-size:28px!important;
  }
  .steps-section-v12,
  .section-v12:has(.steps-v12),
  .section-v12:has(.price-v12){
    padding-top:52px!important;
    padding-bottom:52px!important;
  }
  .steps-v12{
    margin-top:20px!important;
  }
  .step-v12{
    min-height:0!important;
    padding:22px!important;
  }
  .faq-v12{
    width:calc(100% - 36px)!important;
  }
  .desktop-contact-v21{display:none!important}
  .fx-top{
    bottom:92px!important;
    right:12px!important;
  }
}

/* Very small phones */
@media(max-width:420px){
  .marketing-cta-v24{
    width:calc(100% - 28px)!important;
  }
  .faq-v12{
    width:calc(100% - 28px)!important;
  }
}
