/*
Theme Name: Digital AI Vault Fresh
Theme URI: https://digitalaivault.com
Author: Digital AI Vault
Description: A customer-first dark commerce and technology theme for Digital AI Vault. WooCommerce support, a guided homepage whose every section is editable and reorderable from the Customizer, dedicated Services, Solutions, SaaS, Marketplace, Academy, Enterprise, About, Contact and Blog pages, a derived colour system and a transparent brand mark.
Version: 5.0.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: digital-ai-vault-fresh
Tags: e-commerce, blog, custom-logo, custom-menu, featured-images, dark, one-column, two-columns, translation-ready
*/

:root{
  --bg:#050914;
  --bg-soft:#08101e;
  --surface:#0d1728;
  --surface-2:#122039;
  --surface-3:#172844;
  --text:#f1f5ff;
  --muted:#9aaaca;
  --faint:#697a9a;
  --cyan:#27d6f5;
  --blue:#2f86ff;
  --violet:#7b63ff;
  --grad:linear-gradient(120deg,var(--cyan),var(--blue) 48%,var(--violet));
  --on-accent:#06101d;
  --radius-sm:12px;
  --logo-h:44px;
  --shop-cols:3;
  --accent-soft:rgba(39,214,245,.08);
  --accent-line:rgba(39,214,245,.35);
  --accent-glow:rgba(39,214,245,.55);
  --violet-soft:rgba(123,99,255,.1);
  --violet-line:rgba(123,99,255,.2);
  --font-display:Inter,ui-sans-serif,system-ui,sans-serif;
  --line:rgba(157,180,228,.16);
  --line-strong:rgba(157,180,228,.28);
  --shadow:0 28px 80px -34px rgba(0,0,0,.75);
  --radius:16px;
  --radius-lg:26px;
  --wrap:1200px;
  --header-h:76px;
  --font:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --mono:"SFMono-Regular",Consolas,"Liberation Mono",monospace;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}
body.nav-open{overflow:hidden}
a{color:var(--cyan);text-decoration:none}a:hover{color:#8cecff}
img{max-width:100%;height:auto;display:block}
h1,h2,h3,h4,h5,h6{margin:0 0 .55em;color:var(--text);font-family:var(--font-display,var(--font));line-height:1.14;letter-spacing:-.02em;text-wrap:balance}h1{font-size:clamp(2.1rem,4.2vw,3.5rem)}h2{font-size:clamp(1.65rem,2.6vw,2.35rem)}h3{font-size:1.2rem}p{margin:0 0 1.1em}
ul,ol{padding-left:1.3em}
::selection{background:var(--accent-line);color:#fff}
:focus-visible{outline:2px solid var(--cyan);outline-offset:3px;border-radius:6px}
.wrap{width:min(100%,var(--wrap));margin-inline:auto;padding-inline:clamp(20px,4vw,40px)}
.section{padding-block:clamp(68px,8vw,112px)}
.section--soft{background:linear-gradient(180deg,rgba(255,255,255,.018),rgba(255,255,255,.008));border-block:1px solid var(--line)}
.section-head{max-width:720px;margin-bottom:clamp(30px,4vw,52px)}
.section-head.center{text-align:center;margin-inline:auto}.section-head p{color:var(--muted);font-size:1.08rem}
.eyebrow{display:inline-flex;align-items:center;gap:10px;margin-bottom:18px;font:700 .72rem/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--cyan)}
.eyebrow:before{content:"";width:28px;height:1px;background:var(--grad)}
.grad-text{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.muted{color:var(--muted)}.faint{color:var(--faint)}
.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Header */
.announce{background:var(--grad);border-bottom:1px solid var(--line);color:var(--on-accent);font-size:.84rem;font-weight:600}.announce .wrap{display:flex;justify-content:center;align-items:center;gap:10px;min-height:36px;text-align:center}.announce a{color:var(--on-accent)!important;font-weight:800;text-decoration:underline;text-underline-offset:3px}
.site-header{position:sticky;top:0;z-index:90;min-height:var(--header-h);background:rgba(5,9,20,.83);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}
.header-inner{min-height:var(--header-h);padding-block:10px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:28px}
.brand{display:inline-flex;align-items:center;gap:12px;color:var(--text)!important;min-width:max-content;line-height:1.15}.brand-logo{width:auto;height:var(--logo-h,44px);max-width:min(230px,38vw);object-fit:contain;object-position:left center;background:none;flex:none}.brand-text{display:flex;flex-direction:column;justify-content:center}.brand-name{display:block;font-size:1.05rem;font-weight:800;letter-spacing:-.01em}.brand-sub{display:block;color:var(--faint);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;margin-top:3px}
.main-nav{justify-self:center}.main-nav ul{list-style:none;display:flex;align-items:center;gap:4px;margin:0;padding:0}.main-nav li{position:relative}.main-nav a{display:flex;align-items:center;min-height:42px;padding:0 12px;border-radius:10px;color:var(--muted);font-size:.93rem;font-weight:650;transition:.2s}.main-nav a:hover,.main-nav .current-menu-item>a,.main-nav .current-menu-ancestor>a{color:var(--text);background:rgba(255,255,255,.05)}
.main-nav .sub-menu{position:absolute;top:calc(100% + 8px);left:0;width:230px;display:grid;gap:3px;padding:10px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);opacity:0;visibility:hidden;transform:translateY(6px);transition:.2s}.main-nav li:hover>.sub-menu,.main-nav li:focus-within>.sub-menu{opacity:1;visibility:visible;transform:none}.main-nav .sub-menu a{min-height:40px}
.header-actions{display:flex;align-items:center;gap:8px}.icon-btn{width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--line);background:rgba(255,255,255,.035);border-radius:12px;color:var(--text);cursor:pointer;transition:.2s}.icon-btn:hover{border-color:var(--accent-line);background:var(--accent-soft)}.icon-btn svg{width:19px;height:19px}.cart-link{position:relative}.cart-count{position:absolute;right:-6px;top:-6px;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:var(--grad);display:grid;place-items:center;color:var(--on-accent);font-size:.66rem;font-weight:900}.menu-toggle{display:none}
.header-search{position:fixed;inset:var(--header-h) 0 auto;z-index:80;background:rgba(5,9,20,.97);border-bottom:1px solid var(--line);padding:22px 0;opacity:0;visibility:hidden;transform:translateY(-8px);transition:.22s}.header-search.is-open{opacity:1;visibility:visible;transform:none}.header-search form{max-width:760px;margin:auto;display:flex;gap:10px}

/* Forms */
input[type=text],input[type=email],input[type=search],input[type=password],input[type=url],input[type=tel],textarea,select{width:100%;background:var(--surface);border:1px solid var(--line);border-radius:12px;color:var(--text);padding:.88em 1em;font:inherit}textarea{min-height:150px;resize:vertical}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-soft)}label{font-weight:700;font-size:.88rem;display:block;margin-bottom:7px}.form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.field{margin-bottom:16px}.hp-field{position:absolute;left:-9999px}.form-notice{padding:14px 16px;border-radius:var(--radius-sm,12px);margin-bottom:22px;border:1px solid var(--accent-line);background:var(--accent-soft)}

