@font-face { font-family:'Public Sans'; font-style:normal; font-weight:400; font-display:swap; src:url(/assets/craftivus_erp/fonts/public-sans-400.woff2) format('woff2'); }
@font-face { font-family:'Public Sans'; font-style:normal; font-weight:600; font-display:swap; src:url(/assets/craftivus_erp/fonts/public-sans-600.woff2) format('woff2'); }
@font-face { font-family:'Public Sans'; font-style:normal; font-weight:700; font-display:swap; src:url(/assets/craftivus_erp/fonts/public-sans-700.woff2) format('woff2'); }
@font-face { font-family:'IBM Plex Mono'; font-style:normal; font-weight:400; font-display:swap; src:url(/assets/craftivus_erp/fonts/ibm-plex-mono-400.woff2) format('woff2'); }
@font-face { font-family:'IBM Plex Mono'; font-style:normal; font-weight:500; font-display:swap; src:url(/assets/craftivus_erp/fonts/ibm-plex-mono-500.woff2) format('woff2'); }
@font-face { font-family:'Big Shoulders Display'; font-style:normal; font-weight:700; font-display:swap; src:url(/assets/craftivus_erp/fonts/big-shoulders-display-700.woff2) format('woff2'); }
@font-face { font-family:'Big Shoulders Display'; font-style:normal; font-weight:900; font-display:swap; src:url(/assets/craftivus_erp/fonts/big-shoulders-display-900.woff2) format('woff2'); }

