/* HudgeSoft studio refresh. Original asset and animation implementations retained. */
:root {
  --primary:#6250ae; --primary-dark:#4b3c8b; --secondary:#6250ae; --accent:#6250ae;
  --dark:#252630; --dark-soft:#2e303b; --text:#353640; --text-dark:#62636d;
  --bg:#f8f7f3; --bg-soft:#efeee9; --card-bg:#fff;
  --studio-night:#191b26; --on-night:#f6f4ef; --muted-on-night:#c0c2cf;
}
body { background:var(--bg); color:var(--text); -webkit-font-smoothing:antialiased; }
body::before { background:radial-gradient(ellipse at 80% 15%,rgba(98,80,174,.025),transparent 55%); }
.container,.header-container { width:100%; max-width:1240px; padding-left:48px; padding-right:48px; }
header,header.scrolled { background:var(--studio-night); border-bottom:1px solid transparent; box-shadow:none; }
header.scrolled { border-bottom-color:#343644; }
.header-container { padding-top:18px; padding-bottom:18px; }
header.scrolled .header-container { padding:12px 48px; }
.logo-section { gap:12px; }
.logo-section h1 { color:#fff; background:none; -webkit-text-fill-color:currentColor; font-size:1.5rem; letter-spacing:-.04em; }
.logo-section img { width:40px; height:40px; object-fit:contain; }
nav a { color:#eeedf3; font-size:.9rem; }
nav a::after { background:#b9abe8; height:1px; }
main { padding-top:78px; background:var(--studio-night); }
section { scroll-margin-top:var(--header-offset, 64px); background:var(--bg); }
.hero { min-height:640px; padding:80px 0 90px; background:var(--studio-night); border-bottom:0; color:var(--on-night); }
.hero-content { grid-template-columns:1.13fr 1fr; gap:52px; }
.hero-text h2 { font-size:clamp(2.65rem,4.2vw,3.7rem); line-height:1.09; letter-spacing:-.055em; font-weight:500; color:var(--on-night); background:none; -webkit-text-fill-color:currentColor; max-width:660px; }
.hero-text .gradient-text { color:inherit; background:none; -webkit-text-fill-color:currentColor; }
.home-page .hero-text .gradient-text { color:#c4b5ee; }
.hero-text p { color:var(--muted-on-night); font-size:1.06rem; line-height:1.8; max-width:550px; margin-bottom:28px; }
.hero-image { min-width:0; }
.rive-wrap { width:100%; max-width:560px; filter:none; border-radius:0; overflow:visible; }
/* Original Rive artwork and glow blend into the full-width dark opening. */
.home-page .hero-image { background:transparent; border-radius:0; min-height:330px; padding:24px 4px; border:0; }
.cta-buttons { gap:12px; }
.btn { border-radius:6px; font-size:.88rem; padding:14px 20px; justify-content:center; min-height:48px; }
.btn-primary { background:var(--primary); box-shadow:none; color:#fff; }
.btn-primary:hover { background:var(--primary-dark); box-shadow:0 4px 12px rgba(37,38,48,.12); }
.btn-secondary { color:var(--dark); border:1px solid #b9b8bd; background:transparent; }
.btn-secondary:hover { background:#eeece6; border-color:#777581; }
/* High-contrast controls on dark sections; no additional glow. */
.hero .btn-primary,#contact .btn-primary { background:#c4b5ee; color:#211c32; box-shadow:none; }
.hero .btn-primary:hover,#contact .btn-primary:hover { background:#d5c9f5; box-shadow:none; }
.hero .btn-secondary { color:var(--on-night); border-color:#737585; background:transparent; }
.hero .btn-secondary:hover { background:#292c3a; border-color:#acaebb; }
.hero .btn:focus-visible,#contact .btn:focus-visible { outline-color:#e1d7ff; }
section:not(.hero) { padding:84px 0; }
.section-header { text-align:left; margin-bottom:44px; display:grid; grid-template-columns:1fr 1.35fr; gap:56px; align-items:start; }
.section-header h2 { font-size:2.25rem; letter-spacing:-.045em; line-height:1.15; color:var(--dark); background:none; -webkit-text-fill-color:currentColor; margin:0; font-weight:500; }
.section-header p { font-size:1.05rem; line-height:1.75; margin:0; max-width:600px; }
.card-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; margin-top:48px; }
.card { background:transparent; backdrop-filter:none; border:0; border-left:1px solid #d6d4ce; border-radius:0; padding:8px 28px 12px; overflow:visible; }
.card:first-child { border-left:0; padding-left:0; }
.card:last-child { padding-right:0; }
.card::before { background:rgba(98,80,174,.025); pointer-events:none; }
.card:hover { transform:translateY(-4px); box-shadow:none; border-color:#c2bed0; }
.card-icon { width:64px; height:64px; background:transparent; border-radius:0; margin-bottom:24px; justify-content:flex-start; }
.card-icon img { display:block; width:64px; height:64px; }
.card h3 { color:var(--dark); font-size:1.25rem; letter-spacing:-.02em; }
.card p { font-size:.94rem; line-height:1.8; }
#products { background:#eeede8; border-top:1px solid #deddd8; }
.product-showcase { background:#fff; border:1px solid #dcdad4; border-radius:10px; backdrop-filter:none; padding:48px; margin:0; }
.product-showcase::before { background:radial-gradient(circle,rgba(98,80,174,.035),transparent 70%); pointer-events:none; }
.product-content { gap:56px; }
.product-text h3 { color:var(--dark)!important; font-size:2.25rem!important; letter-spacing:-.035em; }
.product-text p { color:var(--text)!important; font-size:1rem!important; line-height:1.8!important; }
.product-text > div > span { background:#f0eef5!important; color:#514961; border-radius:4px!important; padding:7px 10px!important; font-size:.8rem!important; }
.product-image img { box-shadow:none; border-radius:6px; max-width:340px; }
#contact { background:var(--studio-night); --text:#ebeaf0; --text-dark:#bbbcc6; --card-bg:transparent; color:var(--text); }
#contact .container { display:grid; grid-template-columns:.85fr 1.15fr; gap:80px; }
#contact .section-header { display:block; margin:0; }
#contact .section-header h2 { color:#fff; margin-bottom:24px; }
#contact .section-header p { font-size:1rem; }
.contact-content { max-width:none; width:100%; }
.contact-card { background:transparent; box-shadow:none; border:0; border-radius:0; padding:0; backdrop-filter:none; }
.contact-card::before { background:none; }
.field-label { font-size:.85rem; font-weight:500; }
.field-input { background:#30313d; border:1px solid #646572; border-radius:5px; font:inherit; padding:12px; }
.contact-alt { text-align:left; }
.contact-alt a::after { height:1px; background:#b4a5e2; }
footer { background:var(--studio-night); color:#bbbcc6; border-top:1px solid #44454f; margin-top:0; padding:28px 0; }
footer .copyright,footer .footer-links a { color:#bbbcc6; font-size:.8rem; }
.footer-content { gap:20px; }
:focus-visible { outline:3px solid #ad94ee; outline-offset:5px; }
.mobile-menu-btn { border:0; background:transparent; }
.screenshot-card { border-color:#dcdad4; box-shadow:0 12px 32px rgba(37,38,48,.12); }
.feature-list li { color:var(--text); }
/* Supporting documents share the studio typography without changing their content. */
.legal-page { font-family:Inter,Arial,sans-serif; }
.legal-page::before { display:none; }
.legal-page .legal { display:block; max-width:850px; padding:52px 32px 80px; }
.legal-page .legal h1,.legal-page .legal h2,.legal-page .legal h3 { text-align:left; color:var(--dark); letter-spacing:-.025em; }
.legal-page .legal p,.legal-page .legal li { font-family:inherit; font-size:1rem; line-height:1.8; }
.legal-page .legal ul { padding-left:24px; }
.legal-page a { color:var(--primary-dark); }
@media(max-width:1024px) {
 .container,.header-container { padding-left:32px; padding-right:32px; }
 header.scrolled .header-container { padding-left:32px; padding-right:32px; }
 .hero-content { gap:32px; }
 .hero-text h2 { font-size:2.75rem; }
 .product-content { grid-template-columns:1fr 1fr; gap:32px; }
 #contact .container { gap:40px; }
 .home-page .hero-image { min-height:260px; }
}
@media(max-width:768px) {
 .container,.header-container { padding-left:24px; padding-right:24px; }
 header.scrolled .header-container { padding-left:24px; padding-right:24px; }
 main { padding-top:76px; }
 nav { background:var(--studio-night); border-color:#44454f; }
 .hero { min-height:0; padding:48px 0; }
 .hero-content { grid-template-columns:1fr; grid-template-rows:auto; height:auto; gap:32px; }
 .hero-text h2 { font-size:clamp(2.3rem,7vw,3.3rem); }
 .hero-text p { font-size:1rem; }
 .hero-image { margin:0; height:auto; }
 .home-page .hero { padding-bottom:0; }
 .home-page .hero-image { min-height:0; padding:20px 10px 0; align-items:flex-end; }
 .rive-wrap { width:100%; max-width:560px; }
 section:not(.hero) { padding:56px 0; }
 .section-header { grid-template-columns:1fr; gap:20px; margin-bottom:32px; }
 .section-header h2 { font-size:2rem; }
 .card-grid { grid-template-columns:1fr; margin-top:28px; }
 .card,.card:first-child,.card:last-child { border-left:0; border-top:1px solid #d6d4ce; padding:28px 0; }
 /* Pair each illustration with its heading; keep paragraphs comfortably wide. */
 .home-page #about .card {
   display:grid;
   grid-template-columns:56px minmax(0,1fr);
   column-gap:14px;
   row-gap:14px;
   align-items:center;
 }
 .home-page #about .card-icon { grid-column:1; grid-row:1; width:56px; height:56px; margin:0; align-self:center; }
 .home-page #about .card-icon img { width:56px; height:56px; }
 .home-page #about .card h3 { grid-column:2; grid-row:1; margin:0; line-height:1.25; align-self:center; }
 .home-page #about .card p { grid-column:1 / -1; margin:0; }
 #contact .field-input:focus { border-color:#646572; box-shadow:none; outline:none; }
 .product-showcase { padding:28px 22px; }
 .product-content { grid-template-columns:1fr; gap:32px; }
 .product-image img { max-width:290px; }
 #contact .container { grid-template-columns:1fr; gap:36px; }
 .form-grid { grid-template-columns:1fr; gap:0; }
 .footer-links { gap:20px; flex-wrap:wrap; }
 .footer-content { align-items:flex-start; }
 .legal-page .legal { padding:28px 24px 56px; }
}
@media(prefers-reduced-motion:reduce) {
 *,*::before,*::after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; scroll-behavior:auto!important; }
 .hero-content,.section-header,.card,.product-showcase,.product-text,.product-image,.contact-content,.screenshot-card { opacity:1!important; transform:none!important; }
}
/* Preserve screenshot hover choreography, with softer surfaces. */
.screenshot-card::before { background:radial-gradient(circle,rgba(98,80,174,.06),transparent 65%); }
.screenshot-card img { box-shadow:0 14px 35px rgba(37,38,48,.14); }
/* Outrank the three .visible:nth-child resting poses. */
.product-page .screenshot-card.visible:hover {
 transform:translateY(-40px) scale(1.2) rotate(0deg);
 z-index:10;
 box-shadow:0 40px 100px rgba(15,23,42,.65);
 transition-delay:0s !important;
}
.store-badges img { box-shadow:none; background:transparent; }
.product-image:hover img { box-shadow:none; }
@media(prefers-reduced-motion:reduce) {
 .hero-text,.feature-list li { opacity:1!important; transform:none!important; }
}
*,*::before,*::after { box-sizing:border-box; }

/* Keep contact fields calm on focus; focus remains visible via browser context. */
#contact .field-input:focus { border-color:#646572; box-shadow:none; outline:none; }
/* Mobile navigation: generous touch targets and a full-height panel below the header. */
@media (max-width:768px) {
  header nav,
  header nav.active {
    top:var(--header-offset, 76px);
    height:calc(100dvh - var(--header-offset, 76px));
    min-height:calc(100vh - var(--header-offset, 76px));
    width:100%;
    padding:clamp(28px, 8vh, 72px) 24px;
    gap:clamp(24px, 5vh, 42px);
    justify-content:flex-start;
    align-items:center;
    background:var(--studio-night);
    border-top:1px solid #343644;
    z-index:999;
    overflow-y:auto;
  }
  header nav a,
  header.scrolled nav a {
    display:block;
    padding:10px 18px;
    font-size:1.25rem;
    line-height:1.3;
    font-weight:500;
  }
  header nav a::after { bottom:2px; height:2px; }
}