/* Buttons */
.btn,.wp-block-button__link,.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,.woocommerce #respond input#submit{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:.78em 1.3em;border-radius:12px;border:1px solid transparent;font-weight:800;font-size:.92rem;line-height:1.1;cursor:pointer;transition:transform .2s,border-color .2s,box-shadow .2s,background .2s;text-decoration:none}
.btn-primary,.woocommerce a.button.alt,.woocommerce button.button.alt,.woocommerce .single_add_to_cart_button{background:var(--grad)!important;color:var(--on-accent)!important;box-shadow:0 10px 30px -12px var(--accent-glow)}.btn-primary:hover,.woocommerce a.button.alt:hover,.woocommerce button.button.alt:hover{transform:translateY(-2px);color:var(--on-accent)!important;box-shadow:0 18px 40px -15px var(--accent-glow)}
.btn-secondary,.woocommerce a.button,.woocommerce button.button{background:rgba(255,255,255,.045);border-color:var(--line);color:var(--text)!important}.btn-secondary:hover,.woocommerce a.button:hover,.woocommerce button.button:hover{transform:translateY(-2px);background:rgba(255,255,255,.075);border-color:var(--line-strong);color:#fff!important}.btn-sm{min-height:42px;padding:.65em 1em}

/* Hero */
.hero{position:relative;overflow:hidden;padding:clamp(84px,10vw,136px) 0 clamp(70px,8vw,104px);background:radial-gradient(700px 420px at 80% 12%,rgba(123,99,255,.18),transparent 64%),radial-gradient(600px 360px at 12% 90%,rgba(39,214,245,.12),transparent 62%)}
.hero:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(157,180,228,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(157,180,228,.055) 1px,transparent 1px);background-size:58px 58px;mask-image:linear-gradient(to bottom,#000,transparent 86%);pointer-events:none}
.hero-grid{position:relative;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(300px,.72fr);gap:clamp(40px,5vw,68px);align-items:center}.hero-grid--single{grid-template-columns:minmax(0,1fr)}.hero-grid--single .hero-copy{max-width:860px}.hero-copy{min-width:0;max-width:none}.hero h1{font-size:clamp(2.2rem,3.5vw,3.4rem);line-height:1.09;letter-spacing:-.028em;max-width:21ch;margin-bottom:.5em;text-wrap:balance;overflow-wrap:break-word}.hero-grid--single .hero h1,.hero-grid--single h1{max-width:26ch}.hero-lede{max-width:50ch;font-size:clamp(1.02rem,1.35vw,1.16rem);color:var(--muted);margin-bottom:28px}.hero-actions{display:flex;flex-wrap:wrap;gap:12px}.trust-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}.trust-chip{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:rgba(255,255,255,.025);padding:8px 11px;border-radius:10px;color:var(--muted);font-size:.78rem;font-weight:700}.trust-chip:before{content:"✓";color:var(--cyan)}
.hero-visual{position:relative;min-height:390px;display:flex;align-items:center;justify-content:center}.hero-brand-card{position:relative;width:min(100%,430px);min-height:360px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:36px 30px 30px;border:1px solid rgba(147,176,255,.14);border-radius:28px;background:linear-gradient(155deg,rgba(15,27,48,.86),rgba(7,13,25,.72));box-shadow:0 34px 80px -38px rgba(0,0,0,.9);overflow:hidden}.hero-brand-card:before{content:"";position:absolute;inset:0;background:radial-gradient(300px 190px at 50% 44%,rgba(39,214,245,.11),transparent 68%),radial-gradient(260px 180px at 64% 58%,rgba(123,99,255,.13),transparent 72%);pointer-events:none}.hero-brand-kicker{position:relative;z-index:2;font-size:.76rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:20px}.hero-logo-wrap{position:relative;z-index:2;width:min(230px,65%);aspect-ratio:1;display:grid;place-items:center}.hero-brand-glow{position:absolute;inset:12%;border-radius:50%;background:radial-gradient(circle,var(--accent-soft),var(--violet-soft) 48%,transparent 72%);filter:blur(12px)}.visual-logo{position:relative;z-index:2;width:100%;height:100%;object-fit:contain;background:none;filter:drop-shadow(0 18px 34px rgba(0,0,0,.5))}.hero-brand-line{position:relative;z-index:2;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:7px 10px;margin:22px 0 0;color:var(--muted);font-size:.78rem;line-height:1.5}.hero-brand-line i{width:4px;height:4px;border-radius:50%;background:var(--cyan);flex:none;opacity:.75}

/* Guided pathways */
.path-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.path-card{position:relative;padding:24px;border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(160deg,var(--surface),rgba(13,23,40,.7));color:var(--text)!important;min-height:210px;display:flex;flex-direction:column;transition:.22s}.path-card:hover{transform:translateY(-4px);border-color:var(--accent-line);box-shadow:var(--shadow)}.path-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:var(--radius-sm,12px);background:var(--accent-soft);border:1px solid var(--accent-line);color:var(--cyan);margin-bottom:22px;flex:none}.path-icon svg{width:22px;height:22px}.path-card h3{min-height:2.3em;display:flex;align-items:flex-start;margin-bottom:.35em}.path-card p{color:var(--muted);font-size:.92rem;margin-bottom:18px}.path-link{margin-top:auto;font-weight:800;font-size:.86rem}.path-link:after{content:" →"}

/* Cards/grids */
.grid{display:grid;gap:18px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:26px;display:flex;flex-direction:column}.card p{color:var(--muted)}.card h3{min-height:1.2em}.card .link-arrow{margin-top:auto;padding-top:12px}.card-link{color:var(--text)!important;transition:.22s}.card-link:hover{transform:translateY(-4px);border-color:var(--accent-line);box-shadow:var(--shadow)}
.card-tag{display:inline-flex;align-self:flex-start;margin-bottom:14px;padding:5px 8px;border-radius:7px;background:var(--violet-soft);border:1px solid var(--violet-line);color:var(--muted);font:700 .66rem/1 var(--mono);letter-spacing:.08em;text-transform:uppercase}.icon-card{width:46px;height:46px;display:grid;place-items:center;border-radius:var(--radius-sm,12px);background:var(--violet-soft);color:var(--cyan);border:1px solid var(--violet-line);margin-bottom:20px;flex:none}.icon-card svg{width:23px;height:23px}.link-arrow{display:inline-flex;align-self:flex-start;font-size:.86rem;font-weight:800;color:var(--cyan)}.link-arrow:after{content:"→";margin-left:7px}
.feature-band{padding:34px;border:1px solid var(--line);border-radius:var(--radius-lg);background:radial-gradient(420px 220px at 95% 5%,rgba(123,99,255,.18),transparent 60%),radial-gradient(420px 220px at 0 100%,rgba(39,214,245,.12),transparent 60%),var(--surface)}
.feature-band-grid{display:grid;grid-template-columns:1fr auto;gap:30px;align-items:center}.feature-band p{color:var(--muted);max-width:720px;margin-bottom:0}