html:has(.craftivus-page), body:has(.craftivus-page){ margin:0; background:#F1EAD9; }
@media (prefers-color-scheme: dark){ body:has(.craftivus-page:not([data-theme="light"])){ background:#221812; } }
body:has(.craftivus-page[data-theme="dark"]){ background:#221812; }

.craftivus-page{
  --bg:#F1EAD9;
  --surface:#F8F3E8;
  --surface-2:#E9DFC8;
  --border:#DDCFB0;
  --text:#4A3826;
  --text-muted:#8A7660;
  --line:#8A4A2E;
  --line-soft:#B98F6E;
  --brass:#D9622B;
  --brass-strong:#B94F1F;
  --brass-bright:#E8804A;
  --on-brass:#FFF6EC;
  --rust:#A8431F;
  --rust-strong:#8A3517;
  --on-rust:#FBEEDD;
  --shadow-sm: 0 2px 10px rgba(50,32,16,0.07);
  --shadow-md: 0 14px 34px -12px rgba(50,32,16,0.18);
  --shadow-lg: 0 26px 60px -18px rgba(50,32,16,0.24);
  --ease: cubic-bezier(.22,1,.36,1);
  --ff-display:'Big Shoulders Display', 'Arial Narrow', sans-serif;
  --ff-body:'Public Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --ff-mono:'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, monospace;

  background:var(--bg); color:var(--text);
  font-family:var(--ff-body); font-size:16px; line-height:1.6;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
@media (prefers-color-scheme: dark){
  .craftivus-page:not([data-theme="light"]){
    --bg:#221812; --surface:#2E2118; --surface-2:#1A120D; --border:rgba(244,230,210,0.14);
    --text:#F3E8D8; --text-muted:#C7B49A; --line:#D08858; --line-soft:#8C6A4E;
    --brass:#E8804A; --brass-strong:#F0975E; --brass-bright:#F0975E; --on-brass:#241408;
    --rust:#C4532A; --rust-strong:#A8431F; --on-rust:#FBEEDD;
    --shadow-sm: 0 2px 10px rgba(0,0,0,0.3); --shadow-md: 0 14px 34px -12px rgba(0,0,0,0.5); --shadow-lg: 0 26px 60px -18px rgba(0,0,0,0.6);
  }
}
.craftivus-page[data-theme="dark"]{
  --bg:#221812; --surface:#2E2118; --surface-2:#1A120D; --border:rgba(244,230,210,0.14);
  --text:#F3E8D8; --text-muted:#C7B49A; --line:#D08858; --line-soft:#8C6A4E;
  --brass:#E8804A; --brass-strong:#F0975E; --brass-bright:#F0975E; --on-brass:#241408;
  --rust:#C4532A; --rust-strong:#A8431F; --on-rust:#FBEEDD;
  --shadow-sm: 0 2px 10px rgba(0,0,0,0.3); --shadow-md: 0 14px 34px -12px rgba(0,0,0,0.5); --shadow-lg: 0 26px 60px -18px rgba(0,0,0,0.6);
}

.craftivus-page *{box-sizing:border-box;}
.craftivus-page{ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){ .craftivus-page{ scroll-behavior:auto; } }
.craftivus-page ::selection{ background:var(--brass); color:var(--on-brass); }
.craftivus-page a{ color:inherit; }
.craftivus-page img, .craftivus-page svg{ max-width:100%; display:block; }
.craftivus-page .wrap{ max-width:1180px; margin:0 auto; padding:0 28px; position:relative; }
@media (max-width:640px){ .craftivus-page .wrap{ padding:0 20px; } }

.craftivus-page h1, .craftivus-page h2, .craftivus-page h3{ font-family:var(--ff-display); font-weight:900; text-transform:uppercase; text-wrap:balance; margin:0; letter-spacing:0.01em; color:var(--rust); }
.craftivus-page .eyebrow{
  font-family:var(--ff-mono); font-size:12px; letter-spacing:0.14em; text-transform:uppercase;
  color:var(--line); display:flex; align-items:center; gap:10px;
}
.craftivus-page .eyebrow::before{ content:""; width:22px; height:1px; background:linear-gradient(90deg,transparent,var(--line)); display:inline-block; }
.craftivus-page .mono-tag{
  font-family:var(--ff-mono); font-size:11px; letter-spacing:0.06em; text-transform:uppercase;
  color:var(--text-muted); background:var(--surface-2); border-radius:999px; padding:5px 12px;
  font-variant-numeric:tabular-nums;
}
.craftivus-page p{ margin:0; }
.craftivus-page .lede{ color:var(--text-muted); font-size:17px; line-height:1.75; max-width:52ch; }

.craftivus-page header{
  position:sticky; top:0; z-index:60; background:var(--rust); color:var(--on-rust);
  box-shadow:0 1px 0 rgba(0,0,0,0.06);
  transition: box-shadow .4s var(--ease), background .4s var(--ease);
}
.craftivus-page header.scrolled{ box-shadow:var(--shadow-md); }
.craftivus-page .nav{ display:flex; align-items:center; justify-content:space-between; padding:18px 0; }
.craftivus-page .wordmark{
  font-family:var(--ff-display); font-weight:900; font-size:22px; letter-spacing:0.02em;
  text-transform:uppercase; display:flex; align-items:baseline; gap:8px; text-decoration:none; color:var(--on-rust);
}
.craftivus-page .wordmark small{ font-family:var(--ff-mono); font-weight:400; font-size:10px; letter-spacing:0.1em; color:var(--on-rust); opacity:0.75; text-transform:uppercase; }
.craftivus-page .nav-links{ display:flex; align-items:center; gap:8px; list-style:none; margin:0; padding:0; }
.craftivus-page .nav-links a{
  text-decoration:none; font-size:14px; color:var(--on-rust); opacity:0.8; font-weight:600;
  letter-spacing:0.01em; position:relative; padding:8px 14px; border-radius:999px;
  transition:color .3s var(--ease), background .3s var(--ease), opacity .3s var(--ease);
}
.craftivus-page .nav-links a:hover, .craftivus-page .nav-links a:focus-visible{ color:var(--on-rust); opacity:1; background:rgba(0,0,0,0.12); }
.craftivus-page header .btn-ghost{ color:var(--on-rust); border-color:rgba(251,238,221,0.35); }
.craftivus-page header .btn-ghost:hover{ border-color:var(--on-rust); }
.craftivus-page header .burger{ color:var(--on-rust); border-color:rgba(251,238,221,0.35); }
.craftivus-page .btn{
  font-family:var(--ff-body); font-weight:700; font-size:14px; letter-spacing:0.01em;
  padding:12px 22px; border-radius:999px; text-decoration:none; display:inline-flex; align-items:center; gap:8px;
  cursor:pointer; border:1px solid transparent; transition:transform .45s var(--ease), background .35s var(--ease), border-color .35s var(--ease), box-shadow .35s var(--ease);
}
.craftivus-page .btn:focus-visible{ outline:2px solid var(--brass-bright); outline-offset:2px; }
.craftivus-page .btn-brass{ background:var(--brass); color:var(--on-brass); box-shadow:var(--shadow-sm); }
.craftivus-page .btn-brass:hover{ background:var(--brass-strong); transform:translateY(-2px); box-shadow:var(--shadow-md); }
.craftivus-page .btn-ghost{ background:transparent; color:var(--text); border-color:var(--border); }
.craftivus-page .btn-ghost:hover{ border-color:var(--line-soft); transform:translateY(-2px); }
.craftivus-page .btn-sm{ padding:9px 16px; font-size:13px; }
.craftivus-page .nav-cta{ display:flex; align-items:center; gap:14px; }
.craftivus-page .burger{ display:none; background:none; border:1px solid var(--border); border-radius:999px; width:42px; height:42px; align-items:center; justify-content:center; color:var(--text); position:relative; z-index:80; }
.craftivus-page .burger span, .craftivus-page .burger span::before, .craftivus-page .burger span::after{ content:""; display:block; width:16px; height:1.5px; background:currentColor; position:relative; transition:transform .35s var(--ease), opacity .35s var(--ease); }
.craftivus-page .burger span::before{ position:absolute; top:-5px; }
.craftivus-page .burger span::after{ position:absolute; top:5px; }
.craftivus-page .burger.open span{ background:transparent; }
.craftivus-page .burger.open span::before{ transform:translateY(5px) rotate(45deg); }
.craftivus-page .burger.open span::after{ transform:translateY(-5px) rotate(-45deg); }

.craftivus-page .mobile-menu{
  position:fixed; inset:0; z-index:70; background:var(--bg);
  display:flex; flex-direction:column; justify-content:center; gap:6px; padding:32px;
  opacity:0; visibility:hidden; transform:translateY(-12px);
  transition:opacity .45s var(--ease), transform .45s var(--ease), visibility 0s linear .45s;
}
.craftivus-page .mobile-menu.open{ opacity:1; visibility:visible; transform:none; transition:opacity .45s var(--ease), transform .45s var(--ease); }
.craftivus-page .mobile-menu a{ font-family:var(--ff-display); font-size:15vw; text-transform:uppercase; text-decoration:none; color:var(--text); line-height:1.15; }
.craftivus-page .mobile-menu a:hover{ color:var(--brass); }
.craftivus-page .mobile-menu .mm-foot{ margin-top:24px; font-family:var(--ff-mono); font-size:12px; color:var(--text-muted); }

@media (min-width:821px){ .craftivus-page .mobile-menu{ display:none; } }
@media (max-width:820px){
  .craftivus-page .nav-links{ display:none; }
  .craftivus-page .burger{ display:inline-flex; }
  .craftivus-page .nav-cta .btn-ghost{ display:none; }
}

.craftivus-page .wave{ display:block; line-height:0; position:relative; z-index:2; margin-top:-1px; }
.craftivus-page .wave svg{ width:100%; height:70px; display:block; }
@media (max-width:640px){ .craftivus-page .wave svg{ height:38px; } }
.craftivus-page .fill-bg{ fill:var(--bg); transition:fill .5s var(--ease); }
.craftivus-page .fill-surface{ fill:var(--surface); transition:fill .5s var(--ease); }

.craftivus-page .hero{ padding:88px 0 40px; position:relative; overflow:hidden; }
.craftivus-page .hero-blob{ position:absolute; inset:-10% -10% auto -10%; height:120%; z-index:0; pointer-events:none; filter:blur(60px); opacity:.55; }
@media (max-width:640px){ .craftivus-page .hero-blob{ opacity:.4; } }
.craftivus-page .blob-a, .craftivus-page .blob-b{ animation: craftivus-drift 22s ease-in-out infinite alternate; }
.craftivus-page .blob-b{ animation-duration:28s; animation-delay:-6s; }
@media (prefers-reduced-motion: reduce){ .craftivus-page .blob-a, .craftivus-page .blob-b{ animation:none; } }
@keyframes craftivus-drift{ from{ transform:translate(0,0) scale(1); } to{ transform:translate(3%,4%) scale(1.06); } }

.craftivus-page .hero-grid{ display:grid; grid-template-columns: 1.35fr 0.85fr; gap:56px; align-items:center; position:relative; z-index:2; }
@media (max-width:900px){ .craftivus-page .hero-grid{ grid-template-columns:1fr; } }
.craftivus-page .hero h1{ font-size:clamp(38px, 6vw, 72px); line-height:1; margin:20px 0 24px; color:var(--rust); }
.craftivus-page .hero h1 em{ font-style:normal; color:var(--brass); }
.craftivus-page .hero-cta{ display:flex; gap:14px; margin-top:32px; flex-wrap:wrap; }

.craftivus-page .title-block{
  background:var(--surface); border-radius:28px; padding:30px;
  position:relative; box-shadow:var(--shadow-lg); border:1px solid var(--border);
}
.craftivus-page .title-block .stamp{ position:absolute; top:-26px; right:-14px; width:80px; height:80px; filter:drop-shadow(0 6px 12px rgba(20,10,0,0.2)); }
.craftivus-page .tb-row{ display:flex; justify-content:space-between; gap:10px; padding:10px 0; border-bottom:1px solid var(--border); font-family:var(--ff-mono); font-size:11.5px; }
.craftivus-page .tb-row:last-child{ border-bottom:none; }
.craftivus-page .tb-key{ color:var(--text-muted); letter-spacing:0.08em; }
.craftivus-page .tb-val{ color:var(--text); font-weight:500; text-align:right; }
.craftivus-page .title-block h3{ font-size:12px; letter-spacing:0.14em; color:var(--line); margin-bottom:8px; font-family:var(--ff-mono); font-weight:500; text-transform:uppercase; }

.craftivus-page .draw-underline{ position:relative; display:inline-block; }
.craftivus-page .draw-underline svg{ position:absolute; left:0; bottom:-8px; width:100%; height:14px; overflow:visible; }
.craftivus-page .draw-underline path{ fill:none; stroke:var(--brass); stroke-width:4; stroke-linecap:round; stroke-dasharray:360; stroke-dashoffset:360; animation: craftivus-draw 1.3s .5s var(--ease) forwards; }
@media (prefers-reduced-motion: reduce){ .craftivus-page .draw-underline path{ animation:none; stroke-dashoffset:0; } }
@keyframes craftivus-draw{ to{ stroke-dashoffset:0; } }

.craftivus-page .sheet-head{ display:flex; align-items:baseline; justify-content:space-between; gap:20px; margin-bottom:44px; flex-wrap:wrap; }
.craftivus-page .sheet-num{ font-family:var(--ff-mono); font-size:12px; color:var(--brass); letter-spacing:0.1em; }
.craftivus-page .sheet-head h2{ font-size:clamp(28px,3.6vw,42px); margin-top:8px; }
.craftivus-page .sheet-note{ font-family:var(--ff-mono); font-size:11.5px; color:var(--text-muted); max-width:30ch; text-align:right; line-height:1.6; }
@media (max-width:640px){ .craftivus-page .sheet-note{ text-align:left; } }

.craftivus-page section{ padding:88px 0; position:relative; }
.craftivus-page .section-alt{ background:var(--surface); }

.craftivus-page .stack-strip{ padding:0 0 64px; }
.craftivus-page .stack-strip-label{
  font-family:var(--ff-mono); font-size:11px; letter-spacing:0.14em;
  text-transform:uppercase; color:var(--text-muted); text-align:center; margin-bottom:30px;
}
.craftivus-page .stack-marquee{
  overflow:hidden;
  mask-image:linear-gradient(90deg,transparent,black 16%,black 84%,transparent);
  -webkit-mask-image:linear-gradient(90deg,transparent,black 16%,black 84%,transparent);
}
.craftivus-page .stack-track{
  display:flex; align-items:center; gap:64px; width:max-content;
  animation:craftivus-marquee 46s linear infinite;
  will-change:transform; backface-visibility:hidden;
}
@media (prefers-reduced-motion: reduce){ .craftivus-page .stack-track{ animation:none; } }
@keyframes craftivus-marquee{
  from{ transform:translate3d(0,0,0); }
  to{ transform:translate3d(-33.3333%,0,0); }
}
.craftivus-page .stack-tile{
  flex:0 0 auto; display:flex; flex-direction:column; align-items:center; gap:12px;
}
.craftivus-page .stack-icon-badge{
  position:relative; overflow:hidden; isolation:isolate;
  display:flex; align-items:center; justify-content:center; width:46px; height:46px;
}
.craftivus-page .stack-icon-badge svg{ width:100%; height:100%; }
.craftivus-page .stack-icon-badge img{ width:100%; height:100%; object-fit:contain; }
.craftivus-page .stack-icon-badge::after{
  content:""; position:absolute; inset:-30% -160%; z-index:2; pointer-events:none;
  background:linear-gradient(115deg, transparent 42%, rgba(255,255,255,0.9) 50%, transparent 58%);
  background-repeat:no-repeat; background-size:46% 260%;
  animation:craftivus-shine 6.5s ease-in-out infinite;
  animation-delay:var(--shine-delay, 0s);
}
@media (prefers-reduced-motion: reduce){ .craftivus-page .stack-icon-badge::after{ animation:none; opacity:0; } }
@keyframes craftivus-shine{
  0%, 8%{ background-position:-180% -60%; }
  50%, 100%{ background-position:180% 60%; }
}
.craftivus-page .stack-tile-label{
  font-family:var(--ff-display); font-weight:700; font-size:14px;
  letter-spacing:0.01em; color:var(--text-muted); text-align:center;
}

.craftivus-page .cap-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
@media (max-width:900px){ .craftivus-page .cap-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px){ .craftivus-page .cap-grid{ grid-template-columns:1fr; } }
.craftivus-page .cap-card{
  background:var(--bg); border:1px solid var(--border); border-radius:22px; padding:30px 26px;
  display:flex; flex-direction:column; gap:14px; min-height:190px;
  transition:transform .5s var(--ease), box-shadow .5s var(--ease), border-color .5s var(--ease);
}
.craftivus-page .cap-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-md); border-color:var(--line-soft); }
.craftivus-page .cap-card .code{ font-family:var(--ff-mono); font-size:12px; color:var(--brass); letter-spacing:0.06em; }
.craftivus-page .cap-card h3{ font-family:var(--ff-body); text-transform:none; font-weight:700; font-size:17px; letter-spacing:0; }
.craftivus-page .cap-card p{ color:var(--text-muted); font-size:14.5px; line-height:1.65; }

.craftivus-page .work-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
@media (max-width:900px){ .craftivus-page .work-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px){ .craftivus-page .work-grid{ grid-template-columns:1fr; } }
.craftivus-page .work-card{
  border:1px solid var(--border); border-radius:22px; padding:30px 26px 26px; background:var(--bg);
  display:flex; flex-direction:column; gap:16px; position:relative; overflow:hidden;
  transition:transform .5s var(--ease), box-shadow .5s var(--ease), border-color .5s var(--ease);
}
.craftivus-page .work-card::before{
  content:""; position:absolute; top:0; left:0; right:0; height:4px;
  background:linear-gradient(90deg, var(--rust), var(--brass-bright));
}
.craftivus-page .work-card::after{
  content:""; position:absolute; top:-46px; right:-46px; width:150px; height:150px; border-radius:50%;
  background:radial-gradient(circle, var(--brass-bright) 0%, transparent 70%); opacity:0.14; pointer-events:none;
  transition:opacity .6s var(--ease), transform .6s var(--ease);
}
.craftivus-page .work-card:hover{
  border-color:var(--line-soft); transform:translateY(-8px);
  box-shadow:0 22px 46px -18px color-mix(in srgb, var(--rust) 35%, transparent);
}
.craftivus-page .work-card:hover::after{ opacity:0.24; transform:scale(1.15); }
.craftivus-page .work-card-top{ display:flex; align-items:center; justify-content:space-between; gap:10px; position:relative; z-index:1; }
.craftivus-page .work-case-no{ font-family:var(--ff-mono); font-size:11px; color:var(--text-muted); letter-spacing:0.06em; font-variant-numeric:tabular-nums; }
.craftivus-page .work-tag{ background:color-mix(in srgb, var(--rust) 14%, var(--surface-2)); color:var(--rust); font-weight:700; }
.craftivus-page .work-card p.desc{ font-size:15.5px; color:var(--text); line-height:1.65; position:relative; z-index:1; }
.craftivus-page .stack-tags{
  display:flex; flex-wrap:wrap; gap:6px; margin-top:auto; position:relative; z-index:1;
  padding-top:16px; border-top:1px dashed var(--border);
}

.craftivus-page .flow-wrap{ position:relative; }
.craftivus-page .flow-line{ position:absolute; top:34px; left:0; width:100%; height:60px; z-index:0; }
.craftivus-page .flow-line path{ fill:none; stroke:var(--border); stroke-width:2; }
@media (max-width:820px){ .craftivus-page .flow-line{ display:none; } }
.craftivus-page .process-list{ display:grid; grid-template-columns:repeat(4,1fr); gap:28px; position:relative; z-index:1; }
@media (max-width:820px){ .craftivus-page .process-list{ grid-template-columns:1fr; gap:0; } }
.craftivus-page .process-item{ display:flex; flex-direction:column; gap:12px; }
@media (max-width:820px){
  .craftivus-page .process-item{ padding:24px 0 24px 30px; border-left:2px solid var(--border); position:relative; margin-left:15px; }
  .craftivus-page .process-item:last-child{ padding-bottom:0; }
  .craftivus-page .process-item .pnum{ position:absolute; left:-19px; top:20px; background:var(--bg); }
}
.craftivus-page .process-item .pnum{
  font-family:var(--ff-mono); font-size:15px; color:var(--on-brass); font-weight:500;
  width:38px; height:38px; border-radius:50%; background:var(--brass); display:flex; align-items:center; justify-content:center;
  box-shadow:var(--shadow-sm);
}
.craftivus-page .process-item h3{ font-family:var(--ff-body); text-transform:none; font-weight:700; font-size:16px; letter-spacing:0; }
.craftivus-page .process-item p{ color:var(--text-muted); font-size:14px; line-height:1.65; }

.craftivus-page .live-panel{
  border-radius:32px; padding:48px; display:flex; justify-content:space-between; align-items:flex-start; gap:40px;
  background:var(--bg); position:relative; box-shadow:var(--shadow-lg); border:1px solid var(--border); flex-wrap:wrap;
}
.craftivus-page .demo-access{ display:flex; flex-direction:column; gap:14px; width:100%; max-width:380px; }
.craftivus-page .demo-access .craftivus-form{ gap:12px; }
.craftivus-page .demo-credentials{
  background:var(--surface); border:1px solid var(--border); border-radius:18px; padding:22px;
}
.craftivus-page .demo-credentials .cred-row{
  display:flex; justify-content:space-between; gap:10px; padding:8px 0; border-bottom:1px solid var(--border);
  font-family:var(--ff-mono); font-size:12px;
}
.craftivus-page .demo-credentials .cred-row:last-of-type{ border-bottom:none; }
.craftivus-page .demo-credentials .cred-key{ color:var(--text-muted); letter-spacing:0.06em; }
.craftivus-page .demo-credentials .cred-val{ color:var(--text); font-weight:600; word-break:break-all; }
.craftivus-page .live-panel::before{
  content:"DETAIL — A"; position:absolute; top:-12px; left:32px; background:var(--surface);
  padding:4px 12px; font-family:var(--ff-mono); font-size:11px; letter-spacing:0.1em; color:var(--brass);
  border-radius:20px; border:1px solid var(--border);
}
.craftivus-page .live-dot{ width:8px; height:8px; border-radius:50%; background:#4EBE7A; display:inline-block; box-shadow:0 0 0 4px color-mix(in srgb, #4EBE7A 22%, transparent); animation:craftivus-pulse 2.4s ease-in-out infinite; }
@media (prefers-reduced-motion: reduce){ .craftivus-page .live-dot{ animation:none; } }
@keyframes craftivus-pulse{ 50%{ box-shadow:0 0 0 8px color-mix(in srgb, #4EBE7A 12%, transparent); } }
@media (max-width:760px){ .craftivus-page .live-panel{ flex-direction:column; align-items:flex-start; text-align:left; padding:36px 28px; } }

.craftivus-page footer{ padding:80px 0 34px; }
.craftivus-page .footer-cta{
  display:grid; grid-template-columns: 1fr 1.15fr; gap:52px; align-items:center;
  background:var(--surface); border:1px solid var(--border); border-radius:30px;
  padding:52px; margin-bottom:40px; position:relative; overflow:hidden; box-shadow:var(--shadow-lg);
}
.craftivus-page .footer-cta::before{
  content:""; position:absolute; top:0; left:0; right:0; height:5px;
  background:linear-gradient(90deg, var(--rust), var(--brass-bright));
}
@media (max-width:860px){ .craftivus-page .footer-cta{ grid-template-columns:1fr; padding:36px 26px; gap:32px; } }
.craftivus-page .footer-cta h2{ font-size:clamp(30px,4.4vw,50px); max-width:14ch; }
.craftivus-page .footer-bar{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:14px; font-family:var(--ff-mono); font-size:11.5px; color:var(--text-muted); letter-spacing:0.04em; border-top:1px solid var(--border); padding-top:26px; }
.craftivus-page .footer-bar a{ text-decoration:none; color:var(--text-muted); transition:color .3s var(--ease); }
.craftivus-page .footer-bar a:hover{ color:var(--brass); }

.craftivus-page .craftivus-form{ display:flex; flex-direction:column; gap:16px; width:100%; }
.craftivus-page .form-row{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
@media (max-width:560px){ .craftivus-page .form-row{ grid-template-columns:1fr; } }

.craftivus-page .field{ display:flex; flex-direction:column; gap:7px; min-width:0; }
.craftivus-page .field-label{
  font-family:var(--ff-mono); font-size:10.5px; letter-spacing:0.1em; text-transform:uppercase;
  color:var(--text-muted);
}
.craftivus-page .field-label em{ font-style:normal; opacity:0.7; text-transform:none; letter-spacing:0; }

.craftivus-page .craftivus-form textarea{ min-height:120px; }
.craftivus-page .craftivus-form input, .craftivus-page .craftivus-form textarea{
  font-family:var(--ff-body); font-size:14px; padding:11px 15px; border-radius:13px;
  border:1px solid var(--border); background:var(--bg); color:var(--text); resize:vertical; width:100%;
  transition:border-color .3s var(--ease), box-shadow .3s var(--ease);
}
.craftivus-page .craftivus-form input:focus, .craftivus-page .craftivus-form textarea:focus{
  outline:none; border-color:var(--brass-bright);
  box-shadow:0 0 0 3px color-mix(in srgb, var(--brass-bright) 20%, transparent);
}
.craftivus-page .craftivus-form button{ align-self:flex-start; }
.craftivus-page .form-msg{ font-family:var(--ff-mono); font-size:12.5px; min-height:16px; }
.craftivus-page .form-msg.ok{ color:#3E8F5C; }
.craftivus-page .form-msg.err{ color:#B4483F; }

.craftivus-page .phone-field{
  position:relative; display:flex; align-items:stretch; width:100%; border:1px solid var(--border); border-radius:13px;
  background:var(--bg); transition:border-color .3s var(--ease), box-shadow .3s var(--ease);
}
.craftivus-page .phone-field:focus-within{
  border-color:var(--brass-bright); box-shadow:0 0 0 3px color-mix(in srgb, var(--brass-bright) 20%, transparent);
}
.craftivus-page .phone-code-trigger{
  -webkit-appearance:none; -moz-appearance:none; appearance:none;
  flex:0 0 auto; width:60px; align-self:stretch; margin:0;
  display:flex; align-items:center; justify-content:center; gap:5px;
  /* Real vertical padding gives the button the same natural content-box
     height as its sibling input on its own, so centering doesn't depend
     entirely on flex stretch behaving a particular way for <button>. */
  padding:11px 6px; border:none; border-right:1px solid var(--border);
  border-radius:12px 0 0 12px; background:var(--surface-2); cursor:pointer;
  color:var(--text-muted); font:inherit; box-sizing:border-box;
  transition:background .25s var(--ease);
}
.craftivus-page .phone-code-trigger:hover{ background:color-mix(in srgb, var(--brass) 10%, var(--surface-2)); }
.craftivus-page .phone-code-flag{ display:inline-block; font-size:20px; line-height:1; }
.craftivus-page .phone-code-chevron{ width:9px; height:9px; flex:0 0 auto; display:block; opacity:.65; }
.craftivus-page .phone-field input[name="phone"]{
  flex:1; min-width:0; border:none !important; border-radius:0 12px 12px 0 !important; background:transparent;
  font-family:var(--ff-body); font-size:14px; color:var(--text); padding:11px 15px;
}
.craftivus-page .phone-field input[name="phone"]:focus{ outline:none; box-shadow:none !important; }

.craftivus-page .phone-code-panel{
  position:absolute; top:calc(100% + 6px); left:0; z-index:20; width:280px; max-height:320px;
  display:flex; flex-direction:column; background:var(--surface); border:1px solid var(--border);
  border-radius:14px; box-shadow:var(--shadow-md); overflow:hidden;
}
.craftivus-page .phone-code-search{
  border:none; border-bottom:1px solid var(--border); border-radius:0; background:var(--bg) !important;
  font-family:var(--ff-body); font-size:13.5px; color:var(--text); padding:12px 14px;
}
.craftivus-page .phone-code-search:focus{ outline:none; box-shadow:none !important; }
.craftivus-page .phone-code-list{
  list-style:none; margin:0; padding:6px; overflow-y:auto; flex:1; min-height:0;
}
.craftivus-page .phone-code-group{
  font-family:var(--ff-mono); font-size:10px; letter-spacing:0.1em; text-transform:uppercase;
  color:var(--text-muted); padding:8px 10px 4px;
}
.craftivus-page .phone-code-option{
  font-family:var(--ff-body); font-size:13.5px; padding:9px 10px; border-radius:9px; cursor:pointer;
  color:var(--text); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.craftivus-page .phone-code-option:hover, .craftivus-page .phone-code-option.active{
  background:color-mix(in srgb, var(--brass) 14%, var(--surface-2));
}
.craftivus-page .phone-code-empty{ font-family:var(--ff-mono); font-size:12px; color:var(--text-muted); padding:10px; }

.craftivus-page .reveal{ opacity:0; transform:translateY(28px); transition:opacity .9s var(--ease), transform .9s var(--ease); }
.craftivus-page .reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){ .craftivus-page .reveal{ opacity:1; transform:none; transition:none; } }

.craftivus-page .compass{ animation: craftivus-spin 44s linear infinite; transform-origin:center; }
@media (prefers-reduced-motion: reduce){ .craftivus-page .compass{ animation:none; } }
@keyframes craftivus-spin{ to{ transform:rotate(360deg); } }
