/**
 * Havasu 3D — Divi / Divi Pixel design layer
 * Apply the h3d-* classes below in Divi Advanced > CSS ID & Classes.
 */

:root {
  --h3d-ink: #0b0e0d;
  --h3d-paper: #f2f0e9;
  --h3d-white: #ffffff;
  --h3d-accent: #2f7dff;
  --h3d-accent-soft: rgba(47,125,255,.14);
  --h3d-line-dark: rgba(255,255,255,.13);
  --h3d-line-light: rgba(11,14,13,.14);
  --h3d-muted-dark: rgba(255,255,255,.66);
  --h3d-muted-light: rgba(11,14,13,.68);
  --h3d-radius: 2px;
  --h3d-max: 1440px;
  --h3d-gutter: clamp(22px, 4vw, 72px);
  --h3d-section: clamp(72px, 9vw, 150px);
}

.h3d-divi-homepage,
.h3d-theme-surface {
  background: var(--h3d-paper);
  color: var(--h3d-ink);
  overflow: clip;
}

.h3d-dark {
  background: var(--h3d-ink) !important;
  color: var(--h3d-white);
}

.h3d-container.et_pb_row,
.h3d-container .et_pb_row {
  width: min(calc(100% - (var(--h3d-gutter) * 2)), var(--h3d-max));
  max-width: var(--h3d-max);
}

.h3d-section.et_pb_section {
  padding-top: var(--h3d-section);
  padding-bottom: var(--h3d-section);
}

.h3d-eyebrow,
.h3d-eyebrow * {
  font-family: "Geist Mono", monospace !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: .16em !important;
  text-transform: uppercase;
}

.h3d-display h1,
.h3d-display h2,
.h3d-display h3 {
  font-family: "Fraunces", Georgia, serif;
  font-weight: 300;
  letter-spacing: -.04em;
  line-height: .96;
}

.h3d-body,
.h3d-body p,
.h3d-body li,
.h3d-button,
.h3d-button a {
  font-family: "Geist", Arial, sans-serif;
}

.h3d-button.et_pb_button_module_wrapper .et_pb_button,
.h3d-button .et_pb_button,
a.h3d-button,
button.h3d-button {
  border-radius: var(--h3d-radius) !important;
  font-weight: 600 !important;
  letter-spacing: .02em !important;
  transition: transform .22s ease, background-color .22s ease, color .22s ease, border-color .22s ease;
}

.h3d-button.et_pb_button_module_wrapper .et_pb_button:hover,
.h3d-button .et_pb_button:hover,
a.h3d-button:hover,
button.h3d-button:hover {
  transform: translateY(-2px);
}

.h3d-card {
  border: 1px solid var(--h3d-line-light);
  border-radius: var(--h3d-radius);
  overflow: hidden;
}

.h3d-dark .h3d-card { border-color: var(--h3d-line-dark); }

.h3d-card-lift {
  transition: transform .28s ease, border-color .28s ease, box-shadow .28s ease;
}
.h3d-card-lift:hover {
  transform: translateY(-6px);
  border-color: rgba(47,125,255,.55);
  box-shadow: 0 18px 50px rgba(0,0,0,.13);
}

.h3d-rule { border-top: 1px solid var(--h3d-line-light); }
.h3d-dark .h3d-rule { border-color: var(--h3d-line-dark); }

.h3d-blue { color: var(--h3d-accent) !important; }
.h3d-muted { color: var(--h3d-muted-light); }
.h3d-dark .h3d-muted { color: var(--h3d-muted-dark); }

/* Hero bridge: recreate the current visual system with normal Divi modules. */
.h3d-hero.et_pb_section {
  position: relative;
  min-height: min(920px, 100svh);
  display: flex;
  align-items: center;
  background: var(--h3d-ink);
  color: var(--h3d-white);
  overflow: hidden;
}
.h3d-hero .et_pb_row { z-index: 3; }
.h3d-hero .h3d-display h1 { color: var(--h3d-white); }
.h3d-hero-canvas {
  position: absolute !important;
  inset: 0 0 0 auto;
  width: min(58vw, 980px);
  height: 100%;
  z-index: 1;
  pointer-events: none;
}
.h3d-hero-canvas canvas { width: 100%; height: 100%; display: block; }

/* Shared product-card appearance for Divi Woo modules. */
.h3d-products ul.products {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(16px, 2vw, 28px);
}
.h3d-products ul.products::before,
.h3d-products ul.products::after { display: none !important; }
.h3d-products ul.products li.product {
  width: auto !important;
  margin: 0 !important;
  float: none !important;
}