/* Content page */
.page-hero{padding:clamp(64px,7vw,92px) 0 46px;border-bottom:1px solid var(--line);background:radial-gradient(600px 280px at 75% 0,rgba(123,99,255,.12),transparent 65%)}.page-hero h1{font-size:clamp(2rem,3.4vw,3.1rem);max-width:20ch}.page-hero .lead{max-width:720px;color:var(--muted);font-size:1.08rem}.breadcrumbs{margin-bottom:24px;color:var(--faint);font-size:.76rem}.breadcrumbs a{color:var(--muted)}.breadcrumbs span{margin:0 6px}.content-shell{display:grid;grid-template-columns:minmax(0,760px) minmax(220px,1fr);gap:70px;align-items:start}.entry-content{max-width:780px}.entry-content>*+*{margin-top:1.15em}.entry-content h2{margin-top:1.5em;font-size:2rem}.entry-content h3{margin-top:1.35em}.entry-content p,.entry-content li{color:#c7d3e9}.entry-content a{text-decoration:underline;text-decoration-color:rgba(39,214,245,.35);text-underline-offset:3px}.entry-content blockquote{margin:1.7em 0;padding:18px 22px;border-left:3px solid var(--cyan);background:var(--surface);border-radius:0 12px 12px 0;color:var(--muted)}.entry-content img{border-radius:var(--radius)}
.side-card{position:sticky;top:calc(var(--header-h) + 28px)}.side-card ul{list-style:none;padding:0;margin:0;display:grid;gap:10px}.side-card a{color:var(--muted)}.side-card a:hover{color:var(--text)}

/* Service lists */
.service-card ul,.check-list{list-style:none;padding:0;margin:18px 0 0;display:grid;gap:9px}.service-card li,.check-list li{position:relative;padding-left:23px;color:var(--muted);font-size:.92rem}.service-card li:before,.check-list li:before{content:"✓";position:absolute;left:0;color:var(--cyan);font-weight:900}

/* Blog */
.blog-tools{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:32px}.category-chips{display:flex;flex-wrap:wrap;gap:8px}.category-chip{border:1px solid var(--line);padding:7px 10px;border-radius:9px;color:var(--muted);font-size:.78rem}.category-chip:hover{color:var(--text);border-color:var(--line-strong)}.post-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.post-card{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);display:flex;flex-direction:column}.post-thumb{aspect-ratio:16/9;background:linear-gradient(135deg,#10233f,#19133e);overflow:hidden}.post-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .35s}.post-card:hover .post-thumb img{transform:scale(1.035)}.post-body{padding:22px;display:flex;flex:1;flex-direction:column}.post-meta{font:700 .67rem/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--faint);margin-bottom:12px}.post-card h2,.post-card h3{font-size:1.2rem}.post-card h2 a,.post-card h3 a{color:var(--text)}.post-excerpt{color:var(--muted);font-size:.9rem}.post-read{margin-top:auto;padding-top:10px;font-weight:800;font-size:.82rem}/* Pagination — WooCommerce wraps items in <ul class="page-numbers">, so the
   item styles must be scoped to links/spans or the <ul> inherits them. */
.pagination,.nav-links,.woocommerce nav.woocommerce-pagination ul,ul.page-numbers{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;margin:40px 0 0;padding:0;list-style:none;border:0}
.woocommerce nav.woocommerce-pagination{margin-top:0}
.woocommerce nav.woocommerce-pagination ul li,ul.page-numbers li{margin:0;padding:0;border:0;list-style:none;display:block;overflow:visible}
a.page-numbers,span.page-numbers,.nav-links a,.nav-links span{min-width:40px;height:40px;padding:0 12px;display:inline-grid;place-items:center;border:1px solid var(--line);border-radius:var(--radius-sm,10px);color:var(--muted);font-size:.9rem;font-weight:700;transition:.2s}
span.page-numbers.current,a.page-numbers:hover,.nav-links a:hover{background:var(--surface-2);border-color:var(--line-strong);color:var(--text)}
span.page-numbers.dots{border-color:transparent;background:none}
.single-meta{display:flex;flex-wrap:wrap;gap:10px 18px;color:var(--faint);font-size:.78rem;margin-bottom:18px}.single-featured{margin:0 0 42px;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--line)}.single-content{max-width:800px;margin-inline:auto}.related-posts{margin-top:72px;padding-top:50px;border-top:1px solid var(--line)}

/* WooCommerce */
.woocommerce .woocommerce-breadcrumb{color:var(--faint);font-size:.78rem}.woocommerce .woocommerce-breadcrumb a{color:var(--muted)}.woocommerce .woocommerce-result-count,.woocommerce .woocommerce-ordering{color:var(--muted)}.woocommerce .woocommerce-ordering select{width:auto;min-width:180px}.woocommerce ul.products{display:grid!important;grid-template-columns:repeat(var(--shop-cols,3),minmax(0,1fr));gap:20px;margin:0!important;padding:0!important;list-style:none}.woocommerce ul.products:before,.woocommerce ul.products:after{display:none}.woocommerce ul.products li.product{position:relative;float:none!important;width:auto!important;margin:0!important;padding:14px 14px 20px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);display:flex;flex-direction:column;transition:.22s}.woocommerce ul.products li.product:hover{transform:translateY(-4px);border-color:var(--accent-line);box-shadow:var(--shadow)}.woocommerce ul.products li.product a img{border-radius:12px;aspect-ratio:4/3;object-fit:cover;margin-bottom:14px}.woocommerce ul.products li.product>a:not(.button):not(.added_to_cart){display:flex;flex-direction:column;flex:1 1 auto}.woocommerce ul.products li.product .woocommerce-loop-product__title{color:var(--text);font-size:1rem;line-height:1.35;padding:0 3px 10px}.woocommerce ul.products li.product .price{display:block;margin-top:auto;color:var(--cyan)!important;font-weight:800;padding:0 3px 14px}.woocommerce ul.products li.product .button{margin-top:0;align-self:flex-start;flex:0 0 auto}.woocommerce span.onsale{position:absolute;z-index:2;display:inline-block;width:auto;background:var(--grad);color:var(--on-accent);min-width:0;min-height:0;line-height:1;margin:0;padding:7px 9px;border-radius:8px;left:24px;top:24px;font-size:.7rem;font-weight:800}.woocommerce div.product .product_title{font-size:clamp(1.6rem,2.8vw,2.4rem)}.woocommerce div.product p.price,.woocommerce div.product span.price{color:var(--cyan);font-weight:850}.woocommerce div.product div.images img{border-radius:var(--radius)}.woocommerce-message,.woocommerce-info,.woocommerce-error{background:var(--surface);color:var(--text);border-top-color:var(--cyan);border-radius:12px}.woocommerce table.shop_table{border-color:var(--line);border-radius:12px}.woocommerce table.shop_table th,.woocommerce table.shop_table td{border-color:var(--line);color:var(--text)}.woocommerce-cart table.cart img{width:64px;border-radius:10px}.woocommerce-checkout #payment{background:var(--surface);border-radius:12px}.woocommerce-checkout #payment div.payment_box{background:var(--surface-2);color:var(--muted)}.woocommerce-checkout #payment div.payment_box:before{border-bottom-color:var(--surface-2)}.woocommerce-account .woocommerce-MyAccount-navigation ul{list-style:none;padding:0;display:grid;gap:6px}.woocommerce-account .woocommerce-MyAccount-navigation a{display:block;padding:10px 12px;border:1px solid var(--line);border-radius:10px;color:var(--muted)}.woocommerce-account .woocommerce-MyAccount-navigation .is-active a{color:var(--text);background:var(--surface)}

