/*
Theme Name: Viridian HR
Theme URI: https://viridianhr.com/
Author: FN Developers
Author URI: https://fn-developers.com
Description: Theme for Viridian HR — pages pre-built for Elementor and the default editor (Charlotte, NC). Ships with five designed pages (Home, Services, About, Contact, Privacy), a native contact form (no plugin needed), full theme options in the Customizer, bundled logo + favicon set, zero external requests and no page-builder dependency.
Version: 3.22.4
Requires at least: 5.9
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: viridianhr
Tags: business, custom-logo, custom-menu, featured-images, translation-ready, full-width-template
*/

/* ==========================================================================
   1. DESIGN TOKENS — navy · teal · champagne
   ========================================================================== */
:root{
  --ink:#0B1526;         /* deepest navy — hero / footer */
  --navy:#14213D;        /* brand navy (matches logo) */
  --navy-soft:#1E2F52;
  --teal:#2E9E86;        /* brand teal (matches logo) */
  --teal-dark:#237C69;
  --teal-light:#8FE3D0;
  --gold:#C2A46A;        /* champagne accent */
  --gold-soft:#E7D8B8;
  --ivory:#FAF8F3;       /* warm luxury background */
  --ivory-2:#F3EFE7;
  --text:#3C4A55;
  --muted:#7C8B96;
  --line:#E4E0D7;
  --line-dark:rgba(255,255,255,.14);
  --radius:14px;
  --radius-sm:9px;
  --shadow-sm:0 2px 10px rgba(11,21,38,.05);
  --shadow:0 14px 38px rgba(11,21,38,.09);
  --shadow-lg:0 30px 70px rgba(11,21,38,.24);
  --wrap:1240px;
  --display:"Fraunces",Georgia,"Times New Roman",serif;
  --body:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}