@media (max-width: 980px) {
  .h3d-products ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .h3d-hero { min-height: 760px; }
  .h3d-hero-canvas { width: 80vw; opacity: .58; }
}

@media (max-width: 600px) {
  :root { --h3d-gutter: 20px; --h3d-section: 72px; }
  .h3d-products ul.products { grid-template-columns: 1fr 1fr; gap: 12px; }
  .h3d-hero-canvas { width: 120vw; right: -52vw; opacity: .46; }
}

@media (prefers-reduced-motion: reduce) {
  .h3d-card-lift,
  .h3d-button,
  .h3d-button a { transition: none !important; transform: none !important; }
}


/* v1.2.1 — Divi 5 homepage component layer */
.h3d-hero-title h1,.h3d-hero-title h1 *{font-family:"Fraunces",Georgia,serif!important;font-weight:300!important;letter-spacing:-.055em!important;line-height:.88!important;color:#fff!important;font-size:clamp(68px,8vw,150px)!important}.h3d-hero-title em{font-weight:300}.h3d-hero-copy{max-width:620px}.h3d-button-group{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.h3d-button-primary .et_pb_button{background:var(--h3d-accent)!important;border-color:var(--h3d-accent)!important;color:#fff!important}.h3d-button-ghost .et_pb_button{background:transparent!important;border-color:rgba(255,255,255,.35)!important;color:#fff!important}.h3d-hero-status{margin-top:34px}.h3d-live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--h3d-accent);margin-right:8px;box-shadow:0 0 0 5px rgba(47,125,255,.12)}
.h3d-marquee-section.et_pb_section{padding:0!important;border-top:1px solid var(--h3d-line-dark);border-bottom:1px solid var(--h3d-line-dark);overflow:hidden}.h3d-marquee-section .et_pb_row{width:100%!important;max-width:none!important}.h3d-marquee{overflow:hidden;padding:18px 0}.h3d-marquee-track{display:flex;width:max-content;align-items:center;gap:30px;white-space:nowrap;animation:h3dMarquee 28s linear infinite;font:500 11px/1 "Geist Mono",monospace;letter-spacing:.13em;text-transform:uppercase;color:#fff}.h3d-marquee-track i{width:5px;height:5px;border-radius:50%;background:var(--h3d-accent)}@keyframes h3dMarquee{to{transform:translateX(-50%)}}
.h3d-stats.et_pb_section{padding:42px 0!important}.h3d-stat{text-align:left;border-left:1px solid var(--h3d-line-dark);padding-left:22px}.h3d-stat .percent-value,.h3d-stat .percent-sign{font-family:"Fraunces",Georgia,serif!important;font-weight:300!important;color:#fff!important;font-size:clamp(38px,4vw,66px)!important}.h3d-stat .title{font:500 10px/1.4 "Geist Mono",monospace!important;letter-spacing:.08em;text-transform:uppercase;color:var(--h3d-muted-dark)!important}
.h3d-process{background:var(--h3d-paper)}.h3d-process-card{padding:clamp(24px,3vw,44px);min-height:280px}.h3d-process-title h3{font-family:"Fraunces",Georgia,serif;font-weight:400;font-size:clamp(28px,3vw,42px);line-height:1}.h3d-process .et_pb_row+.et_pb_row{margin-top:48px}
.h3d-quote.et_pb_section{padding-top:var(--h3d-section);padding-bottom:var(--h3d-section)}.h3d-check-list{list-style:none!important;padding:0!important;margin:25px 0!important}.h3d-check-list li{padding:13px 0 13px 27px;border-bottom:1px solid var(--h3d-line-dark);position:relative}.h3d-check-list li:before{content:"→";position:absolute;left:0;color:var(--h3d-accent)}.h3d-form-card{background:#fff;color:var(--h3d-ink);padding:clamp(24px,4vw,50px)}.h3d-form-card .gform_wrapper{font-family:"Geist",Arial,sans-serif}.h3d-form-card input,.h3d-form-card textarea,.h3d-form-card select{border:1px solid rgba(11,14,13,.18)!important;border-radius:2px!important;padding:14px!important}.h3d-form-card .gform_button{background:var(--h3d-accent)!important;color:#fff!important;border:0!important;padding:15px 24px!important;font-weight:600!important}
.h3d-about-lead{font-size:clamp(34px,4.5vw,64px)!important;line-height:1.03!important}.h3d-spec-card{padding:clamp(24px,3vw,42px)}.h3d-spec-card h3{font-family:"Fraunces",Georgia,serif;font-size:32px}.h3d-specs{margin:25px 0 0}.h3d-specs>div{display:flex;justify-content:space-between;gap:30px;padding:13px 0;border-top:1px solid var(--h3d-line-light)}.h3d-specs dt{font:500 10px "Geist Mono",monospace;text-transform:uppercase;letter-spacing:.08em;color:var(--h3d-muted-light)}.h3d-specs dd{margin:0;text-align:right;font:500 13px "Geist",Arial,sans-serif}
.h3d-faq-accordion{margin-top:45px}.h3d-faq-accordion .et_pb_toggle{border:0!important;border-top:1px solid var(--h3d-line-light)!important;background:transparent!important;padding:24px 0!important}.h3d-faq-accordion .et_pb_toggle_title{font-family:"Geist",Arial,sans-serif!important;font-size:clamp(18px,2vw,26px)!important;font-weight:500!important}.h3d-faq-accordion .et_pb_toggle_content{max-width:900px;font-family:"Geist",Arial,sans-serif;color:var(--h3d-muted-light)}
.h3d-cta.et_pb_section{padding:clamp(70px,8vw,125px) 0!important}.h3d-cta h2,.h3d-cta h2 *{color:#fff!important}.h3d-cta .et_pb_row{align-items:flex-end}
@media(max-width:980px){.h3d-hero-title h1{font-size:clamp(60px,13vw,110px)!important}.h3d-hero-art-col{position:absolute!important;inset:0!important;opacity:.48;pointer-events:none}.h3d-hero-copy-col{z-index:4!important}.h3d-stats .et_pb_row{display:grid!important;grid-template-columns:1fr 1fr!important;gap:28px}.h3d-process .et_pb_row:nth-child(2){display:grid!important;grid-template-columns:1fr!important;gap:16px}.h3d-quote .et_pb_row,.h3d-about .et_pb_row{display:grid!important;grid-template-columns:1fr!important;gap:45px}.h3d-cta .et_pb_row{display:grid!important;grid-template-columns:1fr!important;gap:25px}}
@media(max-width:600px){.h3d-stats .et_pb_row{grid-template-columns:1fr!important}.h3d-hero-title h1{font-size:clamp(54px,16vw,84px)!important}.h3d-button-group{flex-direction:column;align-items:flex-start}.h3d-marquee-track{animation-duration:22s}}

/* Block-native layout slots and Theme Builder scaffolds. */
.h3d-form-slot{min-height:120px}
.h3d-form-notice{margin:0;padding:18px;border:1px solid rgba(11,14,13,.16);background:#f7f5ef;color:var(--h3d-ink)}
.h3d-global-header,.h3d-global-footer{background:var(--h3d-ink);color:#fff}
.h3d-global-header .et_pb_row,.h3d-global-footer .et_pb_row{align-items:center}
.h3d-store-shell{background:var(--h3d-paper);padding:var(--h3d-section) 0}
.h3d-store-slot{min-height:180px;border:1px dashed rgba(11,14,13,.25);padding:28px;background:#fff}

/* Theme-owned global shell used until/alongside Divi Theme Builder. */
body{padding-top:0!important}
#page-container{padding-top:0!important}
.h3d-site-header{position:relative;z-index:9999;display:flex;align-items:center;justify-content:space-between;gap:30px;padding:19px clamp(22px,5vw,78px);background:#0b0e0d;color:#fff;border-bottom:1px solid rgba(255,255,255,.12)}
.h3d-site-brand{color:#fff!important;font:500 20px/1 "Geist",Arial,sans-serif;letter-spacing:-.03em;white-space:nowrap}
.h3d-site-brand strong{color:var(--h3d-accent,#2f7dff)}
.h3d-site-nav{display:flex;align-items:center;gap:clamp(14px,2vw,30px)}
.h3d-site-nav a,.h3d-site-footer a{color:#fff;font:500 10px/1.3 "Geist Mono",monospace;letter-spacing:.09em;text-transform:uppercase}
.h3d-site-nav a:hover,.h3d-site-footer a:hover{color:var(--h3d-accent,#2f7dff)}
.h3d-site-nav__cta{padding:12px 16px;background:var(--h3d-accent,#2f7dff);border:1px solid var(--h3d-accent,#2f7dff)}
.h3d-site-nav__cta:hover{background:#fff;color:#0b0e0d!important;border-color:#fff}
.h3d-site-footer{display:grid;grid-template-columns:2fr 1fr;gap:40px;padding:64px clamp(22px,5vw,78px) 30px;background:#0b0e0d;color:rgba(255,255,255,.68);border-top:1px solid rgba(255,255,255,.12)}
.h3d-site-footer nav{display:grid;align-content:start;gap:12px}
.h3d-site-footer__legal{grid-column:1/-1;margin:28px 0 0;padding-top:22px;border-top:1px solid rgba(255,255,255,.12);font:500 9px/1.4 "Geist Mono",monospace;letter-spacing:.1em;text-transform:uppercase}
@media(max-width:760px){.h3d-site-header{align-items:flex-start}.h3d-site-nav{justify-content:flex-end;flex-wrap:wrap}.h3d-site-nav a:not(.h3d-site-nav__cta){display:none}.h3d-site-footer{grid-template-columns:1fr}.h3d-site-footer__legal{grid-column:1}}
@media(prefers-reduced-motion:reduce){.h3d-marquee-track{animation:none!important;transform:none!important}}

/* v1.2.6 editable Divi Library shells. */
.h3d-editable-header,.h3d-editable-footer{position:relative;z-index:9998}
.h3d-global-header.et_pb_section{padding:16px 0!important;border-bottom:1px solid rgba(255,255,255,.12)}
.h3d-global-header .h3d-global-links{text-align:right}
.h3d-global-links a,.h3d-global-footer a,.h3d-store-links a{color:#fff!important;font:500 10px/1.5 "Geist Mono",monospace;letter-spacing:.08em;text-transform:uppercase}
.h3d-global-links a:hover,.h3d-global-footer a:hover,.h3d-store-links a:hover{color:var(--h3d-accent)!important}
.h3d-global-footer.et_pb_section{padding:52px 0 30px!important;border-top:1px solid rgba(255,255,255,.12)}
.h3d-products.et_pb_section,.h3d-store-shell.et_pb_section{padding:clamp(70px,8vw,120px) 0!important}
.h3d-products-grid ul.products{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(14px,2vw,26px)}
.h3d-products-grid ul.products:before,.h3d-products-grid ul.products:after{display:none!important}
.h3d-products-grid ul.products li.product{float:none!important;width:auto!important;margin:0!important}
@media(max-width:980px){.h3d-global-header .et_pb_row{display:grid!important;grid-template-columns:1fr!important}.h3d-global-header .h3d-global-links{text-align:left}.h3d-products-grid ul.products{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.h3d-products-grid ul.products{grid-template-columns:1fr 1fr;gap:12px}.h3d-global-links a{display:inline-block;margin:4px 5px 4px 0}}

/* Specialized interaction layer; classes remain editable in Divi. */
.grain{position:fixed;inset:0;z-index:99990;pointer-events:none;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.65'/%3E%3C/svg%3E")}
.progress{position:fixed;top:0;left:0;width:0;height:2px;z-index:100001;background:var(--h3d-accent);pointer-events:none}
.cursor,.cursor-ring{position:fixed;left:0;top:0;z-index:100000;border-radius:50%;pointer-events:none;will-change:transform}
.cursor{width:7px;height:7px;background:var(--h3d-accent)}
.cursor-ring{width:30px;height:30px;border:1px solid rgba(47,125,255,.7);transition:width .2s,height .2s,border-color .2s}
.cursor-hover .cursor-ring{width:48px;height:48px;border-color:#fff}
@media(hover:hover) and (pointer:fine){.havasu3d-homepage,.havasu3d-homepage a,.havasu3d-homepage button{cursor:none!important}}
.no-cursor .cursor,.no-cursor .cursor-ring{display:none}
.reveal,.reveal-stagger>*{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
.reveal.visible,.reveal-stagger.visible>*{opacity:1;transform:none}
.reveal-stagger.visible>*:nth-child(2){transition-delay:.1s}.reveal-stagger.visible>*:nth-child(3){transition-delay:.2s}.reveal-stagger.visible>*:nth-child(4){transition-delay:.3s}
.h3d-tilt{transform-style:preserve-3d;transition:transform .18s ease}
@media(prefers-reduced-motion:reduce){.reveal,.reveal-stagger>*{opacity:1!important;transform:none!important;transition:none!important}.cursor,.cursor-ring{display:none!important}}