/* Footer */
.site-footer{border-top:1px solid var(--line);background:#060c17;padding:64px 0 28px}.footer-grid{display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:42px}.footer-brand p{color:var(--muted);max-width:380px;margin-top:16px}.footer-col h3{font-size:.74rem;font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin-bottom:18px}.footer-col ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}.footer-col a{color:var(--muted);font-size:.9rem}.footer-col a:hover{color:var(--text)}.footer-bottom{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;border-top:1px solid var(--line);margin-top:48px;padding-top:24px;color:var(--faint);font-size:.76rem}.footer-badge{display:inline-flex;align-items:center;gap:7px}.footer-badge:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--cyan);box-shadow:0 0 12px var(--accent-glow)}

/* Responsive */
@media(max-width:1080px){.main-nav{display:none;position:absolute;top:100%;left:0;right:0;width:auto;justify-self:stretch;background:var(--bg);border-bottom:1px solid var(--line);box-shadow:0 24px 48px -24px rgba(0,0,0,.9);padding:18px clamp(16px,5vw,26px) 24px;max-height:calc(100vh - var(--header-h) - 20px);overflow-y:auto;-webkit-overflow-scrolling:touch;z-index:95}.main-nav.is-open{display:block}.main-nav ul{display:grid;gap:4px}.main-nav a{font-size:1.05rem;min-height:48px}.main-nav .sub-menu{position:static;width:auto;opacity:1;visibility:visible;transform:none;background:transparent;border:0;box-shadow:none;padding:4px 0 8px 18px}.main-nav .sub-menu a{font-size:.93rem}.menu-toggle{display:grid}.header-inner{grid-template-columns:auto 1fr auto}.hero-grid{grid-template-columns:1fr}.hero-copy{max-width:820px}.hero h1{max-width:820px}.hero-visual{min-height:auto;max-width:560px;width:100%;margin:auto}.hero-brand-card{min-height:330px}.path-grid,.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3,.post-grid,.woocommerce ul.products{grid-template-columns:repeat(2,minmax(0,1fr))}.footer-grid{grid-template-columns:1.3fr 1fr 1fr}.footer-grid .footer-col:last-child{grid-column:2/4}.content-shell{grid-template-columns:1fr}.side-card{position:static}}
@media(max-width:720px){:root{--header-h:68px}.brand-logo{height:38px}.brand-name{font-size:.96rem}.brand-sub{display:none}.header-actions .account-link{display:none}.hero{padding-top:72px}.hero-visual{min-height:auto}.hero-brand-card{min-height:300px;padding:28px 22px}.hero-logo-wrap{width:min(200px,60%)}.path-grid,.grid-2,.grid-3,.grid-4,.post-grid,.woocommerce ul.products{grid-template-columns:1fr}.form-row{grid-template-columns:1fr}.feature-band-grid{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr 1fr}.footer-grid .footer-brand{grid-column:1/-1}.footer-grid .footer-col:last-child{grid-column:auto}.blog-tools{align-items:flex-start;flex-direction:column}.header-search form{padding-inline:20px}.page-hero h1{max-width:100%}}
@media(max-width:480px){.brand-name{max-width:135px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-actions{gap:5px}.icon-btn{width:39px;height:39px}.path-grid,.footer-grid{grid-template-columns:1fr}.footer-grid .footer-col:last-child{grid-column:auto}.hero-actions .btn{width:100%}.hero h1{font-size:clamp(1.85rem,7.2vw,2.35rem);line-height:1.12}.hero-brand-line{font-size:.72rem}.hero-brand-kicker{font-size:.68rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

/* =========================================================
   1.1.0 — additions for the Customizer-driven sections
   ========================================================= */

/* Hero image variant */
.hero-image{width:100%;border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 34px 80px -38px rgba(0,0,0,.9)}
.hero-image img{width:100%;height:auto;display:block}

/* Guided paths: column count follows how many cards are filled in */
.path-grid--1{grid-template-columns:minmax(0,1fr)}
.path-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.path-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.path-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}

/* Product column count follows the Customizer */
.products-wrap--2 .woocommerce ul.products,
.products-wrap--2 ul.products{grid-template-columns:repeat(2,minmax(0,1fr))}
.products-wrap--3 .woocommerce ul.products,
.products-wrap--3 ul.products{grid-template-columns:repeat(3,minmax(0,1fr))}
.products-wrap--4 .woocommerce ul.products,
.products-wrap--4 ul.products{grid-template-columns:repeat(4,minmax(0,1fr))}

/* One consistent gap under every section's grid */
.section-foot{margin:28px 0 0}

/* Feature band: heading and button sit on one optical baseline */
.feature-band-grid>div{min-width:0}
.feature-band-grid h2{margin-bottom:.45em}
.feature-band-grid .btn{white-space:nowrap;justify-self:end}

/* Footer extras */
.footer-email{margin-top:10px}
.footer-email a{color:var(--muted)}
.footer-email a:hover{color:var(--cyan)}
.social-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.social-row .icon-btn{width:38px;height:38px}
.social-row .icon-btn svg{width:17px;height:17px}
.site-footer .brand{margin-bottom:14px}

/* Header search sits inside the wrap so it lines up with the page */
.header-search .wrap{display:flex;justify-content:center}
.header-search form{width:min(100%,760px)}

@media(max-width:1080px){
  .path-grid--3,.path-grid--4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .products-wrap--3 ul.products,.products-wrap--4 ul.products{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hero-grid--single{max-width:none}
}
@media(max-width:720px){
  .path-grid--2,.path-grid--3,.path-grid--4{grid-template-columns:1fr}
  .products-wrap--2 ul.products,.products-wrap--3 ul.products,.products-wrap--4 ul.products{grid-template-columns:1fr}
  .feature-band-grid .btn{justify-self:start;width:100%}
  .hero h1{max-width:none}
  .path-card h3{min-height:0}
  .woocommerce ul.products li.product .woocommerce-loop-product__title{min-height:0}
}


/* =========================================================
   Shop archive toolbar and flow
   WooCommerce emits the result count, sort form, product grid
   and pagination as loose siblings, so this uses floats (the
   same mechanism Woo itself uses) rather than a grid with
   named areas — that way any extra element a plugin injects
   still lands somewhere sensible instead of breaking the row.
   ========================================================= */
.shop-flow{position:relative}

.shop-flow .woocommerce-result-count{
  float:left;
  margin:0;
  padding-top:10px;
  font-size:.9rem;
  color:var(--muted);
}
.shop-flow .woocommerce-ordering{
  float:right;
  margin:0;
}
.shop-flow .woocommerce-ordering select{
  width:auto;
  min-width:200px;
  padding-block:.62em;
}

/* Clear the floated toolbar before the grid starts. */
.shop-flow ul.products{
  clear:both;
  margin-top:30px;
}
.shop-flow>.woocommerce-notices-wrapper:not(:empty){margin-bottom:22px}

@media(max-width:720px){
  .shop-flow .woocommerce-result-count,
  .shop-flow .woocommerce-ordering{float:none;display:block;padding-top:0}
  .shop-flow .woocommerce-result-count{margin-bottom:14px}
  .shop-flow .woocommerce-ordering select{width:100%;min-width:0}
  .shop-flow ul.products{margin-top:22px}
}
.shop-crumbs{margin-bottom:28px}

/* =========================================================
   Product categories
   Four families, four sub-categories each. Cards fall back to
   a bundled placeholder tile until a real category image is
   set in Products → Categories.
   ========================================================= */

.cat-grid{display:grid;gap:18px}
.cat-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.cat-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.cat-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}

.cat-card{
  display:flex;
  flex-direction:column;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--surface);
  overflow:hidden;
  color:var(--text)!important;
  transition:.22s;
}
.cat-card:hover{
  transform:translateY(-4px);
  border-color:var(--accent-line);
  box-shadow:var(--shadow);
  color:var(--text)!important;
}
.cat-card__media{display:block;aspect-ratio:4/3;overflow:hidden;background:var(--surface-2)}
.cat-card__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s}
.cat-card:hover .cat-card__media img{transform:scale(1.04)}

.cat-card__body{display:flex;flex-direction:column;flex:1 1 auto;padding:18px 18px 20px;gap:8px}
.cat-card__title{font-weight:800;font-size:1.02rem;line-height:1.3}
.cat-card__blurb{color:var(--muted);font-size:.88rem;line-height:1.55}
.cat-card__meta{
  margin-top:auto;
  padding-top:6px;
  font:700 .68rem/1 var(--mono);
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--faint);
}
.cat-card--compact .cat-card__media{aspect-ratio:16/9}
.cat-card--compact .cat-card__body{padding:14px 16px 16px}
.cat-card--compact .cat-card__title{font-size:.95rem}