*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{
  margin:0;background:#fff;color:var(--text);
  font-family:var(--body);font-size:17px;line-height:1.75;
  font-feature-settings:"kern","liga";-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
::selection{background:var(--teal);color:#fff;}

h1,h2,h3,h4,.serif{font-family:var(--display);color:var(--navy);line-height:1.14;margin:0 0 .55em;font-weight:600;font-variation-settings:"SOFT" 0,"WONK" 0;}
h1{font-size:clamp(2.2rem,4.6vw,3.6rem);letter-spacing:-.02em;line-height:1.06;}
h2{font-size:clamp(1.6rem,2.7vw,2.45rem);letter-spacing:-.015em;}
h3{font-family:var(--body);font-size:1.12rem;font-weight:650;line-height:1.4;letter-spacing:-.01em;}
p{margin:0 0 1.05em;}
a{color:var(--teal-dark);text-decoration:none;transition:color .2s ease,opacity .2s ease;}
a:hover{color:var(--navy);}
img{max-width:100%;height:auto;display:block;}
ul,ol{padding-left:1.15em;}
hr{border:0;border-top:1px solid var(--line);margin:1.8em 0;}
strong{color:var(--navy);font-weight:650;}
em{font-style:italic;}
blockquote{margin:1.8em 0;padding:0 0 0 1.4em;border-left:2px solid var(--gold);font-family:var(--display);font-size:1.18rem;font-style:italic;color:var(--navy);}
iframe{max-width:100%;}
figure{margin:0;}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;}

.skip-link{position:absolute;left:-9999px;top:0;background:#fff;color:var(--navy);padding:14px 20px;z-index:999;border-radius:0 0 10px 0;}
.skip-link:focus{left:0;}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap;}

/* ==========================================================================
   2. LAYOUT
   ========================================================================== */
.vhr-wrap{max-width:var(--wrap);margin:0 auto;padding:0 26px;}
.vhr-section{padding:96px 0;}
.vhr-section--tight{padding:60px 0;}
.vhr-section--off{background:var(--ivory);}
.vhr-center{text-align:center;}
.vhr-lead{font-size:1.15rem;max-width:46em;color:#465666;line-height:1.7;}
.vhr-section-head{max-width:42em;margin:0 auto 52px;}
.vhr-section-head .vhr-lead{margin-left:auto;margin-right:auto;}
.vhr-rule{height:1px;border:0;margin:0;background:linear-gradient(90deg,transparent,rgba(194,164,106,.75),transparent);}
.vhr-grid{display:grid;gap:28px;}
.vhr-grid--3{grid-template-columns:repeat(3,1fr);}
.vhr-grid--2{grid-template-columns:1fr 1fr;gap:64px;align-items:center;}

/* Eyebrow with hairline */
.vhr-eyebrow{display:inline-flex;align-items:center;gap:12px;text-transform:uppercase;letter-spacing:.24em;
  font-size:.69rem;font-weight:650;color:var(--teal-dark);margin-bottom:1.15em;font-family:var(--body);}
.vhr-eyebrow::before{content:"";width:26px;height:1px;background:var(--gold);display:inline-block;}
.vhr-eyebrow--light{color:var(--teal-light);}
.vhr-eyebrow--center{justify-content:center;}

/* ==========================================================================
   3. BUTTONS
   ========================================================================== */
.vhr-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:var(--body);
  font-size:.94rem;font-weight:600;letter-spacing:.01em;padding:16px 32px;border-radius:var(--radius-sm);
  border:1px solid transparent;cursor:pointer;transition:all .25s cubic-bezier(.2,.7,.3,1);text-decoration:none;line-height:1.2;}
.vhr-btn:hover{text-decoration:none;transform:translateY(-2px);}
.vhr-btn--primary{background:linear-gradient(180deg,#33A98F,#2E9E86);color:#fff;box-shadow:0 10px 26px rgba(46,158,134,.28);}
.vhr-btn--primary:hover{background:linear-gradient(180deg,#2E9E86,#237C69);color:#fff;box-shadow:0 14px 32px rgba(46,158,134,.36);}
.vhr-btn--ghost{background:rgba(255,255,255,.04);color:#fff;border-color:rgba(255,255,255,.42);backdrop-filter:blur(6px);}
.vhr-btn--ghost:hover{background:#fff;color:var(--navy);border-color:#fff;}
.vhr-btn--light{background:#fff;color:var(--navy);box-shadow:0 10px 26px rgba(11,21,38,.16);}
.vhr-btn--light:hover{color:var(--navy);box-shadow:0 16px 34px rgba(11,21,38,.22);}
.vhr-btn--outline{background:transparent;color:var(--navy);border-color:rgba(20,33,61,.28);}
.vhr-btn--outline:hover{background:var(--navy);color:#fff;border-color:var(--navy);}
.vhr-btn--gold{background:transparent;color:var(--navy);border-color:var(--gold);}
.vhr-btn--gold:hover{background:var(--gold);color:#fff;}
.vhr-btn--block{display:flex;width:100%;text-align:center;}
.vhr-btns{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:8px;}
.vhr-link-arrow{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:.92rem;color:var(--teal-dark);}
.vhr-link-arrow span{transition:transform .25s ease;}
.vhr-link-arrow:hover span{transform:translateX(4px);}

/* ==========================================================================
   4. HEADER
   ========================================================================== */
.site-header{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.94);
  border-bottom:1px solid rgba(228,224,215,.9);backdrop-filter:saturate(180%) blur(14px);
  transition:box-shadow .3s ease,background .3s ease;}
.site-header.scrolled{box-shadow:0 10px 34px rgba(11,21,38,.09);background:rgba(255,255,255,.98);}
.vhr-bar{display:flex;align-items:center;justify-content:space-between;height:88px;gap:24px;}
.vhr-brand{display:flex;align-items:center;gap:13px;text-decoration:none;}
.vhr-brand:hover{text-decoration:none;}
/* v3.18: the lockup no longer carries a sub-line, so the wordmark can sit a
   little larger in the bar without making the header taller. */
.vhr-brand img,.vhr-logo--header{max-height:54px;width:auto;}
.vhr-logo--footer{max-height:56px;}
.vhr-logo--footer{max-height:52px;width:auto;}
.vhr-brand__mark{width:42px;height:42px;flex:none;border-radius:12px;}
.vhr-brand__name{font-family:var(--display);font-size:1.3rem;color:var(--navy);line-height:1.05;font-weight:600;letter-spacing:-.01em;}
.vhr-brand__tag{display:block;font-family:var(--body);font-size:.53rem;letter-spacing:.34em;text-transform:uppercase;color:var(--teal-dark);margin-top:4px;font-weight:600;}
.custom-logo-link img{max-height:50px;width:auto;}
.vhr-nav{display:flex;align-items:center;gap:34px;}
.vhr-nav ul{display:flex;align-items:center;gap:32px;list-style:none;margin:0;padding:0;}
.vhr-nav li{position:relative;}
.vhr-nav a{color:var(--navy);font-size:.93rem;font-weight:500;padding:8px 0;border-bottom:1px solid transparent;letter-spacing:.005em;}
.vhr-nav a:hover{text-decoration:none;color:var(--teal-dark);border-bottom-color:var(--gold);}
.vhr-nav .current-menu-item>a,.vhr-nav .current_page_item>a{color:var(--teal-dark);border-bottom-color:var(--teal);}
.vhr-nav .menu-item-has-children>a::after{content:"▾";font-size:.6em;margin-left:7px;color:var(--muted);}
.vhr-nav ul ul{position:absolute;top:100%;left:-18px;min-width:220px;display:none;flex-direction:column;align-items:flex-start;
  background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px 0;box-shadow:var(--shadow);}
.vhr-nav li:hover>ul{display:flex;}
.vhr-nav ul ul a{padding:10px 22px;display:block;width:100%;border:0;}
.vhr-nav ul ul a:hover{background:var(--ivory);}
.vhr-nav .vhr-btn{margin-left:6px;padding:13px 26px;border-width:1px;border-radius:var(--radius-sm);}
.vhr-nav .vhr-btn:hover{border-bottom:1px solid transparent;transform:translateY(-2px);}
.nav-toggle{display:none;width:48px;height:46px;border:1px solid rgba(20,33,61,.16);background:#fff;border-radius:var(--radius-sm);cursor:pointer;padding:0;align-items:center;justify-content:center;}
.nav-toggle span{display:block;width:20px;height:1.6px;background:var(--navy);position:relative;transition:background .2s;}
.nav-toggle span::before,.nav-toggle span::after{content:"";position:absolute;left:0;width:20px;height:1.6px;background:var(--navy);transition:transform .25s ease,top .25s ease;}
.nav-toggle span::before{top:-6px;} .nav-toggle span::after{top:6px;}
.site-header.nav-open .nav-toggle span{background:transparent;}
.site-header.nav-open .nav-toggle span::before{top:0;transform:rotate(45deg);}
.site-header.nav-open .nav-toggle span::after{top:0;transform:rotate(-45deg);}

/* ==========================================================================
   5. HERO — luxury navy
   ========================================================================== */
.vhr-hero{position:relative;overflow:hidden;background:var(--ink);color:#fff;
  background-image:
    radial-gradient(1100px 620px at 12% -10%,rgba(46,158,134,.30),transparent 62%),
    radial-gradient(900px 560px at 92% 8%,rgba(194,164,106,.16),transparent 60%),
    linear-gradient(160deg,#0B1526 0%,#0E1B30 45%,#0B1526 100%);}
.vhr-hero::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,transparent 60%,rgba(11,21,38,.55) 100%);}
.vhr-hero__inner{position:relative;z-index:2;display:grid;grid-template-columns:1.03fr .97fr;gap:66px;align-items:center;padding:104px 26px 96px;}
.vhr-hero h1{color:#fff;margin-bottom:.42em;letter-spacing:-.025em;}
.vhr-hero h1 em{font-style:italic;color:var(--teal-light);}
.vhr-hero__text{font-size:1.14rem;color:rgba(255,255,255,.76);max-width:33em;margin-bottom:34px;line-height:1.72;}
.vhr-hero__badges{display:flex;gap:10px;flex-wrap:wrap;margin:26px 0 0;list-style:none;padding:0;}
.vhr-badge{display:inline-flex;align-items:center;gap:8px;font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;
  color:rgba(255,255,255,.82);border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:8px 16px;font-weight:600;}
.vhr-badge i{width:5px;height:5px;border-radius:50%;background:var(--gold);display:inline-block;font-style:normal;}
.vhr-hero__media{position:relative;}
.vhr-hero__media img{border-radius:18px;box-shadow:var(--shadow-lg);width:100%;}
.vhr-hero__media::before{content:"";position:absolute;inset:-16px -16px 26px 26px;border:1px solid rgba(194,164,106,.35);border-radius:22px;z-index:-1;}
.vhr-hero__panel{position:absolute;bottom:-26px;left:-26px;background:#fff;color:var(--navy);border-radius:14px;
  padding:18px 22px;box-shadow:var(--shadow);display:flex;align-items:center;gap:14px;max-width:290px;}
.vhr-hero__panel strong{display:block;font-family:var(--display);font-size:1.02rem;line-height:1.3;}
.vhr-hero__panel span{font-size:.8rem;color:var(--muted);}
.vhr-hero__panel .vhr-check{background:#EAF7F2;color:var(--teal-dark);}

/* Plain page hero */
.vhr-hero--plain{position:relative;background:var(--ivory);border-bottom:1px solid var(--line);}
.vhr-hero--plain .vhr-section{padding:88px 0 44px;}
.vhr-hero--plain h1{color:var(--navy);max-width:22em;}
.vhr-hero--plain::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;
  background:linear-gradient(90deg,transparent,rgba(194,164,106,.7),transparent);}

/* Stats */
.vhr-stats{background:var(--navy);position:relative;overflow:hidden;}
.vhr-stats::before{content:"";position:absolute;inset:0;background:radial-gradient(600px 240px at 20% 0%,rgba(46,158,134,.28),transparent 70%);}
.vhr-stats__inner{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:24px;padding:48px 0;}
.vhr-stat{padding-right:20px;border-right:1px solid var(--line-dark);}
.vhr-stat:last-child{border-right:0;}
.vhr-stat h3{color:#fff;font-family:var(--display);font-size:1.62rem;margin:0 0 4px;letter-spacing:-.01em;}
.vhr-stat p{margin:0;color:rgba(255,255,255,.66);font-size:.85rem;letter-spacing:.02em;}

/* ==========================================================================
   6. CARDS · SPLITS · STEPS
   ========================================================================== */
.vhr-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;
  display:flex;flex-direction:column;transition:transform .3s cubic-bezier(.2,.7,.3,1),box-shadow .3s ease,border-color .3s ease;}
.vhr-card:hover{transform:translateY(-7px);box-shadow:var(--shadow);border-color:rgba(46,158,134,.45);}
.vhr-card img{width:100%;max-width:none;aspect-ratio:3/2;object-fit:cover;object-position:center;transition:transform .7s cubic-bezier(.2,.7,.3,1);}
.vhr-card:hover img{transform:scale(1.045);}
.vhr-card__body{padding:28px 30px 32px;display:flex;flex-direction:column;flex:1;}
.vhr-card__body h3{color:var(--navy);margin-bottom:.5em;font-size:1.14rem;}
.vhr-card__body p{font-size:.95rem;margin:0 0 18px;color:#4A5A66;}
.vhr-card__body .vhr-link-arrow{margin-top:auto;}
.vhr-card__index{font-family:var(--display);font-size:.78rem;letter-spacing:.18em;color:var(--gold);font-weight:700;margin-bottom:10px;display:block;}

.vhr-split{display:grid;grid-template-columns:1fr 1fr;gap:66px;align-items:center;}
.vhr-split__media{position:relative;}
.vhr-split__media img{border-radius:var(--radius);box-shadow:var(--shadow);width:100%;}
.vhr-split__media--frame::after{content:"";position:absolute;inset:20px -18px -18px 20px;border:1px solid rgba(194,164,106,.45);border-radius:var(--radius);z-index:-1;}
.vhr-facts{list-style:none;margin:26px 0 0;padding:0;display:grid;gap:14px;}
.vhr-facts li{display:flex;gap:12px;font-size:.97rem;align-items:flex-start;}
.vhr-check{flex:none;width:22px;height:22px;border-radius:50%;background:#EAF7F2;color:var(--teal-dark);
  display:inline-flex;align-items:center;justify-content:center;font-size:.68rem;font-weight:700;margin-top:3px;}

.vhr-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;counter-reset:step;}
.vhr-step{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:38px 34px;position:relative;
  transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease;}
.vhr-step:hover{transform:translateY(-5px);box-shadow:var(--shadow);border-color:rgba(194,164,106,.5);}
.vhr-step__num{font-family:var(--display);font-size:.8rem;letter-spacing:.22em;color:var(--gold);font-weight:700;margin-bottom:14px;}
.vhr-step h3{margin-bottom:.45em;color:var(--navy);}
.vhr-step p{font-size:.95rem;margin:0;color:#4A5A66;}
.vhr-step::after{content:"";position:absolute;left:34px;right:34px;bottom:0;height:2px;
  background:linear-gradient(90deg,transparent,var(--teal),transparent);opacity:0;transition:opacity .3s ease;}
.vhr-step:hover::after{opacity:1;}

/* Services page rows */
.vhr-service{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:stretch;padding:72px 0;border-bottom:1px solid var(--line);}
.vhr-service:last-of-type{border-bottom:0;}
.vhr-service__media img{border-radius:22px;box-shadow:0 30px 66px rgba(11,21,38,.16);width:100%;max-width:none;height:100%;object-fit:cover;object-position:center;}
.vhr-service h2{font-size:1.95rem;margin-bottom:.35em;}
.vhr-service__claim{font-family:var(--display);font-size:1.18rem;color:var(--teal-dark);font-style:italic;margin-bottom:.9em;}
.vhr-service ul{list-style:none;margin:20px 0 0;padding:0;display:grid;gap:12px;}
.vhr-service ul li{display:flex;gap:12px;font-size:.96rem;}
.vhr-service--flip .vhr-service__media{order:-1;}
.vhr-ideal{margin-top:24px;padding:18px 22px;background:var(--ivory);border-left:2px solid var(--gold);border-radius:0 var(--radius-sm) var(--radius-sm) 0;font-size:.94rem;}
.vhr-ideal strong{color:var(--navy);}

.vhr-model{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:38px 32px;transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease;}
.vhr-model:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:rgba(46,158,134,.45);}
.vhr-model--featured{border-color:var(--gold);background:linear-gradient(180deg,#fff, #FDFBF6);}
.vhr-model h3{color:var(--navy);margin-bottom:.4em;font-size:1.16rem;}
.vhr-model p{font-size:.94rem;margin:0;color:#4A5A66;}
.vhr-model__tier{display:block;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);font-weight:700;margin-bottom:10px;}
.vhr-model__flag{display:inline-block;font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;background:var(--navy);color:#fff;padding:5px 12px;border-radius:999px;margin-bottom:14px;font-weight:600;}

/* Quote band */
.vhr-quote{background:var(--ivory);text-align:center;}
.vhr-quote__mark{font-family:var(--display);font-size:4.4rem;line-height:.6;color:var(--gold);display:block;margin-bottom:22px;}
.vhr-quote blockquote{border:0;padding:0;margin:0 auto;max-width:44em;font-size:clamp(1.25rem,2.2vw,1.75rem);line-height:1.5;color:var(--navy);}
.vhr-quote cite{display:block;margin-top:22px;font-family:var(--body);font-style:normal;font-size:.82rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);}

/* ==========================================================================
   7. NEWSLETTER + CTA
   ========================================================================== */
.vhr-news{position:relative;overflow:hidden;background:var(--navy);color:#fff;border-radius:var(--radius);
  padding:56px 60px;display:flex;gap:44px;align-items:center;justify-content:space-between;flex-wrap:wrap;}
.vhr-news::before{content:"";position:absolute;inset:0;background:radial-gradient(560px 260px at 88% 10%,rgba(46,158,134,.32),transparent 70%);}
.vhr-news>*{position:relative;z-index:2;}
.vhr-news h2{color:#fff;margin-bottom:.3em;}
.vhr-news p{color:rgba(255,255,255,.7);margin:0;font-size:.97rem;max-width:34em;}

.vhr-cta{position:relative;overflow:hidden;background:var(--ink);color:#fff;text-align:center;
  background-image:radial-gradient(900px 420px at 50% -30%,rgba(46,158,134,.34),transparent 70%),linear-gradient(180deg,#0B1526,#0E1B30);}
.vhr-cta h2{color:#fff;margin-bottom:.35em;}
.vhr-cta p{color:rgba(255,255,255,.72);margin-bottom:32px;font-size:1.08rem;}
.vhr-cta .vhr-rule{max-width:220px;margin:0 auto 34px;}

/* ==========================================================================
   8. NOTICES · FORMS · INFO
   ========================================================================== */
.vhr-note{border:1px dashed rgba(194,164,106,.8);background:#FDFAF3;color:#7A6410;border-radius:var(--radius-sm);padding:24px 26px;font-size:.93rem;}
.vhr-note p:last-child{margin-bottom:0;}

.vhr-form{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 24px 60px rgba(11,21,38,.09);}
.vhr-field{margin-bottom:20px;}
.vhr-field label{display:block;font-size:.8rem;font-weight:650;color:var(--navy);margin-bottom:8px;letter-spacing:.06em;text-transform:uppercase;}
.vhr-field input,.vhr-field textarea,.vhr-field select{width:100%;border:1px solid #D9DBD6;border-radius:var(--radius-sm);padding:15px 17px;
  font-size:.97rem;font-family:inherit;color:var(--text);background:#FCFCFA;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;}
.vhr-field input:focus,.vhr-field textarea:focus,.vhr-field select:focus{outline:0;border-color:var(--teal);background:#fff;box-shadow:0 0 0 4px rgba(46,158,134,.13);}
.vhr-field textarea{min-height:140px;resize:vertical;}
.vhr-hp{position:absolute!important;left:-9999px!important;height:1px;width:1px;overflow:hidden;}
.vhr-alert{border-radius:var(--radius-sm);padding:16px 20px;font-size:.95rem;margin-bottom:22px;}
.vhr-alert--ok{background:#EAF7F2;color:#1D6B58;border:1px solid #BEE4D8;}
.vhr-alert--err{background:#FDEEEE;color:#8A2B2B;border:1px solid #F3C9C9;}
.vhr-reassure{display:flex;gap:10px;align-items:center;color:var(--teal-dark);font-weight:600;font-size:.9rem;}

.vhr-info{background:var(--ivory);border:1px solid var(--line);border-radius:var(--radius);padding:40px 36px;}
.vhr-info h3{margin-bottom:1.1em;color:var(--navy);}
.vhr-info__list{list-style:none;margin:0 0 26px;padding:0;display:grid;gap:18px;font-size:.95rem;}
.vhr-info__list li{display:flex;gap:12px;}
.vhr-info__label{display:block;font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-bottom:2px;}

/* ==========================================================================
   9. FOOTER
   ========================================================================== */
.site-footer{background:var(--ink);color:rgba(255,255,255,.6);font-size:.93rem;position:relative;overflow:hidden;}
.site-footer::before{content:"";position:absolute;inset:0;background:radial-gradient(700px 300px at 12% 0%,rgba(46,158,134,.16),transparent 70%);pointer-events:none;}
.vhr-foot{position:relative;padding:80px 0 56px;display:grid;grid-template-columns:1.4fr .95fr 1.15fr;gap:52px;}
.vhr-foot h3,.vhr-foot h4{color:#fff;font-family:var(--display);font-size:1.12rem;margin-bottom:1.1em;letter-spacing:.01em;}
.vhr-foot__brand img{max-height:52px;width:auto;margin-bottom:22px;}
.vhr-foot__brand p{color:rgba(255,255,255,.62);font-size:.94rem;max-width:32em;}
.vhr-foot ul{list-style:none;margin:0;padding:0;display:grid;gap:11px;}
.site-footer a{color:rgba(255,255,255,.78);}
.site-footer a:hover{color:#fff;}
.vhr-foot__contact li{color:rgba(255,255,255,.72);}
.vhr-foot__rule{position:relative;height:1px;background:linear-gradient(90deg,transparent,rgba(194,164,106,.55),transparent);}
.vhr-foot__bottom{position:relative;border-top:1px solid rgba(255,255,255,.1);}
.vhr-foot__bottom-inner{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;padding:22px 0;font-size:.83rem;color:rgba(255,255,255,.5);}
.vhr-credit a{color:rgba(255,255,255,.78);border-bottom:1px solid rgba(194,164,106,.5);padding-bottom:1px;}
.vhr-credit a:hover{color:#fff;border-bottom-color:var(--gold);}
.vhr-social{display:flex;gap:11px;margin-top:22px;}
.vhr-social a{display:inline-flex;width:40px;height:40px;border:1px solid rgba(255,255,255,.2);border-radius:50%;
  align-items:center;justify-content:center;color:rgba(255,255,255,.8);font-size:.8rem;font-weight:700;transition:all .25s ease;}
.vhr-social a:hover{background:var(--teal);border-color:var(--teal);color:#fff;transform:translateY(-2px);text-decoration:none;}

/* ==========================================================================
   10. CONTENT · 404 · REVEAL
   ========================================================================== */
.vhr-content{padding:80px 0 96px;}
.vhr-content__inner{max-width:830px;margin:0 auto;}
.vhr-content h2{margin-top:1.5em;}
.vhr-content h3{margin-top:1.6em;font-size:1.2rem;color:var(--navy);}
.vhr-content ul{display:grid;gap:9px;}
.entry-meta{color:var(--muted);font-size:.85rem;margin-bottom:1.5em;letter-spacing:.04em;text-transform:uppercase;}
.vhr-post-list{display:grid;gap:38px;}
.vhr-post-list article{border-bottom:1px solid var(--line);padding-bottom:34px;}
.vhr-404{text-align:center;padding:130px 0;}
.vhr-404__code{font-family:var(--display);font-size:5.5rem;color:var(--teal);line-height:1;margin-bottom:.15em;}
.alignleft{float:left;margin:0 1.4em 1em 0;}
.alignright{float:right;margin:0 0 1em 1.4em;}
.aligncenter{margin-left:auto;margin-right:auto;}
.wp-caption-text,.wp-block-image figcaption{font-size:.85rem;color:var(--muted);text-align:center;}

/* NOTE: reveal blocks start visible. The scroll-in animation only applies when
   the js-anim class is present (see section 17), so content can never stay
   hidden if JavaScript is blocked, fails or the observer never fires. */
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;}
  html{scroll-behavior:auto;}
  .vhr-card:hover,.vhr-btn:hover,.vhr-model:hover,.vhr-step:hover{transform:none;}
}


/* ==========================================================================
   12. SELF-HOSTED FONTS (no external requests)
   ========================================================================== */
@font-face{font-family:"Inter";src:url("assets/fonts/inter-var.woff2") format("woff2-variations");
  font-weight:100 900;font-style:normal;font-display:swap;}
@font-face{font-family:"Fraunces";src:url("assets/fonts/fraunces-var.woff2") format("woff2-variations");
  font-weight:300 900;font-style:normal;font-display:swap;}
@font-face{font-family:"Fraunces";src:url("assets/fonts/fraunces-italic-var.woff2") format("woff2-variations");
  font-weight:300 900;font-style:italic;font-display:swap;}

/* ==========================================================================
   13. ELITE HERO — staggered headline · proof row · rating · client panel
   ========================================================================== */
.vhr-hero--elite::after{background:linear-gradient(180deg,transparent 55%,rgba(11,21,38,.5) 100%);}
.vhr-hero__inner{padding:112px 26px 104px;gap:72px;}
.vhr-hero__headline{display:block;margin:0 0 .38em;}
.vhr-hero__headline .ln{display:block;}
.vhr-hero__headline .ln--light{color:#fff;}
.vhr-hero__headline .ln--accent{font-style:italic;color:var(--teal-light);letter-spacing:-.01em;}
.vhr-hero__headline .ln--thin{font-weight:400;color:rgba(255,255,255,.9);font-size:.88em;}
/* The same headline is written into the Elementor document as two spans. Keep
   the two lines — and their colours — even when the widget's custom class is
   not printed (the Elementor 4 editor drops `css_classes` while editing). */
.ln{display:block;}
.ln--light{color:#fff;}
.ln--accent{font-style:italic;color:var(--teal-light);letter-spacing:-.01em;}
.ln--thin{font-weight:400;color:rgba(255,255,255,.9);font-size:.88em;}
.vhr-hero__proof{display:flex;align-items:center;gap:16px;margin:30px 0 6px;flex-wrap:wrap;}
.vhr-stars{display:inline-flex;gap:4px;color:var(--gold);font-size:15px;letter-spacing:2px;}
.vhr-hero__proof span{font-size:.83rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.62);font-weight:600;}
.vhr-hero__proof em{color:rgba(255,255,255,.86);font-style:normal;font-weight:600;}
/* media stack */
.vhr-hero__stack{position:relative;}
.vhr-hero__rating{position:absolute;top:22px;left:-28px;background:#fff;color:var(--navy);border-radius:14px;
  padding:14px 20px;box-shadow:0 20px 44px rgba(0,0,0,.32);display:flex;align-items:center;gap:12px;z-index:3;}
.vhr-hero__rating .big{font-family:var(--display);font-size:1.5rem;line-height:1;color:var(--navy);}
.vhr-hero__rating small{display:block;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:3px;}
.vhr-hero__panel{bottom:-30px;right:-24px;left:auto;max-width:330px;z-index:3;}
.vhr-hero__avatars{display:flex;margin-bottom:8px;}
.vhr-hero__avatars i{width:30px;height:30px;border-radius:50%;border:2px solid #fff;margin-left:-10px;display:block;
  background:linear-gradient(140deg,var(--teal),var(--navy));}
.vhr-hero__avatars i:first-child{margin-left:0;}
.vhr-hero__avatars i:nth-child(2){background:linear-gradient(140deg,#7FBCA2,var(--teal-dark));}
.vhr-hero__avatars i:nth-child(3){background:linear-gradient(140deg,var(--gold-soft),var(--gold));}
.vhr-hero__scroll{display:inline-flex;align-items:center;gap:10px;margin-top:40px;font-size:.74rem;letter-spacing:.2em;
  text-transform:uppercase;color:rgba(255,255,255,.55);font-weight:600;}
.vhr-hero__scroll::after{content:"";width:44px;height:1px;background:linear-gradient(90deg,var(--gold),transparent);}
/* marquee trust bar */
.vhr-marquee{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;overflow:hidden;}
.vhr-marquee__track{display:flex;gap:0;animation:vhr-marquee 34s linear infinite;width:max-content;}
.vhr-marquee__track span{display:inline-flex;align-items:center;gap:14px;padding:22px 40px;font-family:var(--display);
  font-size:1.02rem;color:var(--navy);white-space:nowrap;letter-spacing:.01em;}
.vhr-marquee__track span::after{content:"";width:5px;height:5px;border-radius:50%;background:var(--gold);display:inline-block;}
@keyframes vhr-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.vhr-marquee__track{animation:none;}}
/* footer credit highlight */
.vhr-credit a{font-weight:600;}
.vhr-credit .vhr-credit__dot{color:rgba(255,255,255,.3);margin:0 10px;}


/* ==========================================================================
   14. ELEMENTOR LAYER — full-bleed pages, 100vh hero, brand widgets
   ========================================================================== */
/* Pages built with Elementor: no side padding, no max width */
body.elementor-page .vhr-page,
body.elementor-page .site-main{width:100%;max-width:none;padding:0;margin:0;}
body.elementor-page .site-main{overflow-x:hidden;}
.elementor-section.elementor-section-boxed>.elementor-container{max-width:1240px;}
.elementor-section.elementor-section-stretched{width:100vw;margin-left:calc(50% - 50vw);}

/* 100vh hero: make sure nothing fights it */
.vhr-hero-el{display:flex;align-items:center;}
.vhr-hero-el>.elementor-container{width:100%;}
@media (max-width:1024px){.vhr-hero-el{min-height:88vh;}}

/* Glass panel inside the hero */
.vhr-hero-el .elementor-column[data-col="40"],
.vhr-hero-el .elementor-col-40{backdrop-filter:blur(10px);}

/* Elementor headings inherit the display font automatically */
.elementor-widget-heading .elementor-heading-title{font-family:var(--display);letter-spacing:-.015em;}
.elementor-widget-heading .elementor-heading-title em{font-style:italic;}

/* Elementor buttons → brand look */
.elementor-button{font-family:var(--body);letter-spacing:.01em;transition:transform .25s ease,background .25s ease,box-shadow .25s ease;}
.elementor-button:hover{transform:translateY(-2px);}

/* Columns used as cards keep their hover */
.elementor-column[data-settings*="background_background"]{transition:transform .3s ease,box-shadow .3s ease;}
.vhr-cards-el .elementor-column:hover{transform:translateY(-6px);box-shadow:0 24px 50px rgba(11,21,38,.13);}

/* Elementor icon lists inherit brand colours */
.elementor-icon-list-icon{color:var(--teal);}

/* Stats + CTA bands breathe on mobile */
@media (max-width:767px){
  .vhr-stats-el .elementor-column,.vhr-cta-el .elementor-column{text-align:center;}
  .vhr-hero-el{padding-left:0;padding-right:0;}
}

/* Elementor editor safety: keep our header/footer visible preview */
.elementor-editor-active .site-header,
.viridian-editor-preview .site-header{position:relative;}


/* ==========================================================================
   15. FULL-BLEED PAGE HERO (default-editor version) + GLASS PANEL
   ========================================================================== */
.vhr-hero--full{min-height:100vh;display:flex;align-items:center;background-size:cover;background-position:center center;background-repeat:no-repeat;}
.vhr-hero--full .vhr-hero__inner{grid-template-columns:1.12fr .88fr;gap:60px;padding:132px 26px 124px;width:100%;}
.vhr-hero--full .vhr-hero__text{max-width:32em;}

.vhr-glass{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.22);border-radius:16px;padding:38px 36px;
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 24px 60px rgba(0,0,0,.35);}
.vhr-glass__kicker{letter-spacing:.2em;text-transform:uppercase;font-size:12px;font-weight:600;color:var(--teal-light);margin:0 0 10px;}
.vhr-glass h3{color:#fff;font-size:1.32rem;margin:0 0 18px;font-family:var(--display);line-height:1.2;}
.vhr-glass__list{list-style:none;margin:0;padding:0;display:grid;gap:12px;}
.vhr-glass__list li{display:flex;gap:11px;align-items:flex-start;color:rgba(255,255,255,.86);font-size:.96rem;}
.vhr-glass .vhr-check{background:rgba(143,227,208,.18);color:var(--teal-light);}
.vhr-glass__foot{color:rgba(255,255,255,.66);font-size:.9rem;margin:0 0 18px;}

/* Pages built by the theme render edge to edge */
.vhr-page--full{width:100%;max-width:none;padding:0;margin:0;}
body.page .site-main{overflow-x:hidden;}

@media (max-width:1024px){
  .vhr-hero--full .vhr-hero__inner{grid-template-columns:1fr;gap:38px;padding:104px 26px 96px;}
  .vhr-glass{padding:32px 28px;}
}
@media (max-width:760px){
  .vhr-hero--full{min-height:auto;}
  .vhr-hero--full .vhr-hero__inner{padding:92px 22px 84px;}
  .vhr-glass{padding:26px 22px;}
}

/* ==========================================================================
   16. DEFAULT-EDITOR CONTENT POLISH
   ========================================================================== */
.vhr-content__inner ul.vhr-facts{margin:22px 0;}
.vhr-content__inner blockquote{margin-top:30px;}
.vhr-content__inner h3{margin-top:34px;}


/* ==========================================================================
   17. LUXURY PASS (v3.2) — refined type, gold detailing, motion
   ========================================================================== */
:root{
  --gold:#C2A46A;
  --gold-line:rgba(194,164,106,.45);
  --ease:cubic-bezier(.2,.7,.2,1);
}
::selection{background:rgba(194,164,106,.32);color:var(--ink);}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--gold);outline-offset:3px;}

/* --- type ---------------------------------------------------------------- */
h1,h2,h3{letter-spacing:-.022em;}
h2{font-size:clamp(1.75rem,3vw,2.66rem);line-height:1.14;}
.vhr-eyebrow{font-size:.7rem;letter-spacing:.3em;color:var(--teal-dark);}
.vhr-eyebrow::before{content:"";display:inline-block;width:26px;height:1px;background:var(--gold);margin-right:4px;vertical-align:middle;}
.vhr-eyebrow--light{color:rgba(255,255,255,.82);}

/* --- buttons ------------------------------------------------------------- */
.vhr-btn{border-radius:999px;padding:17px 32px;font-weight:600;letter-spacing:.015em;position:relative;overflow:hidden;isolation:isolate;}
.vhr-btn::before{content:"";position:absolute;top:-20%;bottom:-20%;width:42%;left:-60%;z-index:-1;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.34),transparent);transform:skewX(-18deg);
  transition:left .75s var(--ease);}
.vhr-btn:hover::before{left:125%;}
.vhr-btn--primary{background:linear-gradient(135deg,#2E9E86,#237C69);border-color:transparent;box-shadow:0 14px 32px rgba(46,158,134,.26);}
.vhr-btn--primary:hover{transform:translateY(-2px);box-shadow:0 20px 44px rgba(46,158,134,.34);}
.vhr-btn--light{background:#fff;color:var(--navy);border-color:transparent;box-shadow:0 12px 30px rgba(0,0,0,.22);}
.vhr-btn--light:hover{transform:translateY(-2px);}
.vhr-btn--gold{background:linear-gradient(135deg,#DCC28C,#C2A46A);color:#241B08;border-color:transparent;box-shadow:0 12px 30px rgba(194,164,106,.28);}
.vhr-btn--gold:hover{transform:translateY(-2px);box-shadow:0 18px 40px rgba(194,164,106,.36);}
.vhr-btn--ghost{border:1px solid rgba(255,255,255,.42);color:#fff;background:rgba(255,255,255,.06);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);}
.vhr-btn--ghost:hover{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.72);transform:translateY(-2px);}
.vhr-btn--outline{border:1px solid rgba(20,33,61,.2);color:var(--navy);background:#fff;}
.vhr-btn--outline:hover{border-color:var(--gold-line);transform:translateY(-2px);box-shadow:0 14px 32px rgba(11,21,38,.09);}

/* --- hero ---------------------------------------------------------------- */
.vhr-hero__headline{letter-spacing:-.032em;}
.vhr-hero__headline .ln--accent{text-shadow:0 2px 34px rgba(143,227,208,.22);}
.vhr-hero--full::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:radial-gradient(120% 90% at 14% 18%,rgba(46,158,134,.18),transparent 56%),
             radial-gradient(90% 80% at 92% 92%,rgba(194,164,106,.13),transparent 62%);}
.vhr-hero--full .vhr-hero__inner{position:relative;z-index:2;}
.vhr-badge{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:9px 16px;
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);}
.vhr-stars{color:var(--gold);letter-spacing:.2em;}
.vhr-glass{position:relative;overflow:hidden;}
.vhr-glass::before{content:"";position:absolute;top:0;left:0;width:78px;height:3px;background:linear-gradient(90deg,var(--gold),transparent);}
.vhr-glass__kicker{color:var(--gold);}
.vhr-glass .vhr-btn--light{margin-top:6px;}

/* --- cards -------------------------------------------------------------- */
.vhr-card{position:relative;border-radius:20px;border:1px solid rgba(11,21,38,.07);
  box-shadow:0 16px 40px rgba(11,21,38,.06);
  transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .45s var(--ease);}
.vhr-card img{transition:transform .9s var(--ease);}
.vhr-card:hover{transform:translateY(-8px);box-shadow:0 34px 72px rgba(11,21,38,.15);border-color:rgba(194,164,106,.38);}
.vhr-card:hover img{transform:scale(1.045);}
.vhr-card h3{font-size:1.3rem;}
.vhr-card__index{font-size:.74rem;letter-spacing:.26em;}
.vhr-link-arrow{color:var(--teal-dark);}
.vhr-link-arrow span{transition:transform .35s var(--ease);display:inline-block;}
.vhr-link-arrow:hover span{transform:translateX(5px);}

/* --- services ----------------------------------------------------------- */
.vhr-service h2{font-size:clamp(1.6rem,2.6vw,2.2rem);}
.vhr-service__media img{transition:transform 1s var(--ease);}
.vhr-service__media:hover img{transform:scale(1.03);}
.vhr-ideal{border-left-width:3px;border-left-color:var(--gold);background:linear-gradient(90deg,#FAF8F3,#fff);}

/* --- stats -------------------------------------------------------------- */
.vhr-stats{background:linear-gradient(115deg,#0B1526 0%,#16294A 52%,#0B1526 100%);}
.vhr-stat{position:relative;padding-top:20px;}
.vhr-stat::before{content:"";position:absolute;top:0;left:0;width:40px;height:1px;background:var(--gold-line);}
.vhr-stat h3{font-size:clamp(1.5rem,2.4vw,1.95rem);}
.vhr-stat p{text-transform:uppercase;letter-spacing:.14em;font-size:.68rem;color:rgba(255,255,255,.55);}

/* --- steps -------------------------------------------------------------- */
.vhr-step{position:relative;padding-top:24px;border-top:1px solid rgba(11,21,38,.08);}
.vhr-step::before{content:"";position:absolute;top:-1px;left:0;width:58px;height:2px;background:linear-gradient(90deg,var(--gold),transparent);}
.vhr-step__num{font-size:.72rem;letter-spacing:.3em;}

/* --- quote -------------------------------------------------------------- */
.vhr-quote{background:linear-gradient(180deg,#FAF8F3,#fff);}
.vhr-quote__mark{font-size:5.4rem;color:rgba(194,164,106,.55);}
.vhr-quote blockquote{font-family:var(--display);font-style:italic;letter-spacing:-.012em;}

/* --- cta ---------------------------------------------------------------- */
.vhr-cta{background:radial-gradient(115% 125% at 50% -12%,#1A2C4E 0%,#0B1526 58%);}
.vhr-cta::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(62% 62% at 50% 0%,rgba(194,164,106,.17),transparent 72%);}
.vhr-cta h2{font-size:clamp(1.8rem,3.2vw,2.6rem);position:relative;}

/* --- header + footer ---------------------------------------------------- */
.vhr-bar{height:92px;}
.vhr-logo--header{max-height:52px;}
.vhr-nav a::after{content:"";position:absolute;left:0;bottom:-3px;width:0;height:1px;background:var(--gold);transition:width .35s var(--ease);}
.vhr-nav a:hover::after{width:100%;}
.site-footer{background:linear-gradient(180deg,#0B1526,#091120);}
.vhr-credit a{color:rgba(255,255,255,.5);border-bottom:1px solid rgba(255,255,255,.14);text-decoration:none;}
.vhr-credit a:hover{color:var(--gold);border-bottom-color:var(--gold-line);}

/* --- motion (only when JS is available) --------------------------------- */
.js-anim .reveal{opacity:0;transform:translateY(24px);}
.js-anim .reveal.is-in{opacity:1;transform:none;
  transition:opacity .85s var(--ease),transform .85s var(--ease);transition-delay:var(--reveal-delay,0s);}
.js-anim .vhr-grid--3>.reveal:nth-child(2),.js-anim .vhr-steps>.reveal:nth-child(2){--reveal-delay:.09s;}
.js-anim .vhr-grid--3>.reveal:nth-child(3),.js-anim .vhr-steps>.reveal:nth-child(3){--reveal-delay:.18s;}
.js-anim .vhr-stats__inner>.reveal:nth-child(2){--reveal-delay:.08s;}
.js-anim .vhr-stats__inner>.reveal:nth-child(3){--reveal-delay:.16s;}
.js-anim .vhr-stats__inner>.reveal:nth-child(4){--reveal-delay:.24s;}

@media (prefers-reduced-motion:reduce){
  .js-anim .reveal{opacity:1;transform:none;}
  .vhr-btn::before{display:none;}
}
@media (max-width:860px){
  .vhr-bar{height:78px;}
  .vhr-step{padding-top:20px;}
  h2{font-size:clamp(1.6rem,5.4vw,2.2rem);}
}


/* ==========================================================================
   18. LAYOUT & RESPONSIVE  (rewritten in v3.7 — single source of truth)
   ==========================================================================
   Everything that decides "how wide / how tall" lives here, once. The layers
   that used to override each other (v3.3 → v3.6) are gone: one value per
   component, ordered base → tablet → phone.

   Widths at a glance (1440 px screen):
     centre column .................. 1240 px  (.vhr-wrap)
     contact container .............. 1400 px  (.vhr-wrap--wide)
     contact form ................... 50% of the page (1000 px cap)
     contact sidebar ................ the other 50%
     service photo .................. ~710 × 592 px (all five rows)
   ========================================================================== */


/* --------------------------------------------------------------------------
   18.1  Containers
   ----------------------------------------------------------------------- */
.vhr-wrap--wide{max-width:1400px;}
.vhr-service__media,
.vhr-split__media,
.vhr-split__media--frame{width:100%;max-width:100%;min-width:0;}
.vhr-wrap img,
.elementor img,
.vhr-page img{max-width:100%;}
.elementor-widget-image{max-width:100%;}
.elementor-widget-image img{max-width:100%;height:auto;}
.vhr-hero__media img{width:100%;height:auto;}


/* --------------------------------------------------------------------------
   18.2  HERO — readable text over the photo (theme + Elementor versions)
   ----------------------------------------------------------------------- */
/* Layered shade: strongest behind the headline (left) + top and bottom scrims,
   so the photo stays visible on the right where the glass panel sits. */
.vhr-hero--full::after{
  background:
    linear-gradient(180deg,rgba(8,15,29,.38) 0%,rgba(8,15,29,.05) 36%,rgba(8,15,29,.07) 58%,rgba(8,15,29,.28) 78%,rgba(8,15,29,.64) 100%),
    radial-gradient(58% 74% at 24% 48%,rgba(6,12,24,.34) 0%,rgba(6,12,24,.14) 46%,rgba(6,12,24,0) 78%),
    linear-gradient(96deg,rgba(7,13,26,.8) 0%,rgba(8,15,29,.64) 26%,rgba(9,17,32,.36) 52%,rgba(9,17,32,.11) 78%,rgba(9,17,32,.02) 100%);
}
.vhr-hero--full .vhr-hero__headline,
.vhr-hero--full .vhr-hero__text,
.vhr-hero--full .vhr-hero__proof{text-shadow:0 2px 22px rgba(5,10,20,.62);}
.vhr-hero--full .vhr-hero__text{color:rgba(255,255,255,.9);font-size:1.16rem;}
.vhr-hero--full .vhr-hero__proof em{color:#fff;}
.vhr-hero--full .vhr-eyebrow--light{color:rgba(255,255,255,.9);text-shadow:0 2px 12px rgba(6,12,24,.6);}
.vhr-hero--full .vhr-badge{background:rgba(9,17,32,.42);border-color:rgba(255,255,255,.24);color:#fff;}
.vhr-glass{background:rgba(9,17,32,.42);border-color:rgba(255,255,255,.24);box-shadow:0 30px 70px rgba(4,9,18,.45);}
.vhr-glass__list li{color:rgba(255,255,255,.92);}
.vhr-glass__foot{color:rgba(255,255,255,.72);}

/* the same shade on the Elementor hero section */
.vhr-hero-el{position:relative;overflow:hidden;}
.vhr-hero-el::after{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:
    linear-gradient(180deg,rgba(8,15,29,.36) 0%,rgba(8,15,29,.05) 36%,rgba(8,15,29,.07) 58%,rgba(8,15,29,.26) 78%,rgba(8,15,29,.62) 100%),
    radial-gradient(58% 74% at 24% 48%,rgba(6,12,24,.3) 0%,rgba(6,12,24,.12) 46%,rgba(6,12,24,0) 78%),
    linear-gradient(96deg,rgba(7,13,26,.76) 0%,rgba(8,15,29,.6) 26%,rgba(9,17,32,.32) 52%,rgba(9,17,32,.09) 78%,rgba(9,17,32,.02) 100%);
}
.vhr-hero-el > .elementor-container{position:relative;z-index:2;}
.vhr-hero-el .elementor-heading-title,
.vhr-hero-el .elementor-widget-text-editor,
.vhr-hero-el .elementor-icon-list-text{text-shadow:0 2px 20px rgba(5,10,20,.6);}
.vhr-hero-el .elementor-widget-text-editor{color:rgba(255,255,255,.9);}
.vhr-hero-el .elementor-icon-list-item{text-shadow:0 1px 14px rgba(5,10,20,.5);}


/* --------------------------------------------------------------------------
   18.3  SERVICES PAGE — large photography (width and height)
   ----------------------------------------------------------------------- */
/* The picture column is the WIDE one on every row.
   The photo is the last child in the markup; on mirrored rows `order:-1` moves
   it into the first column, so the two variants need mirrored column sizes:
     normal row → text .88 | photo 1.12
     flip row   → photo 1.12 | text .88     (media is ordered first) */
.vhr-service{grid-template-columns:1fr 1fr;gap:52px;}
.vhr-service--flip{grid-template-columns:1fr 1fr;}
.vhr-service__media{position:relative;display:flex;}
.vhr-service__media img{height:100%;}
.vhr-service__media img{
  border-radius:22px;
  box-shadow:0 30px 66px rgba(11,21,38,.16);
  object-fit:cover;
  object-position:center;
}
/* thin gold frame behind the photo */
.vhr-service__media::before{content:"";position:absolute;inset:16px -16px -16px 16px;border:1px solid rgba(194,164,106,.4);border-radius:26px;pointer-events:none;}
.vhr-service--flip .vhr-service__media::before{inset:16px 16px -16px -16px;}
.vhr-service h2{margin-bottom:.32em;}

/* Front end: the photograph stretches to the height of the text beside it,
   with a floor so a short text block can never squash it. Only while the
   row is still two columns — below 1024px the row stacks. */
@media (min-width:1241px){
  body:not(.elementor-editor-active):not(.viridian-editor-preview) .vhr-service__media img{min-height:560px;}
}

/* Elementor version of the services page mirrors the same sizes */
.vhr-service-el > .elementor-container{align-items:stretch;}
.vhr-service-el .elementor-column{display:flex;}
.vhr-service-el .elementor-widget-wrap{align-content:center;}
.vhr-service-el .elementor-widget-image{height:100%;display:flex;width:100%;}
.vhr-service-el .elementor-widget-image .elementor-widget-container{width:100%;display:flex;}
.vhr-service-el .elementor-widget-image img{
  width:100%;height:100%;min-height:540px;object-fit:cover;object-position:center;
  border-radius:22px;box-shadow:0 30px 66px rgba(11,21,38,.16);
}
.vhr-service-el .elementor-widget-image{position:relative;}
.vhr-service-el .elementor-widget-image::before{content:"";position:absolute;inset:16px -16px -16px 16px;
  border:1px solid rgba(194,164,106,.4);border-radius:26px;pointer-events:none;z-index:0;}
.vhr-service-el--flip .elementor-widget-image::before{inset:16px 16px -16px -16px;}
@media (max-width:1024px){ .vhr-service-el .elementor-widget-image::before{display:none;} }

/* home service cards + split/location photography */
.vhr-card img{width:100%;max-width:none;aspect-ratio:3/2;object-fit:cover;}
.vhr-split__media img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;object-position:center;border-radius:20px;}
.vhr-cards-el .elementor-widget-image img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;}
.vhr-split-el .elementor-widget-image img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:18px;}


/* --------------------------------------------------------------------------
   18.4  CONTACT PAGE — wide form + sidebar card
   ----------------------------------------------------------------------- */
/* the form gets every pixel that is left after the 340 px sidebar */
.vhr-grid--contact{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:52px;align-items:start;}
.vhr-grid--contact > *{min-width:0;}
.vhr-form{max-width:1000px;width:100%;padding:0;overflow:hidden;}
.vhr-contact-el .vhr-form{max-width:1000px;}
.vhr-contact-el .vhr-info{position:sticky;top:110px;}

/* the form card itself */
.vhr-form__head{background:linear-gradient(135deg,#0F1E38,#0B1526 62%);color:#fff;padding:34px 40px 32px;position:relative;}
.vhr-form__head::after{content:"";position:absolute;left:40px;bottom:0;width:64px;height:2px;background:linear-gradient(90deg,var(--gold),transparent);}
.vhr-form__head .vhr-eyebrow{color:var(--gold);margin-bottom:10px;}
.vhr-form__head h3{color:#fff;font-size:1.5rem;margin:0 0 8px;}
.vhr-form__head p{color:rgba(255,255,255,.72);font-size:.95rem;margin:0;}
.vhr-form>*:not(.vhr-form__head):not(.vhr-hp){margin-left:40px;margin-right:40px;}
.vhr-form__row:first-of-type{margin-top:32px;}
.vhr-form__row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-top:26px;}
.vhr-form__row .vhr-field{margin-bottom:0;min-width:0;}
.vhr-form__row+.vhr-form__row{margin-top:18px;}
.vhr-form__row~.vhr-field{margin-top:22px;}
.vhr-form .vhr-field label{font-size:.72rem;letter-spacing:.12em;color:#41505C;font-weight:700;}
.vhr-form .vhr-field .req{color:var(--gold);}
.vhr-form .vhr-field .opt{color:#93A0AA;letter-spacing:.06em;text-transform:none;font-weight:500;}
.vhr-field input,.vhr-field textarea,.vhr-field select{
  width:100%;display:block;min-height:56px;padding:17px 19px;font-size:1rem;
  border-color:#DCDDD8;background:#FCFCFA;border-radius:12px;
  transition:border-color .25s ease,box-shadow .25s ease,background .25s ease;
}
.vhr-field input::placeholder,.vhr-field textarea::placeholder{color:#9BA6AE;}
.vhr-field input:hover,.vhr-field textarea:hover,.vhr-field select:hover{border-color:#C6C8C1;}
.vhr-field input:focus,.vhr-field textarea:focus,.vhr-field select:focus{border-color:var(--gold);box-shadow:0 0 0 4px rgba(194,164,106,.16);background:#fff;}
.vhr-field textarea{min-height:200px;line-height:1.65;}
.vhr-select{position:relative;}
.vhr-select::after{content:"";position:absolute;right:18px;top:calc(50% - 3px);width:8px;height:8px;border-right:1.6px solid var(--navy);border-bottom:1.6px solid var(--navy);transform:rotate(45deg) translateY(-2px);pointer-events:none;}
.vhr-select select{appearance:none;-webkit-appearance:none;padding-right:46px;}
.vhr-form__submit{width:100%;min-width:0;margin-top:26px;padding:19px 36px;font-size:1rem;letter-spacing:.02em;}
.vhr-form__submit span{font-size:1.05em;transition:transform .3s var(--ease);}
.vhr-form__submit:hover span{transform:translateX(4px);}
.vhr-form__note{display:flex;gap:10px;align-items:flex-start;margin:18px 40px 36px;font-size:.86rem;color:#6B7883;line-height:1.6;}
.vhr-form__note .vhr-check{flex:none;margin-top:1px;}
.vhr-form .vhr-alert{margin:24px 40px 0;}
.vhr-form .vhr-hp{position:absolute;left:-9999px;}
@media (min-width:900px){
  .vhr-form__submit{width:auto;min-width:340px;}
}

/* the "what happens next" card */
.vhr-info{padding:38px 34px;background:linear-gradient(180deg,#FAF8F3,#fff);}
.vhr-info__mark{width:60px;height:60px;border-radius:16px;margin-bottom:18px;box-shadow:0 12px 26px rgba(11,21,38,.14);}
.vhr-info h3{margin-bottom:.5em;}
.vhr-info__lede{font-size:.94rem;color:#4A5A66;margin-bottom:24px;}
.vhr-info__sub{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-weight:700;margin:0 0 16px;}
.vhr-info__steps{list-style:none;margin:0;padding:0;display:grid;gap:14px;}
.vhr-info__steps li{display:flex;gap:14px;font-size:.94rem;color:#3C4A55;align-items:flex-start;}
.vhr-info__steps li span{font-family:var(--display);font-size:.8rem;letter-spacing:.14em;color:var(--gold);font-weight:700;flex:none;padding-top:2px;}
.vhr-info hr{border:0;border-top:1px solid rgba(11,21,38,.08);margin:26px 0;}
.vhr-info__cta{font-size:.94rem;margin:0 0 18px;}
.vhr-info .vhr-btn{width:100%;}


/* --------------------------------------------------------------------------
   18.5  IMAGES INSIDE THE ELEMENTOR EDITOR
   ----------------------------------------------------------------------- */
/* Never crop or hide the picture while editing: natural ratio, full width. */
.elementor-edit-area .elementor-widget-image img,
#elementor-preview .elementor-widget-image img{
  height:auto;max-width:100%;min-height:0;
  background:rgba(11,21,38,.04);
}
.elementor-edit-area .elementor-widget-image,
#elementor-preview .elementor-widget-image{max-width:100%;}
/* the editor canvas can be narrower than the front end — keep the form tidy */
.elementor-edit-area .vhr-form,
#elementor-preview .vhr-form{max-width:none;}
/* Elementor-built pages: an entrance animation can never hide content.
   Elementor marks an animated element `elementor-invisible` (opacity:0) and
   only reveals it from JavaScript; when that trigger misses — very common
   inside the editor — the section (and its pictures) would stay blank. */
body.elementor-page .elementor-invisible,
body.elementor-page [class*="elementor-invisible"]{
  opacity:1 !important;
  visibility:visible !important;
  transform:none !important;
}

/* --------------------------------------------------------------------------
   EDITOR PREVIEW — the same design as the live page, and nothing ever hidden.
   `viridian-editor-preview` is added by the theme itself, so this works on the
   classic editor (v3) and the Atomic editor (v4) alike.
   ----------------------------------------------------------------------- */

/* 1. Elementor entrance animations mark an element `elementor-invisible`
      (opacity:0) and only reveal it from JavaScript. In the editor that
      trigger often never fires — force everything visible. */
.viridian-editor-preview .elementor-invisible,
.viridian-editor-preview [class*="elementor-invisible"],
.elementor-editor-active .elementor-invisible{
  opacity:1 !important;visibility:visible !important;transform:none !important;
  animation:none !important;
}

/* 2. The theme's own reveal animation never hides anything while editing. */
.viridian-editor-preview .reveal,
.viridian-editor-preview .js-anim .reveal,
.elementor-editor-active .reveal{
  opacity:1 !important;transform:none !important;visibility:visible !important;
}

/* 3. Pictures: always visible, natural ratio, never cropped or clipped. */
.viridian-editor-preview img,
.elementor-editor-active img{
  opacity:1 !important;visibility:visible !important;
}
/* Visibility only — never a width. `width:100% !important` here stretched the
   header logo to 1331px inside the builder and cropped the card photographs;
   Elementor already renders every image widget at the size it has on the
   live page. */
.viridian-editor-preview .elementor-widget-image img,
.viridian-editor-preview .vhr-service__media img,
.viridian-editor-preview .vhr-split__media img,
.viridian-editor-preview .vhr-card img,
.elementor-editor-active .elementor-widget-image img,
.elementor-editor-active .vhr-service__media img,
.elementor-editor-active .vhr-split__media img,
.elementor-editor-active .vhr-card img{
  opacity:1 !important;
  visibility:visible !important;
  height:auto !important;
  max-width:100% !important;
  min-height:0 !important;
}
/* The theme's own photograph blocks (used by the fallback design) fill their
   column by design — keep that, but never crop while editing. */
.viridian-editor-preview .vhr-service__media img,
.viridian-editor-preview .vhr-split__media img,
.viridian-editor-preview .vhr-card img,
.elementor-editor-active .vhr-service__media img,
.elementor-editor-active .vhr-split__media img,
.elementor-editor-active .vhr-card img{
  width:100% !important;
  aspect-ratio:auto !important;
  object-fit:contain !important;
  display:block;
}

/* 4. The editor canvas is narrower than a desktop screen — keep the same
      two-column rhythm, it reads exactly like the live page. */
.viridian-editor-preview .vhr-wrap,
.viridian-editor-preview .vhr-wrap--wide{max-width:100%;}


/* --------------------------------------------------------------------------
   18.5b  ELEMENTOR 4 CONTAINERS
   -----------------------------------------------------------------------
   Elementor 4 builds pages from containers (`.e-con`) instead of the legacy
   `.elementor-section` / `.elementor-column` pair. The design rules above are
   written against our own classes, so they keep working — these few rules only
   cover the parts that used to be styled through Elementor's column classes.
   ----------------------------------------------------------------------- */

/* a container never lets a photo spill out of it */
:where(.e-con){max-width:100%;}   /* zero specificity: a .vhr-* design class always wins */
:where(.e-con > .e-con-inner){min-width:0;}
:where(.e-con .elementor-widget-image){max-width:100%;}

/* card hover (the legacy rule targeted .elementor-column) */
.vhr-cards-el .e-con:hover{transform:translateY(-6px);box-shadow:0 24px 50px rgba(11,21,38,.13);}
.vhr-cards-el .e-con{transition:transform .3s ease,box-shadow .3s ease;}

/* the hero container needs the same min-height / centring treatment */
.vhr-hero-el > .e-con-inner,
.vhr-hero-el .e-con-inner{position:relative;z-index:2;}
.vhr-hero-el{display:flex;align-items:center;}
.vhr-hero-el > .e-con-inner{width:100%;}

/* our own container paddings must win over Elementor's defaults */
.e-con.vhr-service-el,
.e-con.vhr-contact-el,
.e-con.vhr-split-el,
.e-con.vhr-cards-el{width:100%;}

/* images inside a container behave exactly like inside a column */
.vhr-service-el .elementor-widget-image img,
.vhr-split-el .elementor-widget-image img,
.vhr-cards-el .elementor-widget-image img,
.vhr-contact-el .elementor-widget-image img{width:100%;height:auto;}

/* --------------------------------------------------------------------------
   18.6  RESPONSIVE — tablet, then phone
   ----------------------------------------------------------------------- */
@media (max-width:1400px){
  .vhr-grid--contact{gap:40px;}
}
@media (max-width:1240px){
  .vhr-grid--contact{gap:34px;}
}
/* two columns only — between 1025 and 1240 the photos keep a taller crop */
@media (min-width:1025px) and (max-width:1240px){
  body:not(.elementor-editor-active):not(.viridian-editor-preview) .vhr-service__media img{min-height:480px;}
  body:not(.elementor-editor-active):not(.viridian-editor-preview) .vhr-service-el .elementor-widget-image img{min-height:480px;}
}
@media (max-width:1080px){
  .vhr-grid--contact{grid-template-columns:1fr;gap:34px;}
  .vhr-form{max-width:none;}
  .vhr-contact-el .vhr-info{position:static;}
}
@media (max-width:1024px){
  .vhr-service,.vhr-service--flip{grid-template-columns:1fr;gap:34px;}
  .vhr-service__media::before{display:none;}
  .vhr-service__media img{height:auto;aspect-ratio:4/3;min-height:0;}
  .vhr-service-el .elementor-widget-image{height:auto;}
  .vhr-service-el .elementor-widget-image img{height:auto;aspect-ratio:4/3;min-height:0;}
  .vhr-split__media img{aspect-ratio:4/3;}
}
@media (max-width:760px){
  .vhr-form__row{grid-template-columns:1fr;gap:18px;}
  .vhr-service__media img{aspect-ratio:4/3;}
}
@media (max-width:640px){
  .vhr-form__head{padding:28px 24px 26px;}
  .vhr-form__head::after{left:24px;}
  .vhr-form>*:not(.vhr-form__head):not(.vhr-hp){margin-left:24px;margin-right:24px;}
  .vhr-form__note{margin:18px 24px 30px;}
  .vhr-form .vhr-alert{margin:20px 24px 0;}
  .vhr-field input,.vhr-field textarea,.vhr-field select{min-height:52px;padding:15px 16px;}
  .vhr-field textarea{min-height:168px;}
  .vhr-form__submit{width:100%;min-width:0;}
  .vhr-info{padding:30px 24px;}
  .vhr-card img{aspect-ratio:16/10;}
  .vhr-split__media img{aspect-ratio:3/2;}
  .vhr-split-el .elementor-widget-image img{aspect-ratio:3/2;}
  .vhr-cards-el .elementor-widget-image img{aspect-ratio:16/10;}
}


/* ==========================================================================
   19. RESPONSIVE — page structure (nav, grids, sections)
   ========================================================================== */
@media (max-width:1020px){
  .vhr-hero__inner{grid-template-columns:1fr;padding:74px 22px 72px;gap:48px;}
  .vhr-hero__panel,.vhr-hero__rating{position:static;margin:18px auto 0;max-width:none;left:auto;right:auto;top:auto;}
  .vhr-hero__rating{justify-content:center;}
  .vhr-hero__scroll{display:none;}
  .vhr-hero__media::before{inset:-12px -12px 18px 18px;}
  .vhr-grid--2,.vhr-split,.vhr-grid--contact,.vhr-service,.vhr-grid--3,.vhr-steps,.vhr-stats__inner,.vhr-foot{grid-template-columns:1fr;}
  .vhr-grid--2,.vhr-split{gap:38px;}
  .vhr-section{padding:68px 0;}
  .vhr-stat{border-right:0;border-bottom:1px solid var(--line-dark);padding:0 0 18px;}
  .vhr-stat:last-child{border-bottom:0;padding-bottom:0;}
  .vhr-stats__inner{gap:22px;padding:40px 0;}
  .vhr-news{padding:44px 34px;}
  .vhr-service--flip .vhr-service__media{order:0;}
  .vhr-service{gap:34px;padding:56px 0;}
  .vhr-foot{gap:40px;padding:60px 0 44px;}
  .vhr-brand img,.vhr-logo--header{max-height:40px;}
  /* mobile nav */
  .nav-toggle{display:inline-flex;}
  .vhr-nav{position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:1px solid var(--line);
    box-shadow:0 26px 44px rgba(11,21,38,.14);padding:18px 26px 28px;display:none;flex-direction:column;align-items:stretch;gap:0;}
  .site-header.nav-open .vhr-nav{display:flex;}
  .vhr-nav ul{flex-direction:column;align-items:stretch;gap:0;}
  .vhr-nav li{border-bottom:1px solid var(--line);}
  .vhr-nav li:last-child{border-bottom:0;}
  .vhr-nav a{display:block;padding:16px 2px;border:0;font-size:1.05rem;font-family:var(--display);color:var(--navy);}
  .vhr-nav ul ul{position:static;display:flex;border:0;box-shadow:none;padding:0 0 0 16px;min-width:0;}
  .vhr-nav .vhr-btn{margin:18px 0 0;display:flex;font-family:var(--body);}
}
@media (max-width:560px){
  body{font-size:16px;}
  .vhr-wrap{padding:0 22px;}
  .vhr-btns .vhr-btn{width:100%;}
  .vhr-form{padding:0;}
  .vhr-info{padding:30px 24px;}
  .vhr-news{padding:34px 24px;}
  .vhr-hero__inner{padding:60px 20px 58px;}
  .vhr-section-head{margin-bottom:36px;}
  .vhr-split__media--frame::after{display:none;}
}
@media print{
  .site-header,.site-footer,.vhr-cta,.vhr-news{display:none;}
  body{font-size:12pt;color:#000;}
}

/* ============================================================================
   §21 · HOME HERO in the Elementor editor (v3.15)
   ----------------------------------------------------------------------------
   New approach on purpose: the hero photograph is a normal Elementor IMAGE
   widget, not a section background. A background is drawn from generated CSS
   and is the one picture type that can silently disappear in some editor
   builds; an image widget is the same element every other page uses, so if
   the other pages show their photos this one does too.
   The photo stays full-bleed and 100vh, the shade and the gold-ruled panel
   are drawn here, so the editor and the live site look identical.
   ========================================================================== */
.vhr-hero-photo-el{display:block;padding:0 !important;margin:0;background:var(--ink);overflow:hidden;min-height:0;}
.vhr-hero-photo-el::after{content:none;}          /* the old background hero's overlay must not return */
.vhr-hero-photo-el > .elementor-container{max-width:none !important;width:100%;display:block;}
.vhr-hero-photo-el .elementor-column{position:relative;width:100%;display:block;}
.vhr-hero-photo-el .elementor-widget-wrap{display:block;padding:0 !important;}
.vhr-hero-photo-el .elementor-widget-image{position:relative;margin:0 !important;width:100%;text-align:inherit;}
.vhr-hero-photo-el .elementor-widget-image img{display:block;width:100%;height:100vh;object-fit:cover;object-position:center 42%;border-radius:0 !important;}
.vhr-hero-photo-el .elementor-widget-image::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(8,15,29,.58) 0%,rgba(8,15,29,.16) 34%,rgba(8,15,29,.55) 72%,rgba(8,15,29,.92) 100%);}

.vhr-hero-panel-el{position:relative;z-index:3;margin-top:-190px;background:transparent !important;}
.vhr-hero-panel-el > .elementor-container{background:rgba(11,21,38,.96);border-top:3px solid var(--gold);
  border-radius:18px;padding:46px 50px 44px;box-shadow:0 42px 90px rgba(8,15,29,.42);}
.vhr-hero-panel-el h1{color:#fff;margin:0 0 .34em;letter-spacing:-.025em;}
.vhr-hero-panel-el h1 em{font-style:italic;color:var(--teal-light);}
.vhr-hero-panel-el .elementor-widget-icon-list .elementor-icon-list-item{margin-bottom:8px;}

@media (max-width:1024px){
  .vhr-hero-photo-el .elementor-widget-image img{height:72vh;}
  .vhr-hero-panel-el{margin-top:-120px;}
  .vhr-hero-panel-el > .elementor-container{padding:34px 30px 32px;}
}
@media (max-width:767px){
  .vhr-hero-photo-el .elementor-widget-image img{height:58vh;}
  .vhr-hero-panel-el .elementor-column + .elementor-column{margin-top:26px;padding-top:24px;border-top:1px solid rgba(255,255,255,.14);}
  .vhr-hero-panel-el{margin-top:-70px;padding-left:14px;padding-right:14px;}
  .vhr-hero-panel-el > .elementor-container{padding:26px 22px 28px;border-radius:14px;}
  .vhr-hero-panel-el h1{font-size:34px !important;line-height:1.08;}
}


/* ============================================================================
   §23 · ABOUT PAGE (v3.17)
   ----------------------------------------------------------------------------
   Founder split, credential chips, the three "how I help" pillars, the phase
   timeline and the life-outside-the-office block. One definition per
   component; the Elementor variants use the same class names, so the editor
   and the live site stay identical.
   ========================================================================== */

/* --- founder ------------------------------------------------------------- */
.vhr-founder{grid-template-columns:0.92fr 1.08fr;align-items:center;gap:64px;}
.vhr-founder__media img{aspect-ratio:4/5;object-fit:cover;object-position:center 18%;}
.vhr-founder__role{margin:-10px 0 22px;font-family:var(--body);font-size:.72rem;letter-spacing:.24em;
  text-transform:uppercase;font-weight:700;color:var(--gold);}
.vhr-founder-el .elementor-widget-image img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;
  object-position:center 18%;border-radius:18px;box-shadow:0 30px 66px rgba(11,21,38,.16);}
.vhr-founder-el .elementor-widget-heading .elementor-heading-title{margin-bottom:0;}
.vhr-founder-el .elementor-widget-text-editor p.vhr-founder__role{margin:-6px 0 20px;}

/* --- credential chips ---------------------------------------------------- */
.vhr-cred{list-style:none;margin:26px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:10px;}
ul.vhr-cred{margin:26px 0 0;padding:0;list-style:none;}
.vhr-cred li{display:inline-flex;align-items:center;gap:8px;margin:0;font-size:.7rem;letter-spacing:.16em;
  text-transform:uppercase;font-weight:600;color:var(--teal-dark);background:#fff;
  border:1px solid rgba(11,21,38,.1);border-radius:999px;padding:9px 16px;}
.vhr-cred li::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--gold);display:inline-block;flex:none;}

/* --- how I help (pillars) ------------------------------------------------ */
.vhr-pillars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;}
.vhr-pillar{position:relative;background:#fff;border:1px solid rgba(11,21,38,.08);border-radius:20px;
  padding:40px 32px 34px;overflow:hidden;box-shadow:0 14px 38px rgba(11,21,38,.05);
  transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .45s var(--ease);}
.vhr-pillar::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--gold),rgba(194,164,106,.04));}
.vhr-pillar:hover{transform:translateY(-6px);box-shadow:0 30px 66px rgba(11,21,38,.12);border-color:rgba(194,164,106,.35);}
.vhr-pillar__num{display:block;font-family:var(--display);font-size:.78rem;letter-spacing:.26em;
  color:var(--gold);font-weight:700;margin:0 0 14px;}
.vhr-pillar h3{margin:0 0 12px;font-size:1.3rem;color:var(--navy);line-height:1.25;}
.vhr-pillar p{font-size:.95rem;color:#4A5A66;margin:0 0 18px;line-height:1.7;}
.vhr-pillar__list{list-style:none;margin:0;padding:18px 0 0;border-top:1px solid var(--line);display:grid;gap:10px;}
ul.vhr-pillar__list{margin:0;padding:18px 0 0;}
.vhr-pillar__list li{display:flex;gap:10px;font-size:.9rem;color:#3C4A55;align-items:flex-start;margin:0;}

.vhr-pillars-el .elementor-column{position:relative;overflow:hidden;}
.vhr-pillars-el .elementor-column::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--gold),rgba(194,164,106,.04));}
.vhr-pillars-el .elementor-widget-text-editor p.vhr-pillar__num{margin:0 0 12px;}
.vhr-pillars-el .elementor-widget-heading .elementor-heading-title{margin-bottom:10px;}
.vhr-pillars-el .elementor-widget-icon-list{margin-top:16px;padding-top:16px;border-top:1px solid var(--line);}

/* --- timeline ------------------------------------------------------------ */
.vhr-timeline{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px;position:relative;margin-top:46px;}
.vhr-timeline::before{content:"";position:absolute;left:6px;right:6px;top:9px;height:1px;
  background:linear-gradient(90deg,rgba(194,164,106,.65),rgba(194,164,106,.1));}
.vhr-timeline__item{position:relative;padding-top:46px;}
.vhr-timeline__dot{position:absolute;top:0;left:0;width:19px;height:19px;border-radius:50%;
  border:1px solid rgba(194,164,106,.85);background:var(--ivory,#FAF8F3);}
.vhr-timeline__dot::after{content:"";position:absolute;inset:5px;border-radius:50%;background:var(--gold);}
.vhr-timeline__step{display:block;font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;
  font-weight:700;color:var(--gold);margin-bottom:10px;}
.vhr-timeline__item h3{font-size:1.18rem;margin:0 0 8px;color:var(--navy);line-height:1.3;}
.vhr-timeline__item p{font-size:.94rem;color:#4A5A66;margin:0;line-height:1.72;}

.vhr-timeline-el > .elementor-container{position:relative;}
.vhr-timeline-el > .elementor-container::before{content:"";position:absolute;left:2%;right:2%;top:9px;
  height:1px;background:linear-gradient(90deg,rgba(194,164,106,.65),rgba(194,164,106,.1));}
.vhr-timeline-el .elementor-column{position:relative;padding-top:46px;}
.vhr-timeline-el .elementor-column::before{content:"";position:absolute;top:0;left:0;width:19px;height:19px;
  border-radius:50%;border:1px solid rgba(194,164,106,.85);background:#fff;}
.vhr-timeline-el .elementor-column::after{content:"";position:absolute;top:5px;left:5px;width:9px;height:9px;
  border-radius:50%;background:var(--gold);}
.vhr-timeline-el .elementor-widget-text-editor p.vhr-timeline__num{margin:0 0 10px;font-size:.7rem;
  letter-spacing:.24em;text-transform:uppercase;font-weight:700;}
.vhr-timeline-el .elementor-widget-heading .elementor-heading-title{margin-bottom:8px;}

/* --- life outside the office --------------------------------------------- */
.vhr-life{display:grid;grid-template-columns:1.04fr .96fr;gap:58px;align-items:stretch;}
.vhr-life > div:first-child{display:flex;flex-direction:column;justify-content:center;}
/* v3.18: the family card is gone, so the skyline photo fills the column and
   sits level with the paragraph beside it instead of floating short. */
.vhr-life__media{display:flex;height:100%;}
.vhr-life__media img{width:100%;height:100%;min-height:400px;aspect-ratio:auto;object-fit:cover;
  border-radius:20px;box-shadow:0 24px 56px rgba(11,21,38,.14);}
.vhr-life__card{margin-top:20px;background:linear-gradient(150deg,#0F1E38,#0B1526 72%);border-radius:18px;
  border-top:3px solid var(--gold);padding:28px 32px 26px;box-shadow:0 26px 60px rgba(8,15,29,.24);}
.vhr-life__kicker{margin:0 0 14px;font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;
  font-weight:700;color:rgba(255,255,255,.62);}
.vhr-life__list{list-style:none;margin:0;padding:0;display:grid;gap:0;}
ul.vhr-life__list{margin:0;padding:0;}
.vhr-life__list li{display:flex;align-items:baseline;justify-content:space-between;gap:18px;margin:0;
  padding:12px 0;border-bottom:1px solid rgba(255,255,255,.09);}
.vhr-life__list li:first-child{padding-top:0;}
.vhr-life__list li:last-child{border-bottom:0;padding-bottom:0;}
.vhr-life__list strong{color:#fff;font-size:.98rem;font-weight:600;}
.vhr-life__list span{color:rgba(255,255,255,.55);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;}
.vhr-life-el > .elementor-container{align-items:stretch;}
.vhr-life-el .elementor-column{display:flex;}
.vhr-life-el .elementor-widget-wrap{align-content:center;}
.vhr-life-el .elementor-widget-image{height:100%;display:flex;width:100%;}
.vhr-life-el .elementor-widget-image .elementor-widget-container{width:100%;display:flex;}
.vhr-life-el .elementor-widget-image img{width:100%;height:100%;min-height:380px;aspect-ratio:auto;
  object-fit:cover;border-radius:20px;box-shadow:0 24px 56px rgba(11,21,38,.14);}
@media (max-width:1024px){
  .vhr-life-el .elementor-widget-image img{height:auto;min-height:0;aspect-ratio:4/3;}
}
.vhr-life-el .elementor-widget-text-editor p.vhr-life__kicker{margin:0 0 14px;}
.vhr-life-el .elementor-widget-text-editor ul.vhr-life__list li{margin:0;}

@media (max-width:1024px){
  .vhr-life__media{height:auto;}
  .vhr-life__media img{height:auto;min-height:0;aspect-ratio:4/3;}
  .vhr-founder{grid-template-columns:1fr;gap:40px;}
  .vhr-founder__media{max-width:460px;}
  .vhr-founder-el .elementor-widget-image{max-width:460px;}
  .vhr-pillars,.vhr-timeline{grid-template-columns:1fr;gap:22px;}
  .vhr-timeline{margin-top:34px;}
  .vhr-timeline::before{display:none;}
  .vhr-life{grid-template-columns:1fr;gap:36px;}
  .vhr-pillars-el > .elementor-container,
  .vhr-timeline-el > .elementor-container,
  .vhr-life-el > .elementor-container,
  .vhr-founder-el > .elementor-container{flex-direction:column;gap:26px;}
  .vhr-pillars-el .elementor-column,
  .vhr-timeline-el .elementor-column,
  .vhr-life-el .elementor-column,
  .vhr-founder-el .elementor-column{width:100% !important;}
  .vhr-timeline-el > .elementor-container::before{display:none;}
  .vhr-pillars-el{gap:22px;}
}
@media (max-width:560px){
  .vhr-pillar{padding:32px 24px 28px;}
  .vhr-life__card{padding:24px 22px 22px;}
  .vhr-founder__role{letter-spacing:.18em;}
}