/* Homepage family browser */
.cat-families{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.cat-family{
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--surface);
  padding:24px;
}
.cat-family__head{display:flex;gap:16px;align-items:flex-start;margin-bottom:18px}
.cat-family__head .icon-card{margin-bottom:0}
.cat-family__head h3{font-size:1.15rem;margin:0 0 .3em}
.cat-family__head h3 a{color:var(--text)}
.cat-family__head h3 a:hover{color:var(--cyan)}
.cat-family__head p{color:var(--muted);font-size:.88rem;margin:0}

.cat-family__list{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.cat-family__list a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:11px 12px;
  border-radius:var(--radius-sm,10px);
  color:var(--muted);
  font-size:.92rem;
  font-weight:600;
  transition:.18s;
}
.cat-family__list a:hover{background:var(--surface-2);color:var(--text)}
.cat-family__list b{
  flex:none;
  font:700 .66rem/1 var(--mono);
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--faint);
}

/* Archive sub-category chips */
.cat-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}
.cat-chip{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:9px 14px;
  border:1px solid var(--line);
  border-radius:999px;
  background:rgba(255,255,255,.03);
  color:var(--muted)!important;
  font-size:.86rem;
  font-weight:700;
  transition:.18s;
}
.cat-chip:hover{border-color:var(--accent-line);background:var(--accent-soft);color:var(--text)!important}
.cat-chip.is-current{background:var(--grad);border-color:transparent;color:var(--on-accent)!important}
.cat-chip b{font:700 .66rem/1 var(--mono);opacity:.75}
.cat-chip.is-current b{opacity:.85}

@media(max-width:1080px){
  .cat-grid--4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cat-grid--3{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:720px){
  .cat-grid--2,.cat-grid--3,.cat-grid--4{grid-template-columns:1fr}
  .cat-families{grid-template-columns:1fr}
  .cat-family{padding:20px}
}

/* =========================================================
   WooCommerce override guard
   WooCommerce ships `.woocommerce-page img { height:auto; max-width:100% }`,
   and WordPress puts `woocommerce-page` on <body> for the Products page and
   every product archive. That selector outranks a plain single-class rule,
   which blew the header logo up to its intrinsic size on those pages only.
   These rules restate the theme's sizing at a specificity Woo cannot beat.
   ========================================================= */
.site-header .brand .brand-logo,
.site-footer .brand .brand-logo{
  width:auto;
  height:var(--logo-h,44px);
  max-width:min(230px,38vw);
  object-fit:contain;
  object-position:left center;
}

.hero-logo-wrap .visual-logo{
  width:100%;
  height:100%;
  object-fit:contain;
}

.cat-card .cat-card__media img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.post-card .post-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
}

@media(max-width:720px){
  .site-header .brand .brand-logo,
  .site-footer .brand .brand-logo{max-width:min(160px,42vw)}
}

/* Mobile menu: lock the page behind the panel and give links real tap targets */
body.nav-open{overflow:hidden}
@media(max-width:1080px){
  .main-nav ul{display:grid;gap:2px}
  .main-nav a{min-height:50px;padding:0 14px;font-size:1.02rem;border-radius:var(--radius-sm,10px)}
  .main-nav .sub-menu{padding-left:14px;margin-left:8px;border-left:1px solid var(--line)}
  .header-search{padding-inline:clamp(16px,5vw,26px)}
}

/* Legal documents */
.legal-shell{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:clamp(28px,4vw,48px);align-items:start}
.legal-body{max-width:72ch}
.legal-body h2{font-size:1.15rem;margin:2em 0 .6em;padding-top:1.4em;border-top:1px solid var(--line)}
.legal-body h2:first-of-type{margin-top:.4em;padding-top:0;border-top:0}
.legal-body p{color:var(--muted);margin:0 0 1.05em;line-height:1.75}
.legal-body strong{color:var(--text)}
.legal-body a{color:var(--cyan)}
.legal-aside .btn{width:100%;justify-content:center;word-break:break-all}
.legal-links{list-style:none;margin:0;padding:0;display:grid;gap:.55em}
.legal-links a{color:var(--muted);font-size:.93rem}
.legal-links a:hover{color:var(--cyan)}
.davx-digital-note{margin:0 0 22px;padding:13px 16px;border:1px solid var(--accent-line);background:var(--accent-soft);border-radius:var(--radius-sm,10px);color:var(--muted);font-size:.9rem}
@media(max-width:900px){.legal-shell{grid-template-columns:1fr}.legal-aside{order:-1}}

/* Email support section */
.support-shell{display:grid;grid-template-columns:minmax(0,360px) minmax(0,1fr);gap:clamp(20px,3vw,32px);align-items:start}
.support-mail{text-align:left}
.support-address{font-family:var(--mono);font-size:1rem;color:var(--cyan);word-break:break-all;margin:.2em 0 1.2em}
.support-mail .btn{width:100%;justify-content:center}
.support-note{color:var(--faint);font-size:.86rem;margin-top:1.1em}
.support-list{list-style:none;margin:0;padding:0;display:grid;gap:12px;align-content:start}
.support-list li{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:20px 22px}
.support-list strong{display:block;margin-bottom:.3em;font-size:1rem}
.support-list span{color:var(--muted);font-size:.92rem}
@media(max-width:820px){.support-shell{grid-template-columns:1fr}}
@media(min-width:1081px){.footer-grid{grid-template-columns:1.5fr repeat(4,1fr)}}

/* Search form — input and button on one line.
   Without an explicit layout the button wrapped underneath the field, which
   pushed the blog toolbar out of alignment with the category chips. */
.search-form{display:flex;align-items:stretch;gap:10px;width:100%}
.search-form input[type=search]{flex:1 1 auto;min-width:0}
.search-form .btn{flex:0 0 auto;white-space:nowrap}

.blog-tools{align-items:center}
.blog-search{width:min(100%,380px);flex:0 0 auto}

@media(max-width:720px){
  .blog-search{width:100%}
  .search-form{flex-wrap:wrap}
  .search-form input[type=search]{flex:1 1 160px}
}

/* =========================================================
   Enquiry modal
   ========================================================= */
body.davx-modal-open{overflow:hidden}

.davx-modal{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:clamp(12px,4vw,32px)}
.davx-modal[hidden]{display:none}
.davx-modal__backdrop{position:absolute;inset:0;background:rgba(2,5,12,.78);backdrop-filter:blur(6px);opacity:0;transition:opacity .2s}
.davx-modal.is-open .davx-modal__backdrop{opacity:1}

.davx-modal__panel{
  position:relative;
  width:min(100%,620px);
  max-height:calc(100vh - 40px);
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius-lg,22px);
  padding:clamp(24px,4vw,40px);
  box-shadow:0 40px 90px -30px rgba(0,0,0,.95);
  opacity:0;
  transform:translateY(14px) scale(.985);
  transition:opacity .22s,transform .22s;
}
.davx-modal.is-open .davx-modal__panel{opacity:1;transform:none}

.davx-modal__close{
  position:absolute;top:14px;right:14px;
  width:38px;height:38px;display:grid;place-items:center;
  border-radius:50%;border:1px solid var(--line);
  background:rgba(255,255,255,.04);color:var(--muted);cursor:pointer;transition:.2s;
}
.davx-modal__close:hover{color:var(--text);border-color:var(--line-strong)}
.davx-modal__close svg{width:17px;height:17px}

.davx-modal__panel h2{font-size:clamp(1.4rem,2.4vw,1.85rem);margin-bottom:.4em;padding-right:40px}
.davx-modal__lede{color:var(--muted);margin-bottom:18px}

.davx-modal__promise{
  display:flex;align-items:flex-start;gap:10px;
  margin:0 0 22px;padding:13px 15px;
  border:1px solid var(--accent-line);background:var(--accent-soft);
  border-radius:var(--radius-sm,10px);
  color:var(--text);font-size:.9rem;font-weight:650;line-height:1.5;
}
.davx-modal__promise svg{width:18px;height:18px;flex:none;color:var(--cyan);margin-top:2px}

.davx-modal__form .field{margin-bottom:14px}
.davx-modal__submit{width:100%;justify-content:center;margin-top:4px}
.davx-modal__foot{margin:16px 0 0;text-align:center;color:var(--faint);font-size:.85rem}
.davx-modal__foot a{color:var(--cyan)}
.davx-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* Consultation promise shown inline on solution pages */
.consult-promise{
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  margin:0 0 26px;padding:15px 18px;
  border:1px solid var(--accent-line);background:var(--accent-soft);
  border-radius:var(--radius);color:var(--text);font-weight:650;
}
.consult-promise svg{width:19px;height:19px;flex:none;color:var(--cyan)}

.solution-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}

/* Submission toast */
.davx-toast{
  position:fixed;left:50%;bottom:26px;transform:translateX(-50%);
  z-index:210;max-width:min(92vw,520px);
  padding:14px 20px;border-radius:999px;
  background:var(--surface-2);border:1px solid var(--accent-line);
  color:var(--text);font-size:.92rem;font-weight:600;
  box-shadow:0 20px 50px -20px rgba(0,0,0,.9);
  cursor:pointer;transition:opacity .3s,transform .3s;
}
.davx-toast--error{border-color:rgba(255,120,140,.5)}
.davx-toast.is-gone{opacity:0;transform:translateX(-50%) translateY(12px);pointer-events:none}

@media(max-width:560px){
  .davx-modal{padding:0;place-items:end center}
  .davx-modal__panel{width:100%;max-height:92vh;border-radius:var(--radius-lg,22px) var(--radius-lg,22px) 0 0}
  .davx-modal .form-row{grid-template-columns:1fr}
  .davx-toast{left:12px;right:12px;transform:none;max-width:none;border-radius:var(--radius);text-align:center}
  .davx-toast.is-gone{transform:translateY(12px)}
}

/* Per-card enquiry buttons */
.card-cta{margin-top:auto;padding-top:18px}
.btn-sm{padding:.6em 1.1em;font-size:.85rem}
.service-card{display:flex;flex-direction:column}
.service-card ul{margin-bottom:0}

/* =========================================================
   Hero deliverables panel
   Shows the artefacts a buyer receives, rather than repeating
   the logo that already sits in the header a few inches above.
   ========================================================= */
.deliverables{
  border:1px solid var(--line);
  border-radius:var(--radius-lg,22px);
  background:linear-gradient(160deg,var(--surface),var(--bg) 120%);
  padding:clamp(20px,2.4vw,28px);
  box-shadow:0 34px 80px -40px rgba(0,0,0,.95);
}
.deliverables__head{
  display:block;
  font:700 .7rem/1 var(--mono);
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--faint);
  margin-bottom:18px;
}
.deliverables__list{list-style:none;margin:0 0 16px;padding:0;display:grid;gap:10px}

.deliverable{
  display:flex;
  align-items:center;
  gap:14px;
  padding:14px 16px;
  border:1px solid var(--line);
  border-radius:var(--radius-sm,12px);
  background:var(--surface-2);
  transition:border-color .22s,transform .22s;
}
.deliverable:hover{border-color:var(--accent-line);transform:translateX(3px)}

.deliverable__type{
  flex:none;
  width:46px;height:38px;
  display:grid;place-items:center;
  border-radius:8px;
  background:var(--grad);
  color:var(--on-accent);
  font:800 .62rem/1 var(--mono);
  letter-spacing:.04em;
}
.deliverable:nth-child(2) .deliverable__type{background:linear-gradient(135deg,var(--blue),var(--violet))}
.deliverable:nth-child(3) .deliverable__type{background:linear-gradient(135deg,var(--violet),var(--cyan))}
.deliverable:nth-child(4) .deliverable__type{background:linear-gradient(135deg,var(--cyan),var(--blue))}

.deliverable__body{min-width:0;flex:1 1 auto}
.deliverable__name{
  display:block;
  font:500 .86rem/1.3 var(--mono);
  color:var(--text);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.deliverable__meta{display:block;margin-top:3px;font-size:.76rem;color:var(--faint)}
.deliverable__tick{flex:none;width:17px;height:17px;color:var(--cyan);opacity:.75}

.deliverables__foot{
  display:flex;align-items:center;gap:8px;
  font-size:.82rem;color:var(--muted);
}
.deliverables__foot:before{
  content:"";width:7px;height:7px;border-radius:50%;
  background:var(--cyan);box-shadow:0 0 12px var(--accent-glow);
}

@media(max-width:520px){
  .deliverable{padding:12px 13px;gap:11px}
  .deliverable__type{width:42px;height:34px}
  .deliverable__name{font-size:.8rem}
}

/* Tables inside post and page content */
.entry-content table,
.legal-body table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  margin:1.8em 0;
  font-size:.92rem;
  border:1px solid var(--line);
  border-radius:var(--radius-sm,10px);
  overflow:hidden;
}
.entry-content thead th,
.legal-body thead th{
  background:var(--surface-2);
  color:var(--text);
  font-weight:700;
  text-align:left;
  padding:13px 16px;
  border-bottom:1px solid var(--line);
  white-space:nowrap;
}
.entry-content td,
.legal-body td{
  padding:13px 16px;
  color:var(--muted);
  border-bottom:1px solid var(--line-soft,var(--line));
  vertical-align:top;
  line-height:1.6;
}
.entry-content tbody tr:last-child td,
.legal-body tbody tr:last-child td{border-bottom:0}
.entry-content tbody tr:hover td,
.legal-body tbody tr:hover td{background:rgba(255,255,255,.02)}

/* Long tables scroll rather than breaking the layout on phones */
@media(max-width:720px){
  .entry-content table,
  .legal-body table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:normal}
  .entry-content thead th,
  .legal-body thead th{white-space:normal}
}

/* Ordered lists in content */
.entry-content ol{padding-left:1.3em;margin:0 0 1.3em}
.entry-content ol li{color:var(--muted);margin-bottom:.6em;line-height:1.7;padding-left:.2em}
.entry-content ol li strong{color:var(--text)}

/* =========================================================
   Trust badges
   ========================================================= */
.trust-badges{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.trust-badges--row{grid-template-columns:repeat(4,minmax(0,1fr));margin:0 0 8px}
.trust-badges--compact{grid-template-columns:1fr;gap:8px;margin:18px 0 0}

.trust-badge{
  display:flex;align-items:flex-start;gap:12px;
  padding:14px 16px;
  border:1px solid var(--line);
  border-radius:var(--radius-sm,10px);
  background:var(--surface);
}
.trust-badges--compact .trust-badge{padding:11px 13px;background:transparent;border-color:var(--line-soft,var(--line))}
.trust-badge__icon{flex:none;color:var(--cyan);display:grid;place-items:center;width:22px;height:22px;margin-top:1px}
.trust-badge__icon svg{width:20px;height:20px}
.trust-badge__text strong{display:block;font-size:.92rem;color:var(--text);line-height:1.3}
.trust-badge__text span{display:block;margin-top:3px;font-size:.8rem;color:var(--muted);line-height:1.45}

.payment-line{
  display:flex;align-items:center;gap:9px;
  margin:14px 0 0;font-size:.83rem;color:var(--muted);line-height:1.5;
}
.payment-line__icon{flex:none;color:var(--cyan);width:17px;height:17px}
.payment-line__icon svg{width:17px;height:17px}

@media(max-width:1080px){.trust-badges--row{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.trust-badges--row{grid-template-columns:1fr}}

/* =========================================================
   Wishlist
   ========================================================= */
.wishlist-btn{
  display:inline-flex;align-items:center;gap:8px;
  margin-top:10px;padding:.55em 1em;
  border:1px solid var(--line);
  border-radius:999px;
  background:transparent;
  color:var(--muted);
  font-size:.82rem;font-weight:650;
  cursor:pointer;transition:.2s;
}
.wishlist-btn:hover{border-color:var(--accent-line);color:var(--text)}
.wishlist-btn svg{width:16px;height:16px;transition:.2s}
.wishlist-btn.is-saved{border-color:var(--accent-line);background:var(--accent-soft);color:var(--text)}
.wishlist-btn.is-saved svg{fill:var(--cyan);stroke:var(--cyan)}
.woocommerce ul.products li.product .wishlist-btn{margin-top:10px;align-self:flex-start}

/* =========================================================
   Business details block (payment-gateway compliance)
   ========================================================= */
.business-details{
  margin-top:26px;padding:20px 22px;
  border:1px solid var(--line);border-radius:var(--radius);
  background:var(--surface);
  font-size:.9rem;line-height:1.7;color:var(--muted);
}
.business-details h3{font-size:1rem;margin-bottom:.6em}
.business-details dt{
  font:700 .68rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;
  color:var(--faint);margin-top:12px;
}
.business-details dd{margin:4px 0 0;color:var(--text)}
.business-details dl{margin:0}

/* Five audience cards wrap cleanly instead of squeezing into one row */
.path-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:1080px){.path-grid--3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.path-grid--3{grid-template-columns:1fr}}
.cat-grid--5{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:1080px){.cat-grid--5{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.cat-grid--5{grid-template-columns:1fr}}

/* Header: let the brand block shrink instead of forcing the row wider than
   the container. The strapline is the first thing to go when space is tight. */
.brand{min-width:0}
.brand-text{min-width:0}
.brand-name{white-space:nowrap}
.brand-sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:1320px){.brand-sub{display:none}}

/* =========================================================
   Category cards: sub-categories revealed on hover
   The card keeps its own link; the chips sit alongside it in
   a wrapper, because an <a> cannot legally contain links.
   ========================================================= */
.cat-cell{position:relative;display:flex;flex-direction:column}
.cat-cell .cat-card{flex:1 1 auto}

.cat-card__subs{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  padding:12px 4px 0;
  opacity:0;
  transform:translateY(-6px);
  max-height:0;
  overflow:hidden;
  transition:opacity .22s var(--ease,ease), transform .22s var(--ease,ease), max-height .22s var(--ease,ease);
}
.cat-cell:hover .cat-card__subs,
.cat-cell:focus-within .cat-card__subs{
  opacity:1;
  transform:none;
  max-height:220px;
}

.cat-chip--sm{
  padding:6px 11px;
  font-size:.78rem;
  gap:6px;
}
.cat-chip--sm b{font-size:.62rem}

/* Section-level chip row on the Products page */
.cat-chips--section{margin-top:0;margin-bottom:6px}

/* Hover does not exist on touch, and reduced-motion users should not get a
   surprise reveal — show the chips outright in both cases. */
@media (hover:none){
  .cat-card__subs{opacity:1;transform:none;max-height:220px}
}
@media (prefers-reduced-motion:reduce){
  .cat-card__subs{transition:none}
}

/* =========================================================
   Ask-the-vault assistant
   ========================================================= */
.davx-ask-launch{
  position:fixed;right:20px;bottom:20px;z-index:150;
  display:inline-flex;align-items:center;gap:10px;
  padding:.85em 1.3em;border-radius:999px;
  border:1px solid var(--accent-line);
  background:var(--grad);color:var(--on-accent);
  font-family:var(--font);font-size:.9rem;font-weight:750;
  cursor:pointer;
  box-shadow:0 16px 40px -14px rgba(0,0,0,.85);
  transition:transform .2s,box-shadow .2s;
}
.davx-ask-launch:hover{transform:translateY(-2px);box-shadow:0 22px 50px -14px rgba(0,0,0,.9)}
.davx-ask-launch svg{width:19px;height:19px}
@media(max-width:560px){
  .davx-ask-launch{right:14px;bottom:14px;padding:.8em 1.1em;font-size:.84rem}
  .davx-ask-launch span{display:none}
}

.davx-ask{position:fixed;inset:0;z-index:200;display:grid;place-items:start center;padding:clamp(14px,6vh,80px) 16px}
.davx-ask[hidden]{display:none}
.davx-ask__backdrop{position:absolute;inset:0;background:rgba(2,5,12,.8);backdrop-filter:blur(6px);opacity:0;transition:opacity .2s}
.davx-ask.is-open .davx-ask__backdrop{opacity:1}

.davx-ask__panel{
  position:relative;width:min(100%,640px);
  max-height:min(86vh,760px);overflow-y:auto;
  background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius-lg,22px);
  padding:clamp(22px,4vw,34px);
  box-shadow:0 40px 90px -30px rgba(0,0,0,.95);
  opacity:0;transform:translateY(-10px);transition:opacity .22s,transform .22s;
}
.davx-ask.is-open .davx-ask__panel{opacity:1;transform:none}
.davx-ask__panel h2{font-size:clamp(1.3rem,2.2vw,1.7rem);margin-bottom:.35em;padding-right:40px}
.davx-ask__lede{color:var(--muted);font-size:.92rem;margin-bottom:18px}

.davx-ask__field input{
  width:100%;padding:.95em 1.1em;font-size:1rem;
  border-radius:var(--radius-sm,12px);
}
.davx-ask__chips{display:flex;flex-wrap:wrap;gap:7px;margin:14px 0 6px}
.davx-ask__chip{
  padding:6px 12px;border-radius:999px;
  border:1px solid var(--line);background:transparent;
  color:var(--muted);font-family:var(--font);font-size:.78rem;cursor:pointer;transition:.18s;
}
.davx-ask__chip:hover{border-color:var(--accent-line);color:var(--text);background:var(--accent-soft)}

.davx-ask__results{margin-top:14px}
.davx-ask__label{
  font:700 .66rem/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;
  color:var(--faint);margin:16px 0 8px;
}
.davx-ask__hit{
  display:flex;align-items:center;gap:14px;justify-content:space-between;
  padding:14px 16px;margin-bottom:8px;
  border:1px solid var(--line);border-radius:var(--radius-sm,12px);
  background:var(--surface-2);color:var(--text)!important;transition:.18s;
}
.davx-ask__hit:hover{border-color:var(--accent-line);transform:translateX(3px)}
.davx-ask__hit.is-primary{border-color:var(--accent-line);background:var(--accent-soft)}
.davx-ask__hit-body{min-width:0}
.davx-ask__hit-ctx{display:block;font:700 .62rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin-bottom:5px}
.davx-ask__hit-name{display:block;font-weight:750;font-size:.98rem;line-height:1.3}
.davx-ask__hit-blurb{display:block;margin-top:4px;color:var(--muted);font-size:.83rem;line-height:1.5}
.davx-ask__hit-go{flex:none;font-size:.8rem;font-weight:750;color:var(--cyan)}
.davx-ask__none{color:var(--muted);font-size:.92rem;margin:14px 0}
.davx-ask__fallback{display:flex;flex-wrap:wrap;gap:10px}
@media(max-width:560px){
  .davx-ask{padding:0;place-items:end center}
  .davx-ask__panel{width:100%;max-height:92vh;border-radius:var(--radius-lg,22px) var(--radius-lg,22px) 0 0}
  .davx-ask__hit-go{display:none}
}

/* Footer credit line */
.footer-copy{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px 14px}
.footer-powered{color:var(--faint)}
.footer-powered:before{content:"·";margin-right:14px;color:var(--faint)}
@media(max-width:560px){
  .footer-copy{gap:4px}
  .footer-powered:before{display:none}
  .footer-powered{display:block;width:100%}
}

/* =========================================================
   MOTION LAYER
   Only opacity and transform are animated. Both run on the
   compositor, so none of this forces a layout or paint.
   ========================================================= */

/* Nothing hides until JS confirms it can animate — a visitor with JS
   blocked, or a crawler, sees the full page rather than blank boxes. */
.davx-motion-on [data-rv]{
  opacity:0;
  transform:translate3d(0,18px,0);
  transition:opacity .55s cubic-bezier(.22,.8,.26,.99),
             transform .55s cubic-bezier(.22,.8,.26,.99);
  will-change:opacity,transform;
}
.davx-motion-on [data-rv="in"]{
  opacity:1;
  transform:none;
  will-change:auto;
}
.davx-motion-subtle [data-rv]{transform:translate3d(0,9px,0);transition-duration:.38s}

/* Hero: the deliverable rows land one after another on first paint. */
.davx-motion-on .deliverable{animation:davx-slide-in .6s cubic-bezier(.22,.8,.26,.99) both}
.davx-motion-on .deliverable:nth-child(1){animation-delay:.10s}
.davx-motion-on .deliverable:nth-child(2){animation-delay:.20s}
.davx-motion-on .deliverable:nth-child(3){animation-delay:.30s}
.davx-motion-on .deliverable:nth-child(4){animation-delay:.40s}
@keyframes davx-slide-in{
  from{opacity:0;transform:translate3d(22px,0,0)}
  to{opacity:1;transform:none}
}

.davx-motion-on .hero-copy > *{animation:davx-rise .6s cubic-bezier(.22,.8,.26,.99) both}
.davx-motion-on .hero-copy > *:nth-child(1){animation-delay:.04s}
.davx-motion-on .hero-copy > *:nth-child(2){animation-delay:.12s}
.davx-motion-on .hero-copy > *:nth-child(3){animation-delay:.20s}
.davx-motion-on .hero-copy > *:nth-child(4){animation-delay:.28s}
.davx-motion-on .hero-copy > *:nth-child(5){animation-delay:.36s}
@keyframes davx-rise{
  from{opacity:0;transform:translate3d(0,14px,0)}
  to{opacity:1;transform:none}
}

/* A slow aura behind the hero. 18s so it reads as depth, not movement. */
.davx-motion-on .hero:before{
  animation:davx-drift 18s ease-in-out infinite alternate;
}
@keyframes davx-drift{
  from{transform:translate3d(-1.5%,-1%,0) scale(1)}
  to{transform:translate3d(1.5%,1.5%,0) scale(1.06)}
}

/* Primary buttons catch a light sweep on hover. */
.davx-motion-on .btn-primary{position:relative;overflow:hidden}
.davx-motion-on .btn-primary:after{
  content:"";position:absolute;top:0;left:-140%;width:60%;height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.32),transparent);
  transform:skewX(-18deg);pointer-events:none;
}
.davx-motion-on .btn-primary:hover:after{animation:davx-sweep .75s ease}
@keyframes davx-sweep{to{left:150%}}

/* Header condenses on scroll. */
.site-header{transition:box-shadow .25s ease,background .25s ease}
.davx-motion-on .site-header.is-stuck{
  box-shadow:0 12px 34px -22px rgba(0,0,0,.95);
  background:rgba(5,9,20,.94);
}
.davx-motion-on .site-header .brand-logo{transition:height .25s ease}
.davx-motion-on .site-header.is-stuck .brand-logo{height:calc(var(--logo-h,44px) * .82)}

/* Cards lift a little further, and their media eases rather than snaps. */
.davx-motion-on .card,
.davx-motion-on .path-card,
.davx-motion-on .cat-card{transition:transform .28s cubic-bezier(.22,.8,.26,.99),border-color .28s,box-shadow .28s}
.davx-motion-on .card:hover,
.davx-motion-on .path-card:hover{transform:translateY(-5px)}

/* Reading progress on posts. */
.davx-progress{
  position:fixed;top:0;left:0;right:0;height:3px;z-index:300;
  background:var(--grad);transform:scaleX(0);transform-origin:0 50%;
  pointer-events:none;
}

/* Every animation above is disabled by the global reduced-motion rule near
   the top of this file; this repeats it for the reveal state so elements
   cannot be left stuck at opacity 0. */
@media(prefers-reduced-motion:reduce){
  .davx-motion-on [data-rv]{opacity:1!important;transform:none!important}
  .davx-progress{display:none}
}
