:root{
  --ivory:#F7F4EE;
  --beige:#E9E0D4;
  --champagne:#E3D4C4;
  --gold:#9A5234;
  --steel:#78918D;
  --graphite:#3A4541;
  --ink:#163D38;
  --ink-2:#204A44;
  --muted:#5A635F;
  --line:rgba(22,61,56,.12);
  --glass:rgba(247,244,238,.78);
  --white:#fff;
  --radius-xl:38px;
  --radius-lg:28px;
  --radius-md:20px;
  --shadow:0 24px 70px rgba(22,61,56,.10);
  --shadow-soft:0 14px 38px rgba(22,61,56,.07);
  --container:min(1280px, calc(100% - 48px));
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--ivory);color:var(--ink);font-family:Inter,Aptos,"Segoe UI",system-ui,-apple-system,sans-serif;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
::selection{background:var(--champagne);color:var(--ink)}
.skip-link{position:fixed;left:16px;top:-80px;z-index:200;padding:12px 16px;background:var(--ink);color:#fff;border-radius:12px}.skip-link:focus{top:16px}
.container{width:var(--container);margin-inline:auto}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:.76rem;font-weight:800;letter-spacing:.15em;text-transform:uppercase;color:var(--graphite)}
.eyebrow:before{content:"";width:28px;height:1px;background:var(--gold)}
.section{padding:116px 0;position:relative}
.section-tight{padding:82px 0}
.section-dark{background:var(--ink);color:var(--ivory)}
.section-beige{background:var(--beige)}
.section-grid-bg:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(120,145,141,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(120,145,141,.08) 1px,transparent 1px);background-size:64px 64px;mask-image:linear-gradient(to bottom,transparent,black 18%,black 82%,transparent);pointer-events:none}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:48px;margin-bottom:48px}
.section-head h2,.display{font-size:clamp(2.7rem,5.4vw,5.9rem);line-height:.95;letter-spacing:-.055em;margin:14px 0 0;max-width:900px}
.section-head p{max-width:520px;color:var(--muted);font-size:1.08rem;margin:0 0 4px}.section-dark .section-head p{color:#B4C0CB}
.lead{font-size:clamp(1.1rem,1.5vw,1.35rem);color:var(--muted);max-width:700px}
.small{font-size:.9rem;color:var(--muted)}
.gold{color:#8A472E}

/* header */
.topbar{background:var(--ink);color:#DCE4EB;font-size:.82rem}.topbar-inner{min-height:38px;display:flex;align-items:center;justify-content:space-between;gap:18px}.topbar a:hover{color:#fff}.topbar-left,.topbar-right{display:flex;align-items:center;gap:20px}.status-dot{width:8px;height:8px;border-radius:50%;background:#72D09A;box-shadow:0 0 0 6px rgba(114,208,154,.12)}
.site-header{position:sticky;top:0;z-index:80;background:rgba(247,244,238,.82);backdrop-filter:blur(18px);border-bottom:1px solid transparent;transition:.25s}.site-header.scrolled{border-color:var(--line);box-shadow:0 8px 30px rgba(22,61,56,.05)}
.nav{height:86px;display:flex;align-items:center;justify-content:space-between;gap:30px}.brand{display:flex;align-items:center;gap:13px;min-width:max-content}.brand img{width:46px;height:46px}.brand-copy strong{display:block;font-size:1.15rem;letter-spacing:.04em;line-height:1}.brand-copy span{display:block;font-size:.62rem;letter-spacing:.34em;color:var(--muted);margin-top:6px;text-transform:uppercase}
.nav-links{display:flex;align-items:center;gap:26px;font-size:.91rem;font-weight:650}.nav-links>a{position:relative}.nav-links>a:not(.btn):after{content:"";position:absolute;left:0;right:100%;bottom:-9px;height:2px;background:var(--gold);transition:.2s}.nav-links>a:not(.btn):hover:after,.nav-links>a.active:not(.btn):after{right:0}
.nav-actions{display:flex;align-items:center;gap:10px}.menu-toggle{display:none;width:46px;height:46px;border:1px solid var(--line);background:rgba(255,255,255,.65);border-radius:14px;align-items:center;justify-content:center}.menu-toggle span,.menu-toggle:before,.menu-toggle:after{content:"";display:block;width:20px;height:2px;background:var(--ink);position:absolute;transition:.2s}.menu-toggle:before{transform:translateY(-6px)}.menu-toggle:after{transform:translateY(6px)}.menu-toggle.open span{opacity:0}.menu-toggle.open:before{transform:rotate(45deg)}.menu-toggle.open:after{transform:rotate(-45deg)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border-radius:999px;padding:14px 20px;border:1px solid transparent;font-weight:750;line-height:1;transition:.22s ease;white-space:nowrap}.btn:hover{transform:translateY(-2px)}.btn-primary{background:var(--ink);color:#fff;box-shadow:0 10px 24px rgba(22,61,56,.16)}.btn-primary:hover{background:#214A44}.btn-light{background:#fff;color:var(--ink)}.btn-outline{border-color:var(--line);background:rgba(255,255,255,.55)}.btn-gold{background:var(--gold);color:var(--ink)}.btn-sm{padding:11px 15px;font-size:.84rem}

/* hero */
.hero{min-height:720px;padding:76px 0 70px;position:relative;overflow:hidden}.hero:before{content:"";position:absolute;width:760px;height:760px;right:-300px;top:-250px;border-radius:50%;background:radial-gradient(circle,var(--champagne),rgba(227,212,196,0) 68%);opacity:.72}.hero:after{content:"";position:absolute;width:640px;height:640px;left:-330px;bottom:-420px;border-radius:50%;background:radial-gradient(circle,#E3ECE8,rgba(227,236,232,0) 69%)}
.hero-grid{position:relative;z-index:2;display:grid;grid-template-columns:1.08fr .92fr;gap:60px;align-items:center}.hero-copy h1{font-size:clamp(3.7rem,7.3vw,8rem);line-height:.88;letter-spacing:-.072em;margin:20px 0 28px;max-width:860px}.hero-copy h1 em{font-family:Georgia,"Times New Roman",serif;font-weight:400;color:#8A472E}.hero-copy .lead{font-size:clamp(1.12rem,1.55vw,1.34rem);max-width:690px}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin:34px 0 42px}.hero-meta{display:flex;flex-wrap:wrap;gap:28px;color:var(--muted);font-size:.9rem}.hero-meta span{display:flex;align-items:center;gap:9px}.meta-icon{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#fff;border:1px solid var(--line);font-size:.8rem}
.hero-visual{position:relative;min-height:600px}.visual-card{position:absolute;inset:28px 0 0 20px;border-radius:46px;overflow:hidden;background:var(--ink);box-shadow:0 34px 90px rgba(22,61,56,.18);transform:rotate(1.2deg)}.visual-card img{width:100%;height:100%;object-fit:cover}.visual-card:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 48%,rgba(22,61,56,.72))}
.visual-overlay{position:absolute;z-index:2;left:48px;right:30px;bottom:38px;color:#fff}.visual-overlay .chip{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid rgba(255,255,255,.16);background:rgba(22,61,56,.45);backdrop-filter:blur(10px);border-radius:999px;font-size:.76rem;margin-bottom:14px}.visual-overlay h3{font-size:2rem;line-height:1.08;margin:0 0 8px;letter-spacing:-.035em}.visual-overlay p{margin:0;color:#CAD4DC;max-width:480px}
.float-card{position:absolute;z-index:4;background:rgba(255,255,255,.9);backdrop-filter:blur(16px);box-shadow:var(--shadow-soft);border:1px solid rgba(255,255,255,.6);border-radius:22px;padding:18px 20px}.float-card.top{right:-24px;top:0}.float-card.bottom{left:-24px;bottom:28px}.float-label{display:block;font-size:.67rem;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);font-weight:800}.float-main{display:flex;align-items:center;gap:10px;margin-top:7px;font-weight:800}.live-pulse{width:9px;height:9px;border-radius:50%;background:#3FBF79;box-shadow:0 0 0 6px rgba(63,191,121,.13)}

/* proof strip */
.proof-strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:rgba(255,255,255,.38)}.proof-inner{display:grid;grid-template-columns:1.15fr repeat(4,1fr);align-items:center;min-height:112px}.proof-item{padding:22px 28px;border-left:1px solid var(--line);height:100%;display:flex;flex-direction:column;justify-content:center}.proof-item:first-child{border-left:0;padding-left:0}.proof-item strong{font-size:1.06rem}.proof-item span{font-size:.82rem;color:var(--muted);margin-top:4px}.proof-kicker{font-size:.74rem;text-transform:uppercase;letter-spacing:.13em;color:var(--muted);font-weight:800}

/* bento */
.bento{display:grid;grid-template-columns:repeat(12,1fr);gap:18px}.bento-card{position:relative;min-height:300px;padding:34px;border-radius:var(--radius-lg);border:1px solid var(--line);overflow:hidden;background:rgba(255,255,255,.65);box-shadow:var(--shadow-soft);transition:.25s}.bento-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}.bento-card.dark{background:var(--ink);color:#fff}.bento-card.gold-card{background:var(--champagne)}.bento-card.steel{background:#E7EEE9}.bento-card.col-7{grid-column:span 7}.bento-card.col-5{grid-column:span 5}.bento-card.col-4{grid-column:span 4}.bento-card.col-8{grid-column:span 8}.card-no{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:800}.dark .card-no{color:#91A1B1}.bento-card h3{font-size:clamp(1.7rem,2.3vw,2.65rem);line-height:1.02;letter-spacing:-.04em;margin:18px 0 12px;max-width:580px}.bento-card p{color:var(--muted);max-width:560px;margin:0}.dark p{color:#B9C4CE}.bento-link{display:inline-flex;align-items:center;gap:10px;margin-top:26px;font-weight:800}.bento-link i{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--ink);color:#fff;font-style:normal;transition:.2s}.dark .bento-link i{background:#fff;color:var(--ink)}.bento-link:hover i{transform:translateX(4px)}
.mini-topology{position:absolute;right:24px;bottom:20px;width:46%;height:50%;opacity:.9}.mini-topology .node{position:absolute;width:14px;height:14px;background:var(--gold);border-radius:50%;box-shadow:0 0 0 7px rgba(154,82,52,.14)}.mini-topology:before,.mini-topology:after{content:"";position:absolute;height:1px;background:rgba(255,255,255,.26);transform-origin:left center}.mini-topology:before{width:70%;left:12%;top:48%;transform:rotate(-14deg)}.mini-topology:after{width:65%;left:20%;top:64%;transform:rotate(20deg)}
.tech-stack{display:flex;flex-wrap:wrap;gap:9px;margin-top:28px}.tech-pill{padding:9px 12px;border-radius:999px;border:1px solid var(--line);font-size:.78rem;font-weight:700;background:rgba(255,255,255,.54)}.dark .tech-pill{border-color:rgba(255,255,255,.13);background:rgba(255,255,255,.06);color:#D9E1E8}

/* system flow */
.flow-wrap{border-radius:var(--radius-xl);background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-soft);padding:36px}.flow{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;position:relative}.flow:before{content:"";position:absolute;left:8%;right:8%;top:48px;height:1px;background:linear-gradient(90deg,var(--steel),var(--gold),var(--steel));z-index:0}.flow-item{position:relative;z-index:1;text-align:center}.flow-icon{width:96px;height:96px;margin:0 auto 18px;border-radius:28px;background:var(--ivory);border:1px solid var(--line);display:grid;place-items:center;font-size:1.8rem;box-shadow:0 10px 24px rgba(22,61,56,.06)}.flow-item strong{display:block;font-size:.95rem}.flow-item span{display:block;font-size:.78rem;color:var(--muted);margin-top:5px}

/* feature split */
.split{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}.media-frame{border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow);border:1px solid var(--line);background:#fff}.media-frame img{width:100%;aspect-ratio:1.18/1;object-fit:cover}.feature-list{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:30px 0}.feature{padding:15px 0;border-bottom:1px solid var(--line);font-weight:700;display:flex;gap:10px;align-items:center}.feature:before{content:"✓";width:23px;height:23px;border-radius:50%;display:grid;place-items:center;background:var(--beige);font-size:.72rem;color:#8A6A0C}

/* process */
.process{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.step{padding:30px;border-top:1px solid rgba(255,255,255,.16);position:relative}.step-no{font-size:.75rem;color:var(--gold);letter-spacing:.15em;font-weight:800}.step h3{font-size:1.5rem;margin:18px 0 10px}.step p{color:#AEBAC5;margin:0}.step:after{content:"→";position:absolute;right:-15px;top:26px;font-size:1.4rem;color:var(--gold)}.step:last-child:after{display:none}

/* projects */
.projects{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.project{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:18px;box-shadow:var(--shadow-soft);transition:.25s}.project:hover{transform:translateY(-5px)}.project-screen{height:230px;border-radius:20px;background:linear-gradient(150deg,#18222D,#334659);padding:18px;overflow:hidden;position:relative}.project-screen.light{background:linear-gradient(150deg,#EDE8DD,#E3ECE8)}.browser-bar{height:28px;border-radius:10px;background:rgba(255,255,255,.11);display:flex;align-items:center;gap:6px;padding:0 10px}.browser-bar i{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.4)}.mock-card{position:absolute;background:#fff;border-radius:15px;box-shadow:0 16px 35px rgba(0,0,0,.16)}.mock-a{left:28px;right:28px;top:65px;height:124px;padding:18px}.mock-a:before{content:"";display:block;width:42%;height:14px;border-radius:7px;background:#1A2530;box-shadow:0 28px 0 #D8DEE4,0 54px 0 #E9D9AD}.mock-b{right:24px;bottom:-25px;width:48%;height:120px;background:#E3D4C4}.project-body{padding:20px 7px 8px}.project-tag{font-size:.7rem;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);font-weight:800}.project h3{font-size:1.5rem;margin:10px 0 8px}.project p{color:var(--muted);margin:0}

/* stats */
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.stat{padding:30px;border-radius:var(--radius-lg);border:1px solid var(--line);background:rgba(255,255,255,.6)}.stat strong{display:block;font-size:clamp(2.3rem,4vw,4.2rem);letter-spacing:-.06em;line-height:1}.stat span{display:block;margin-top:12px;color:var(--muted);font-size:.92rem}

/* reviews */
.review-feature{display:grid;grid-template-columns:.8fr 1.2fr;gap:18px}.google-card{border-radius:var(--radius-xl);padding:42px;background:var(--ink);color:#fff;display:flex;flex-direction:column;justify-content:space-between;min-height:390px}.stars{letter-spacing:.15em;color:#E6C75F;font-size:1.3rem}.google-card h3{font-size:2.5rem;letter-spacing:-.04em;line-height:1.05;margin:18px 0}.google-card p{color:#B9C4CE}.review-placeholder{border-radius:var(--radius-xl);border:1px dashed rgba(22,61,56,.24);background:rgba(255,255,255,.55);padding:42px;display:grid;place-items:center;text-align:center}.review-placeholder strong{font-size:1.45rem}.review-placeholder p{max-width:520px;color:var(--muted)}

/* smart entry */
.smart-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:36px}.smart-link{min-height:155px;border:1px solid var(--line);background:#fff;border-radius:22px;padding:24px;display:flex;flex-direction:column;justify-content:space-between;transition:.23s}.smart-link:hover{background:var(--ink);color:#fff;transform:translateY(-3px)}.smart-icon{font-size:1.45rem}.smart-link strong{font-size:1.1rem}.smart-link small{color:var(--muted)}.smart-link:hover small{color:#B9C4CE}

/* CTA */
.cta-shell{position:relative;border-radius:48px;overflow:hidden;background:var(--ink);color:#fff;padding:72px;box-shadow:var(--shadow)}.cta-shell:before{content:"";position:absolute;width:560px;height:560px;border-radius:50%;right:-120px;top:-330px;background:radial-gradient(circle,rgba(154,82,52,.32),rgba(154,82,52,0) 65%)}.cta-shell:after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:52px 52px;mask-image:linear-gradient(90deg,transparent,black)}.cta-content{position:relative;z-index:2;max-width:780px}.cta-content h2{font-size:clamp(3rem,6vw,6rem);line-height:.92;letter-spacing:-.055em;margin:16px 0 20px}.cta-content p{font-size:1.1rem;color:#B9C4CE;max-width:620px}.cta-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}

/* subpage hero */
.page-hero{padding:86px 0 68px}.page-hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:50px;align-items:center}.page-hero h1{font-size:clamp(3.4rem,6.4vw,7.2rem);line-height:.9;letter-spacing:-.065em;margin:16px 0 24px}.page-hero .media-frame{transform:rotate(.7deg)}
.kpi-row{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:34px}.kpi{border:1px solid var(--line);border-radius:18px;padding:18px;background:rgba(255,255,255,.58)}.kpi strong{display:block;font-size:1.25rem}.kpi span{font-size:.78rem;color:var(--muted)}
.service-detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.service-detail{padding:28px;border:1px solid var(--line);background:#fff;border-radius:24px}.service-detail .icon{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:var(--beige);margin-bottom:22px}.service-detail h3{font-size:1.25rem;margin:0 0 9px}.service-detail p{color:var(--muted);margin:0}
.price-box{display:grid;grid-template-columns:.75fr 1.25fr;gap:24px;background:#fff;border-radius:var(--radius-xl);padding:42px;border:1px solid var(--line)}.price-main strong{font-size:4.5rem;letter-spacing:-.06em}.price-main span{color:var(--muted)}.price-lines{display:grid;gap:0}.price-line{display:flex;justify-content:space-between;gap:20px;padding:17px 0;border-bottom:1px solid var(--line)}.price-line:last-child{border-bottom:0}

/* contact */
.contact-grid{display:grid;grid-template-columns:.88fr 1.12fr;gap:32px}.contact-card,.form-card{border:1px solid var(--line);border-radius:var(--radius-xl);background:#fff;padding:38px;box-shadow:var(--shadow-soft)}.contact-list{display:grid;gap:0;margin-top:22px}.contact-row{padding:17px 0;border-bottom:1px solid var(--line)}.contact-row span{display:block;color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;font-weight:800}.contact-row strong{display:block;margin-top:4px;font-size:1.1rem}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.field{display:flex;flex-direction:column;gap:8px}.field.full{grid-column:1/-1}.field label{font-size:.78rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--graphite)}.field input,.field textarea,.field select{width:100%;border:1px solid var(--line);background:var(--ivory);border-radius:15px;padding:15px 16px;outline:none;transition:.2s}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--steel);box-shadow:0 0 0 4px rgba(120,145,141,.12)}.field textarea{min-height:150px;resize:vertical}.form-note{font-size:.79rem;color:var(--muted);margin:14px 0 0}.form-hp{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important}.form-status{display:none;grid-column:1/-1;border-radius:14px;padding:13px 15px;font-size:.9rem;font-weight:700}.form-status.is-success{display:block;color:#174D35;background:#E7F5EC;border:1px solid #B9DEC7}.form-status.is-error{display:block;color:#7A2E24;background:#FFF0EC;border:1px solid #E9B9AE}.form-card button:disabled{cursor:wait;opacity:.68}

/* footer */
.footer{padding:72px 0 30px;background:#0D131A;color:#D6DEE5}.footer-grid{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:48px}.footer .brand-copy strong{color:#fff}.footer .brand-copy span{color:#8997A4}.footer p{color:#96A4B0;max-width:420px}.footer h4{font-size:.78rem;text-transform:uppercase;letter-spacing:.15em;color:#738391;margin:0 0 18px}.footer-links{display:grid;gap:11px}.footer-links a:hover{color:#fff}.footer-bottom{margin-top:55px;padding-top:24px;border-top:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;gap:24px;color:#7F8D99;font-size:.79rem}

/* cookie */
.cookie{position:fixed;left:22px;right:22px;bottom:22px;z-index:120;max-width:760px;margin-left:auto;background:rgba(22,61,56,.96);color:#fff;border:1px solid rgba(255,255,255,.12);box-shadow:0 20px 60px rgba(0,0,0,.25);border-radius:22px;padding:20px;display:none}.cookie.show{display:block}.cookie-row{display:flex;gap:18px;align-items:center;justify-content:space-between}.cookie p{margin:0;color:#BFC9D1;font-size:.86rem}.cookie-actions{display:flex;gap:8px;flex-shrink:0}.cookie .btn{padding:11px 14px;font-size:.79rem}

/* misc */
.anchor{scroll-margin-top:110px}.badge{display:inline-flex;padding:8px 11px;border-radius:999px;background:var(--beige);font-size:.74rem;font-weight:800}.divider{height:1px;background:var(--line)}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .65s ease,transform .65s ease}.reveal.visible{opacity:1;transform:none}
.floating-support{position:fixed;right:22px;bottom:22px;z-index:70;width:56px;height:56px;border-radius:50%;background:var(--gold);color:var(--ink);display:grid;place-items:center;font-weight:900;box-shadow:0 14px 34px rgba(22,61,56,.22);border:1px solid rgba(22,61,56,.1)}

@media(max-width:1100px){
  :root{--container:min(100% - 36px,980px)}
  .nav-links{display:none;position:absolute;left:18px;right:18px;top:92px;background:rgba(247,244,238,.98);border:1px solid var(--line);border-radius:24px;padding:20px;box-shadow:var(--shadow);flex-direction:column;align-items:stretch;gap:0}.nav-links.open{display:flex}.nav-links a{padding:14px 8px}.nav-links .btn{margin-top:10px}.menu-toggle{display:flex;position:relative}.nav-actions .desktop-only{display:none}
  .hero-grid,.page-hero-grid,.split,.review-feature,.contact-grid{grid-template-columns:1fr}.hero{padding-top:46px}.hero-copy h1{max-width:900px}.hero-visual{min-height:560px;max-width:760px}.float-card.top{right:0}.float-card.bottom{left:0}
  .proof-inner{grid-template-columns:repeat(2,1fr)}.proof-item:first-child{grid-column:1/-1;padding-left:22px}.proof-item{border-left:0;border-top:1px solid var(--line)}
  .bento-card.col-7,.bento-card.col-5,.bento-card.col-4,.bento-card.col-8{grid-column:span 6}.flow{grid-template-columns:repeat(3,1fr);row-gap:30px}.flow:before{display:none}.projects,.smart-grid,.service-detail-grid{grid-template-columns:repeat(2,1fr)}.process{grid-template-columns:repeat(2,1fr)}.step:nth-child(2):after{display:none}.stat-grid{grid-template-columns:repeat(2,1fr)}.footer-grid{grid-template-columns:1.4fr 1fr 1fr}.footer-grid>div:last-child{grid-column:2/4}.price-box{grid-template-columns:1fr}
}
@media(max-width:720px){
  :root{--container:calc(100% - 28px);--radius-xl:28px;--radius-lg:22px}
  .topbar-right{display:none}.topbar-left{width:100%;justify-content:space-between}.nav{height:76px}.brand img{width:40px;height:40px}.brand-copy strong{font-size:1rem}.brand-copy span{font-size:.54rem}.section{padding:82px 0}.section-tight{padding:64px 0}.section-head{display:block}.section-head p{margin-top:20px}.hero{min-height:auto;padding:40px 0 52px}.hero-grid{gap:35px}.hero-copy h1{font-size:clamp(3.5rem,18vw,5.6rem)}.hero-actions{flex-direction:column;align-items:stretch}.hero-actions .btn{width:100%}.hero-meta{display:grid;gap:12px}.hero-visual{min-height:470px}.visual-card{inset:18px 0 0 0;border-radius:30px}.float-card.top{right:8px;top:-6px}.float-card.bottom{left:8px;bottom:0}.visual-overlay{left:28px;right:24px;bottom:30px}.visual-overlay h3{font-size:1.45rem}
  .proof-inner{grid-template-columns:1fr}.proof-item:first-child{grid-column:auto}.bento{display:block}.bento-card{margin-bottom:14px;min-height:270px}.mini-topology{opacity:.45;width:60%}.flow-wrap{padding:26px 18px}.flow{grid-template-columns:repeat(2,1fr)}.flow-icon{width:76px;height:76px;border-radius:22px}.feature-list{grid-template-columns:1fr}.projects,.smart-grid,.service-detail-grid,.stat-grid,.process,.kpi-row{grid-template-columns:1fr}.step:after{display:none}.project-screen{height:205px}.cta-shell{padding:48px 28px;border-radius:30px}.cta-actions{flex-direction:column}.cta-actions .btn{width:100%}.page-hero{padding-top:50px}.page-hero h1{font-size:clamp(3.4rem,17vw,5.6rem)}.price-main strong{font-size:3.2rem}.form-grid{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr}.footer-grid>div:last-child{grid-column:auto}.footer-bottom{flex-direction:column}.cookie{left:12px;right:12px;bottom:12px}.cookie-row{align-items:stretch;flex-direction:column}.cookie-actions{width:100%}.cookie-actions .btn{flex:1}.floating-support{right:16px;bottom:16px}.section-head h2,.display{font-size:clamp(2.7rem,14vw,4.6rem)}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.btn,.bento-card,.project{transition:none}}

/* ========================================================================== 
   v2.1 — full visual/responsive audit fixes
   Goals: stable typography, no clipped Czech diacritics, no horizontal drift,
   predictable media ratios, safer tablet/mobile behavior.
   ========================================================================== */

/* Layout safety */
.container,
.hero-grid > *,
.page-hero-grid > *,
.split > *,
.review-feature > *,
.contact-grid > *,
.section-head > *,
.bento-card,
.project,
.service-detail,
.step,
.kpi { min-width: 0; }

h1,h2,h3,h4,p { overflow-wrap: break-word; }
h1,h2,h3 { text-wrap: balance; hyphens: none; }
p { text-wrap: pretty; }

/* Keep the visual language bold, but stop display type from colliding or
   escaping its grid column at common Windows browser widths / zoom levels. */
.hero-copy h1 {
  font-size: clamp(3.45rem, 5.65vw, 6.15rem);
  line-height: .96;
  letter-spacing: -.058em;
  max-width: 10.6ch;
  margin: 22px 0 26px;
}
.hero-copy h1 em { line-height: inherit; }

.section-head h2,
.display {
  font-size: clamp(2.55rem, 4.35vw, 4.85rem);
  line-height: .99;
  letter-spacing: -.047em;
}
.display-compact {
  font-size: clamp(2.7rem, 4.2vw, 4.65rem) !important;
  line-height: 1 !important;
}
.page-hero h1 {
  font-size: clamp(3.2rem, 5.35vw, 6rem);
  line-height: .97;
  letter-spacing: -.054em;
  max-width: 12ch;
}

.business-hero-title { max-width: 11.4ch; }
.business-hero-title > span { display:block; }
.business-hero-title > span:last-child { white-space:nowrap; }

/* Eyebrows were able to define the min-content width of a grid column. */
.eyebrow {
  max-width: 100%;
  line-height: 1.35;
}
.eyebrow:before { flex: 0 0 28px; }

/* Desktop hero: guaranteed room for both content and artwork. */
.hero {
  min-height: 0;
  padding: clamp(56px, 5.5vw, 82px) 0 clamp(58px, 5vw, 76px);
}
.hero-grid {
  grid-template-columns: minmax(0, 1.08fr) minmax(410px, .92fr);
  gap: clamp(38px, 4.5vw, 66px);
  align-items: center;
}
.hero-copy .lead { max-width: 640px; }
.hero-visual { min-height: 520px; }
.visual-card {
  inset: 18px 0 0 10px;
  border-radius: 38px;
  transform: rotate(.45deg);
}
.float-card.top { right: 0; top: 0; }
.float-card.bottom { left: 0; bottom: 18px; }

/* Never crop diagrams containing labels. This fixes the SECURITY illustration
   where "ZERO TRUST" could become "RO TRUST". */
.media-frame { isolation: isolate; }
.media-frame img {
  width: 100%;
  height: auto;
  aspect-ratio: auto;
  object-fit: contain;
}
.page-hero .media-frame { transform: none; }

/* Section rhythm */
.section { padding: clamp(82px, 7.4vw, 112px) 0; }
.section-tight { padding: clamp(58px, 5.4vw, 78px) 0; }
.section-head { align-items: end; gap: clamp(28px, 4vw, 56px); }
.section-head p { flex: 0 1 500px; }

/* Process arrows previously protruded beyond each grid cell. */
.step { padding: 30px 30px 30px 22px; }
.step:after { right: 3px; top: 27px; }

/* CTA: avoid line collision seen around "pomáhat / Ne brzdit". */
.cta-shell {
  border-radius: 40px;
  padding: clamp(44px, 5vw, 66px);
}
.cta-shell:before {
  width: 520px;
  height: 520px;
  right: 0;
  top: -330px;
}
.cta-content { max-width: 1100px; }
.cta-content h2 {
  font-size: clamp(2.4rem, 3.55vw, 4.1rem);
  line-height: 1.03;
  letter-spacing: -.047em;
  max-width: none;
  margin: 18px 0 20px;
}
.cta-content p { max-width: 650px; }

/* Contact/detail type moved out of inline sizing so it can scale safely. */
.contact-title {
  font-size: clamp(2rem, 3vw, 2.55rem);
  line-height: 1.04;
  letter-spacing: -.04em;
  margin: 20px 0 8px;
}
.form-title {
  font-size: clamp(1.9rem, 2.8vw, 2.3rem);
  line-height: 1.04;
  letter-spacing: -.04em;
  margin: 20px 0 26px;
}
.case-study-quote {
  font-size: clamp(1.7rem, 2.6vw, 2.3rem);
  line-height: 1.08;
  letter-spacing: -.035em;
  margin: 24px 0 12px;
}
.contact-row strong,
.footer-links span,
.footer-links a { overflow-wrap: anywhere; }

/* Better interactive behavior */
.btn { min-height: 44px; text-align: center; }
.btn:focus-visible,
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline: 3px solid rgba(154,82,52,.48);
  outline-offset: 3px;
}

/* Keep decorative pseudo-elements from reporting/creating stray width. */
.hero:before { right: -220px; }
.hero:after { left: -250px; }

@media (max-width: 1180px) {
  :root { --container: min(100% - 40px, 1040px); }
  .nav-links {
    display:none;
    position:absolute;
    left:20px;
    right:20px;
    top:92px;
    background:rgba(247,244,238,.985);
    border:1px solid var(--line);
    border-radius:24px;
    padding:20px;
    box-shadow:var(--shadow);
    flex-direction:column;
    align-items:stretch;
    gap:0;
  }
  .nav-links.open { display:flex; }
  .nav-links a { padding:14px 8px; }
  .nav-links .btn { margin-top:10px; }
  .menu-toggle { display:flex; position:relative; }
  .nav-actions .desktop-only { display:none; }

  .hero-grid,
  .page-hero-grid,
  .split,
  .review-feature,
  .contact-grid { grid-template-columns: 1fr; }

  .hero { padding-top: 54px; }
  .hero-copy { max-width: 880px; }
  .hero-copy h1 {
    font-size: clamp(3.5rem, 7.4vw, 5.7rem);
    max-width: 10.8ch;
  }
  .hero-visual {
    width: min(100%, 820px);
    min-height: 520px;
    margin-top: 6px;
  }
  .page-hero-grid { gap: 42px; }
  .page-hero .media-frame { width: min(100%, 820px); }

  .proof-inner { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .proof-item:first-child { grid-column:1/-1; padding-left:22px; }
  .proof-item { border-left:0; border-top:1px solid var(--line); }

  .bento-card.col-7,
  .bento-card.col-5,
  .bento-card.col-4,
  .bento-card.col-8 { grid-column:span 6; }
  .flow { grid-template-columns:repeat(3,minmax(0,1fr)); row-gap:30px; }
  .flow:before { display:none; }
  .projects,.smart-grid,.service-detail-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .process { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .step:nth-child(2):after { display:none; }
  .stat-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .footer-grid { grid-template-columns:1.4fr 1fr 1fr; }
  .footer-grid>div:last-child { grid-column:2/4; }
  .price-box { grid-template-columns:1fr; }
}

@media (max-width: 820px) {
  :root { --container: calc(100% - 36px); }
  .section-head { display:block; margin-bottom:38px; }
  .section-head p { margin-top:20px; max-width:620px; }
  .hero-copy h1 {
    font-size: clamp(3.2rem, 10.4vw, 4.8rem);
    line-height: .98;
    max-width: 10.6ch;
  }
  .page-hero h1 {
    font-size: clamp(3rem, 9.5vw, 4.7rem);
    line-height: .99;
    max-width: 13ch;
  }
  .section-head h2,.display {
    font-size: clamp(2.45rem, 7.2vw, 3.9rem);
    line-height: 1;
  }
  .display-compact { font-size: clamp(2.45rem, 7vw, 3.8rem) !important; }
  .cta-content h2 {
    font-size: clamp(2.2rem, 6.3vw, 3.35rem);
    line-height: 1.05;
    max-width: none;
  }
  .hero-visual { min-height: 480px; }
}

@media (max-width: 720px) {
  :root { --container: calc(100% - 28px); --radius-xl:28px; --radius-lg:22px; }

  .topbar-inner { min-height:36px; }
  .topbar-right { display:none; }
  .topbar-left { width:100%; justify-content:space-between; gap:10px; font-size:.74rem; }
  .topbar-left > span { min-width:0; }

  .nav { height:74px; gap:16px; }
  .site-header .brand img { width:38px; height:38px; }
  .brand-copy strong { font-size:.98rem; }
  .brand-copy span { font-size:.5rem; letter-spacing:.28em; }
  .menu-toggle { width:44px; height:44px; }
  .nav-links { top:80px; left:14px; right:14px; }

  .section { padding:72px 0; }
  .section-tight { padding:52px 0; }
  .page-hero { padding:50px 0 54px; }

  .eyebrow {
    font-size:.67rem;
    letter-spacing:.105em;
    gap:8px;
  }
  .eyebrow:before { width:20px; flex-basis:20px; }

  .hero { padding:40px 0 52px; }
  .hero-grid { gap:32px; }
  .hero-copy h1 {
    font-size: clamp(2.9rem, 12.4vw, 3.7rem);
    line-height: .99;
    letter-spacing:-.05em;
    max-width:10.7ch;
    margin:18px 0 22px;
  }
  .hero-copy .lead,.lead { font-size:1.05rem; line-height:1.58; }
  .hero-actions { flex-direction:column; align-items:stretch; gap:10px; margin:28px 0 30px; }
  .hero-actions .btn { width:100%; }
  .hero-meta { display:grid; gap:10px; }

  .hero-visual { min-height:385px; width:100%; }
  .visual-card { inset:12px 0 0; border-radius:28px; transform:none; }
  .visual-overlay { left:24px; right:22px; bottom:24px; }
  .visual-overlay h3 { font-size:1.35rem; line-height:1.12; }
  .visual-overlay p { font-size:.9rem; line-height:1.45; }
  .float-card { padding:12px 14px; border-radius:17px; }
  .float-card.top { right:8px; top:0; }
  .float-card.bottom { display:none; }
  .float-label { font-size:.58rem; }
  .float-main { font-size:.78rem; }

  .proof-inner { grid-template-columns:1fr; }
  .proof-item:first-child { grid-column:auto; }
  .proof-item { min-height:82px; padding:18px 20px; }

  .bento { display:block; }
  .bento-card { margin-bottom:14px; min-height:0; padding:26px; }
  .bento-card h3 { font-size:1.7rem; line-height:1.06; }
  .mini-topology { display:none; }
  .tech-stack { margin-top:20px; }

  .flow-wrap { padding:24px 16px; }
  .flow { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 10px; }
  .flow-icon { width:70px; height:70px; border-radius:20px; }

  .feature-list { grid-template-columns:1fr; }
  .projects,.smart-grid,.service-detail-grid,.stat-grid,.process,.kpi-row { grid-template-columns:1fr; }
  .step { padding:24px 0; }
  .step:after { display:none; }
  .project-screen { height:205px; }

  .review-placeholder,.google-card { padding:28px; min-height:0; }
  .google-card h3 { font-size:2rem; }
  .case-study-quote { font-size:1.65rem; }

  .smart-link { min-height:130px; padding:21px; }

  .cta-shell { padding:38px 24px; border-radius:28px; }
  .cta-content h2 {
    font-size:clamp(2.35rem, 10.4vw, 3.15rem);
    line-height:1.04;
    letter-spacing:-.043em;
    max-width:12.5ch;
  }
  .cta-content p { font-size:1rem; }
  .cta-actions { flex-direction:column; }
  .cta-actions .btn { width:100%; }

  .page-hero h1 {
    font-size:clamp(2.85rem, 11.4vw, 3.8rem);
    line-height:1;
    letter-spacing:-.048em;
  }
  .page-hero-grid { gap:30px; }
  .display-compact { font-size:clamp(2.35rem, 10vw, 3.25rem) !important; }

  .price-box { padding:28px 22px; }
  .price-main strong { font-size:3rem; }
  .price-line { align-items:flex-start; }

  .contact-card,.form-card { padding:28px 22px; }
  .contact-title { font-size:2rem; }
  .form-title { font-size:1.9rem; }
  .contact-row strong { font-size:1rem; }
  .form-grid { grid-template-columns:1fr; }
  .field.full { grid-column:auto; }
  .field .btn { width:100%; white-space:normal; line-height:1.2; padding-block:14px; }

  .footer { padding:58px 0 28px; }
  .footer-grid { grid-template-columns:1fr; gap:34px; }
  .footer-grid>div:last-child { grid-column:auto; }
  .footer-bottom { margin-top:42px; flex-direction:column; }

  .btn { white-space:normal; line-height:1.15; }
  .cookie { left:12px; right:12px; bottom:12px; padding:17px; border-radius:18px; }
  .cookie-row { align-items:stretch; flex-direction:column; }
  .cookie-actions { width:100%; }
  .cookie-actions .btn { flex:1; }
  .floating-support { right:16px; bottom:16px; width:52px; height:52px; }
}

@media (max-width: 420px) {
  :root { --container: calc(100% - 24px); }
  .topbar-left { font-size:.69rem; }
  .topbar-left > span { max-width:54%; }
  .hero-copy h1 { font-size:clamp(2.72rem, 13vw, 3.25rem); }
  .hero-visual { min-height:350px; }
  .visual-overlay .chip { font-size:.67rem; }
  .visual-overlay p { display:none; }
  .page-hero h1 { font-size:clamp(2.7rem, 12.6vw, 3.3rem); }
  .section-head h2,.display { font-size:clamp(2.3rem, 11vw, 3rem); }
  .cta-content h2 { font-size:clamp(2.05rem, 9.6vw, 2.55rem); max-width:none; }
  .contact-card,.form-card { padding:25px 18px; }
  .price-line { flex-direction:column; gap:4px; }
}


/* ========================================================================== 
   v2.2 — typography/rendering correction
   This layer intentionally prioritises real glyph clearance over ultra-tight
   editorial leading. It remains stable with Windows font fallback and zoom.
   ========================================================================== */

/* Global display typography: Czech accents need real vertical breathing room. */
.hero-copy h1,
.page-hero h1,
.section-head h2,
.display,
.cta-content h2,
.bento-card h3,
.google-card h3,
.step h3,
.project h3,
.service-detail h3 {
  text-rendering: geometricPrecision;
}

.hero-copy h1.hero-title {
  font-size: clamp(3.35rem, 5.55vw, 5.95rem);
  line-height: 1;
  letter-spacing: -.052em;
  max-width: 11.4ch;
  margin: 22px 0 28px;
}
.hero-title-line {
  display:block;
  position:relative;
  line-height:1.035;
}
.hero-title-line + .hero-title-line {
  margin-top:.075em;
}
.hero-title-line em {
  display:inline-block;
  position:relative;
  top:.018em;
  margin-left:.035em;
  padding:.035em .025em .055em 0;
  font-family: Georgia, Cambria, "Times New Roman", serif;
  font-size:.88em;
  line-height:1.08;
  font-weight:400;
  font-style:italic;
  letter-spacing:-.045em;
  color:#8A472E;
}

/* Other large headings: deliberately less compressed than v2/v2.1. */
.section-head h2,
.display {
  line-height:1.055;
  letter-spacing:-.042em;
}
.display-compact {
  line-height:1.06 !important;
}
.page-hero h1 {
  line-height:1.045;
  letter-spacing:-.047em;
}
.cta-content h2 {
  line-height:1.07;
  letter-spacing:-.04em;
}
.bento-card h3 { line-height:1.09; letter-spacing:-.035em; }
.google-card h3 { line-height:1.08; }
.step h3,.project h3,.service-detail h3 { line-height:1.14; }

/* Do not allow a decorative font to influence the line box of neighbouring
   lines. This also makes browser zoom / font substitution predictable. */
h1 em,h2 em,h3 em { box-decoration-break:clone; -webkit-box-decoration-break:clone; }

/* Interactive/content safety at arbitrary zoom levels. */
.btn { max-width:100%; }
.hero-actions,.cta-actions { min-width:0; }
.hero-copy,.cta-content,.section-head > div { min-width:0; }

/* Production visual rules. */
@media (max-width:1180px) {
  .hero-copy h1.hero-title {
    font-size:clamp(3.2rem, 7.4vw, 5.15rem);
    max-width:11.8ch;
  }
  .hero-title-line + .hero-title-line { margin-top:.085em; }
}

@media (max-width:820px) {
  .hero-copy h1.hero-title {
    font-size:clamp(3.05rem, 9.6vw, 4.55rem);
    line-height:1;
    max-width:11.8ch;
  }
  .hero-title-line { line-height:1.045; }
  .hero-title-line + .hero-title-line { margin-top:.09em; }
  .hero-title-line em { font-size:.87em; }
  .section-head h2,.display { line-height:1.07; }
  .page-hero h1 { line-height:1.065; }
  .cta-content h2 { line-height:1.085; }
}

@media (max-width:720px) {
  .hero-copy h1.hero-title {
    font-size:clamp(2.72rem, 11.7vw, 3.5rem);
    letter-spacing:-.043em;
    max-width:11.9ch;
    margin:18px 0 24px;
  }
  .hero-title-line { line-height:1.055; }
  .hero-title-line + .hero-title-line { margin-top:.095em; }
  .hero-title-line em {
    font-size:.86em;
    top:.01em;
    padding-top:.045em;
    padding-bottom:.07em;
  }
  .section-head h2,.display,.display-compact { line-height:1.085 !important; }
  .page-hero h1 { line-height:1.08; }
  .cta-content h2 { line-height:1.1; }
}

@media (max-width:420px) {
  .hero-copy h1.hero-title {
    font-size:clamp(2.55rem, 12.2vw, 3.05rem);
    line-height:1;
    max-width:none;
  }
  .hero-title-line { line-height:1.06; }
  .hero-title-line + .hero-title-line { margin-top:.1em; }
  .hero-title-line em { font-size:.85em; }
  .topbar-left > span { display:none; }
  .topbar-left { justify-content:flex-end; }
}

/* v2.2.1 — final mobile cleanup from visual audit */
@media (max-width:720px) {
  .floating-support { display:none; }
}
@media (max-width:480px) {
  .topbar-left > span { display:none !important; }
  .topbar-left { justify-content:flex-end; }
}

/* ========================================================================== 
   v2.3 — balanced homepage + structural hero composition
   No text overlays or floating content cards are used in the homepage visual.
   ========================================================================== */
.hero-v23 .hero-grid{align-items:center}
.hero-copy .hero-title-v23{font-size:clamp(3.55rem,5.7vw,6.2rem);line-height:.98;letter-spacing:-.055em;max-width:9.7ch;margin:22px 0 28px;text-wrap:balance}
.hero-title-v23>span{display:block;line-height:1.02}
.hero-title-v23>span+span{margin-top:.12em}
.hero-title-v23 .hero-gold{color:#8A472E}
.hero-showcase{min-width:0;border:1px solid var(--line);border-radius:40px;background:#fff;box-shadow:var(--shadow);overflow:hidden}
.showcase-art{background:var(--ink);aspect-ratio:1.42/1;overflow:hidden}
.showcase-art img{width:100%;height:100%;object-fit:cover}
.showcase-body{padding:24px 26px 27px;background:rgba(255,255,255,.95)}
.showcase-kicker{display:block;font-size:.7rem;font-weight:850;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin-bottom:7px}
.showcase-body strong{display:block;font-size:1.18rem;line-height:1.3;letter-spacing:-.015em;max-width:34ch}
.showcase-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:17px}
.showcase-tags span{display:inline-flex;align-items:center;min-height:32px;padding:7px 11px;border-radius:999px;background:var(--ivory);border:1px solid var(--line);font-size:.72rem;font-weight:750;color:var(--graphite)}
.proof-v23 .proof-item:first-child{padding-left:0}

.audience-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.audience-card{display:flex;flex-direction:column;min-height:560px;padding:42px;border:1px solid var(--line);border-radius:34px;background:#fff;box-shadow:var(--shadow-soft);transition:transform .25s ease,box-shadow .25s ease;overflow:hidden;position:relative}
.audience-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.audience-home{background:linear-gradient(145deg,#fff 0%,#f4f0e8 100%)}
.audience-business{background:linear-gradient(145deg,#17212b 0%,#0f161e 100%);color:#fff;border-color:rgba(255,255,255,.1)}
.audience-top{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:54px}
.audience-icon{width:50px;height:50px;border-radius:16px;display:grid;place-items:center;background:var(--champagne);font-size:1.35rem;font-weight:900;color:var(--ink)}
.audience-business .audience-icon{background:#293846;color:#fff}
.audience-label{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;font-weight:850;color:var(--muted)}
.audience-business .audience-label{color:#9dacb8}
.audience-card h3{font-size:clamp(2.5rem,4vw,4.35rem);line-height:1.01;letter-spacing:-.05em;margin:0 0 18px;max-width:11ch}
.audience-card p{font-size:1.05rem;max-width:58ch;color:var(--muted);margin:0 0 26px}
.audience-business p{color:#b7c2cc}
.audience-list{list-style:none;padding:0;margin:0 0 32px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px}
.audience-list li{position:relative;padding-left:17px;font-size:.87rem;font-weight:700;color:var(--graphite)}
.audience-list li:before{content:"";position:absolute;left:0;top:.62em;width:6px;height:6px;border-radius:50%;background:var(--gold)}
.audience-business .audience-list li{color:#d6dfe6}
.audience-cta{display:flex;align-items:center;gap:10px;margin-top:auto;font-weight:850}
.audience-cta i{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--ink);color:#fff;font-style:normal}
.audience-business .audience-cta i{background:#fff;color:var(--ink)}

.care-panel{display:grid;grid-template-columns:.95fr 1.05fr;gap:70px;align-items:center;padding:54px;border-radius:38px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-soft)}
.care-copy h2{font-size:clamp(2.8rem,4.6vw,5rem);line-height:1.02;letter-spacing:-.05em;margin:16px 0 20px}
.care-copy p{color:var(--muted);font-size:1.05rem;margin:0 0 28px;max-width:58ch}
.care-features{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid var(--line);border-radius:26px;overflow:hidden}
.care-features>div{min-height:150px;padding:26px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;justify-content:flex-end;background:var(--ivory)}
.care-features>div:nth-child(2n){border-right:0}.care-features>div:nth-last-child(-n+2){border-bottom:0}
.care-features strong{font-size:1rem;margin-bottom:5px}.care-features span{color:var(--muted);font-size:.82rem;line-height:1.45}

.dev-home-grid{display:grid;grid-template-columns:1fr .92fr;gap:66px;align-items:center}
.dev-home-copy .lead{color:#bac5ce;margin-bottom:28px}
.feature-list-dark .feature{border-color:rgba(255,255,255,.14);color:#e7eee9}
.dev-home-media{border-radius:36px;overflow:hidden;border:1px solid rgba(255,255,255,.13);background:#131d26;padding:20px}
.dev-home-media img{width:100%;height:auto;object-fit:contain;border-radius:24px}

.dual-feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.dual-feature{min-height:390px;border-radius:34px;padding:40px;background:var(--ink);color:#fff;display:flex;flex-direction:column}
.dual-feature-soft{background:#fff;color:var(--ink);border:1px solid var(--line);box-shadow:var(--shadow-soft)}
.dual-feature .eyebrow{color:#b8c3cc}.dual-feature-soft .eyebrow{color:var(--graphite)}
.dual-feature h3{font-size:clamp(2.25rem,3.45vw,3.8rem);line-height:1.04;letter-spacing:-.045em;margin:24px 0 15px;max-width:12ch}
.dual-feature p{color:#b9c4cd;max-width:55ch;margin:0 0 24px}.dual-feature-soft p{color:var(--muted)}
.dual-tags{display:flex;flex-wrap:wrap;gap:8px;margin:2px 0 28px}.dual-tags span{padding:7px 10px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.1);font-size:.75rem;font-weight:750}
.text-link{display:inline-flex;align-items:center;margin-top:auto;font-weight:850}
.availability-row{display:flex;align-items:center;gap:12px;margin:0 0 28px}

.proof-content-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.proof-content-card{min-height:300px;padding:38px;border:1px solid var(--line);border-radius:30px;background:#fff;box-shadow:var(--shadow-soft);display:flex;flex-direction:column;transition:.25s}
.proof-content-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.proof-content-no{font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;font-weight:850;color:#8A472E}
.proof-content-card h3{font-size:clamp(2rem,3vw,3.15rem);line-height:1.05;letter-spacing:-.04em;margin:32px 0 12px}
.proof-content-card p{color:var(--muted);max-width:52ch;margin:0 0 28px}
.smart-grid-v23{margin-bottom:20px}
.systems-inline{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:28px 30px;border:1px solid var(--line);border-radius:24px;background:var(--beige)}
.systems-inline>div{display:grid;gap:7px}.systems-inline strong{font-size:1.12rem}

@media(max-width:1180px){
  .hero-copy .hero-title-v23{font-size:clamp(3.6rem,7vw,5.35rem);max-width:11ch}
  .hero-showcase{width:min(100%,820px)}
  .care-panel{grid-template-columns:1fr;gap:38px}
  .dev-home-grid{grid-template-columns:1fr;gap:44px}.dev-home-media{width:min(100%,820px)}
}
@media(max-width:820px){
  .audience-card{padding:32px;min-height:500px}.audience-card h3{font-size:clamp(2.3rem,6vw,3.3rem)}
  .care-panel{padding:36px}.care-copy h2{font-size:clamp(2.6rem,7vw,3.9rem)}
}
@media(max-width:720px){
  .hero-copy .hero-title-v23{font-size:clamp(3rem,12vw,3.75rem);line-height:1;letter-spacing:-.045em;max-width:10.5ch}
  .hero-title-v23>span{line-height:1.045}.hero-title-v23>span+span{margin-top:.12em}
  .hero-showcase{border-radius:28px}.showcase-art{aspect-ratio:1.5/1}.showcase-body{padding:20px}
  .showcase-body strong{font-size:1.02rem}.showcase-tags span{font-size:.67rem}
  .audience-grid,.dual-feature-grid,.proof-content-grid{grid-template-columns:1fr}
  .audience-card{min-height:0;padding:27px}.audience-top{margin-bottom:36px}.audience-card h3{font-size:clamp(2.4rem,10vw,3.15rem);line-height:1.04}.audience-list{grid-template-columns:1fr}
  .care-panel{padding:27px;border-radius:28px}.care-features{grid-template-columns:1fr}.care-features>div{border-right:0!important;border-bottom:1px solid var(--line)!important;min-height:115px}.care-features>div:last-child{border-bottom:0!important}
  .dev-home-grid{gap:32px}.dev-home-media{padding:12px;border-radius:28px}
  .dual-feature{min-height:0;padding:28px}.dual-feature h3{font-size:clamp(2.25rem,9vw,3rem)}
  .proof-content-card{min-height:0;padding:28px}
  .systems-inline{align-items:stretch;flex-direction:column;padding:24px}.systems-inline .btn{width:100%}
}
@media(max-width:420px){
  .hero-copy .hero-title-v23{font-size:clamp(2.75rem,13.2vw,3.25rem);max-width:10.2ch}
  .showcase-art{aspect-ratio:1.35/1}.showcase-tags{gap:6px}.showcase-tags span:last-child{width:100%;justify-content:center}
  .audience-card h3{font-size:clamp(2.2rem,10.4vw,2.8rem)}
  .care-panel{padding:23px}.care-copy h2{font-size:clamp(2.35rem,11vw,3rem)}
}


/* ========================================================================== 
   v2.4 — real practice photography, partner/certification strip, service price, blog
   ========================================================================== */
.hero-copy .hero-title-v23{max-width:11.5ch}
.hero-practice{display:grid;grid-template-columns:1.42fr .8fr;grid-template-rows:1fr 1fr;gap:8px;padding:8px;background:var(--ink);aspect-ratio:1.42/1}
.hero-practice figure{margin:0;min-width:0;min-height:0;overflow:hidden;border-radius:13px}
.hero-practice .practice-main{grid-row:1/3}
.hero-practice img{width:100%;height:100%;object-fit:cover}

.proof-v24{grid-template-columns:1.45fr repeat(6,minmax(0,1fr));min-height:118px}
.proof-v24 .proof-item{padding:20px 17px;min-width:0}
.proof-v24 .proof-item:first-child{padding-left:0}
.proof-v24 .proof-item strong{font-size:.98rem;overflow-wrap:anywhere}
.proof-v24 .proof-item span{font-size:.76rem;line-height:1.35}
.proof-v24 .proof-green{background:linear-gradient(145deg,rgba(227,212,196,.38),rgba(255,255,255,.12));transition:.2s}
.proof-v24 .proof-green:hover{background:var(--champagne)}

.practice-home{background:var(--ivory)}
.practice-grid{display:grid;grid-template-columns:1.35fr repeat(2,1fr);grid-template-rows:240px 240px;gap:14px}
.practice-tile{position:relative;border-radius:24px;overflow:hidden;min-width:0;min-height:0;background:var(--ink);box-shadow:var(--shadow-soft)}
.practice-tile.wide{grid-row:1/3}
.practice-tile img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.practice-tile:hover img{transform:scale(1.035)}
.practice-tile:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(22,61,56,.78))}
.practice-tile span{position:absolute;z-index:2;left:20px;bottom:17px;color:#fff;font-weight:850}
.practice-cta,.blog-home-cta{display:flex;justify-content:center;margin-top:28px}

.service-photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.service-photo-grid figure{margin:0;border:1px solid var(--line);border-radius:24px;overflow:hidden;background:#fff;box-shadow:var(--shadow-soft)}
.service-photo-grid img{width:100%;height:270px;object-fit:cover}
.service-photo-grid figcaption{padding:16px 18px;font-weight:750;font-size:.86rem}
.real-photo{width:100%;height:100%;object-fit:cover!important;aspect-ratio:1.18/1!important}

.gallery-group{scroll-margin-top:120px;margin-bottom:84px}.gallery-group:last-child{margin-bottom:0}
.gallery-group-head{display:grid;grid-template-columns:1fr .7fr;gap:10px 42px;align-items:end;margin-bottom:28px}
.gallery-group-head .eyebrow{grid-column:1/-1}
.gallery-group-head h2{font-size:clamp(2.3rem,3.8vw,4rem);line-height:1.02;letter-spacing:-.045em;margin:0}
.gallery-group-head p{color:var(--muted);margin:0 0 4px}
.photo-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.gallery-photo{position:relative;min-height:260px;border-radius:22px;overflow:hidden;background:var(--ink);box-shadow:var(--shadow-soft)}
.gallery-photo img{width:100%;height:100%;min-height:260px;object-fit:cover;transition:transform .3s ease}
.gallery-photo:hover img{transform:scale(1.035)}
.gallery-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 58%,rgba(22,61,56,.78))}
.gallery-photo span{position:absolute;z-index:2;left:16px;right:16px;bottom:14px;color:#fff;font-size:.82rem;font-weight:750}

.blog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.blog-card{min-height:330px;padding:30px;border-radius:28px;border:1px solid var(--line);background:#fff;box-shadow:var(--shadow-soft);display:flex;flex-direction:column;transition:.25s}
.blog-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.blog-tag{display:inline-flex;align-items:center;width:max-content;max-width:100%;padding:7px 10px;border-radius:999px;background:var(--champagne);font-size:.68rem;text-transform:uppercase;letter-spacing:.09em;font-weight:850;color:var(--graphite)}
.blog-card h3,.blog-card h2{font-size:clamp(1.7rem,2.3vw,2.35rem);line-height:1.08;letter-spacing:-.035em;margin:36px 0 13px}
.blog-card p{color:var(--muted);margin:0 0 26px}.blog-card .text-link{margin-top:auto}
.blog-grid-page .blog-card{min-height:390px}
.blog-hero h1{max-width:10ch}

.article-hero{padding:74px 0 58px;background:var(--beige)}
.article-hero-grid{display:grid;grid-template-columns:1.05fr .75fr;gap:54px;align-items:center}
.article-hero h1{font-size:clamp(3rem,5vw,5.8rem);line-height:.97;letter-spacing:-.055em;margin:22px 0 18px;max-width:12ch}
.article-back{display:block;font-size:.82rem;font-weight:750;color:var(--muted);margin-bottom:24px}.article-back:hover{color:var(--ink)}
.article-meta{color:var(--muted);font-size:.87rem}
.article-cover{margin:0;border-radius:30px;overflow:hidden;box-shadow:var(--shadow);background:var(--ink);aspect-ratio:1.05/1}
.article-cover img{width:100%;height:100%;object-fit:cover}
.article-section{background:#fff}
.article-layout{display:grid;grid-template-columns:minmax(0,760px) 280px;gap:80px;justify-content:center;align-items:start}
.article-content{font-size:1.08rem;color:var(--graphite)}
.article-content>p:first-child{font-size:1.28rem;color:var(--ink)}
.article-content h2{font-size:clamp(1.8rem,2.6vw,2.65rem);line-height:1.08;letter-spacing:-.035em;color:var(--ink);margin:52px 0 16px}
.article-content p{margin:0 0 20px}.article-content li{margin:7px 0}.article-content ul{padding-left:22px}
.article-aside{position:sticky;top:126px;border:1px solid var(--line);border-radius:22px;padding:24px;background:var(--ivory);display:grid;gap:12px}
.article-aside p{color:var(--muted);font-size:.88rem;margin:0 0 6px}.article-aside a{font-weight:800;font-size:.88rem}
.article-note{margin-top:58px;padding:30px;border-radius:26px;background:var(--beige);border:1px solid var(--line)}
.article-note strong{font-size:1.35rem;color:var(--ink)}.article-note p{font-size:.96rem;margin:10px 0 20px}

@media(max-width:1180px){
  .proof-v24{grid-template-columns:repeat(4,minmax(0,1fr))}
  .proof-v24 .proof-service{grid-column:span 2}.proof-v24 .proof-item:first-child{padding-left:17px}
  .photo-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}
  .article-hero-grid{grid-template-columns:1fr .8fr}.article-layout{grid-template-columns:minmax(0,720px) 250px;gap:44px}
}
@media(max-width:820px){
  .practice-grid{grid-template-columns:1.2fr 1fr;grid-template-rows:220px 220px 220px}.practice-tile.wide{grid-row:1/3}.practice-tile:nth-child(4),.practice-tile:nth-child(5){grid-column:auto}
  .service-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .photo-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-group-head{grid-template-columns:1fr}.gallery-group-head .eyebrow{grid-column:auto}
  .blog-grid{grid-template-columns:1fr 1fr}.blog-card:last-child{grid-column:1/-1}
  .article-hero-grid{grid-template-columns:1fr}.article-cover{max-width:650px}.article-layout{grid-template-columns:1fr}.article-aside{position:static;max-width:620px}
}
@media(max-width:720px){
  .hero-practice{aspect-ratio:1.2/1}.proof-v24{grid-template-columns:1fr 1fr}.proof-v24 .proof-service{grid-column:1/-1}.proof-v24 .proof-item{border-left:0;border-top:1px solid var(--line)}
  .practice-grid{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:260px 190px 190px}.practice-tile.wide{grid-column:1/-1;grid-row:auto}.practice-tile:nth-child(4),.practice-tile:nth-child(5){grid-column:auto}
  .service-photo-grid{grid-template-columns:1fr 1fr}.service-photo-grid img{height:230px}
  .blog-grid{grid-template-columns:1fr}.blog-card:last-child{grid-column:auto}.blog-card{min-height:0}
  .article-hero{padding-top:50px}.article-hero h1{font-size:clamp(2.7rem,11vw,4.2rem)}.article-section{padding-top:66px}.article-content{font-size:1rem}
}
@media(max-width:480px){
  .hero-practice{grid-template-columns:1fr 1fr;grid-template-rows:220px 150px;aspect-ratio:auto}.hero-practice .practice-main{grid-column:1/-1;grid-row:auto}.hero-practice figure{border-radius:10px}
  .proof-v24{grid-template-columns:1fr}.proof-v24 .proof-service{grid-column:auto}.proof-v24 .proof-item{padding:17px 0!important}
  .practice-grid{grid-template-columns:1fr;grid-template-rows:none}.practice-tile,.practice-tile.wide{height:230px;grid-column:auto;grid-row:auto}
  .service-photo-grid{grid-template-columns:1fr}.service-photo-grid img{height:260px}
  .photo-gallery{grid-template-columns:1fr}.gallery-photo,.gallery-photo img{min-height:300px}
  .article-hero h1{font-size:clamp(2.45rem,12vw,3.45rem)}
}


/* ========================================================================== 
   v2.4.5 — compact service strip (homepage)
   ========================================================================== */
.service-strip-v245{
  padding:34px 0 40px;
  background:#fff;
  border-bottom:1px solid var(--line);
}
.service-strip-shell{
  display:grid;
  grid-template-columns:minmax(250px,.86fr) minmax(0,1.7fr);
  align-items:stretch;
  border:1px solid var(--line);
  border-radius:26px;
  overflow:hidden;
  background:var(--ivory);
  box-shadow:var(--shadow-soft);
}
.service-strip-copy{
  padding:28px 34px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-width:0;
}
.service-strip-copy .eyebrow{margin-bottom:12px}
.service-strip-copy h2{
  margin:0;
  font-size:clamp(1.65rem,2.25vw,2.55rem);
  line-height:1.04;
  letter-spacing:-.04em;
  max-width:18ch;
}
.service-strip-facts{
  display:grid;
  grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);
  min-width:0;
  border-left:1px solid var(--line);
}
.service-strip-fact{
  padding:27px 30px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-width:0;
  background:#fff;
}
.service-strip-fact + .service-strip-fact{border-left:1px solid var(--line)}
.service-strip-fact>span{
  font-size:.69rem;
  line-height:1.4;
  letter-spacing:.095em;
  text-transform:uppercase;
  font-weight:850;
  color:var(--muted);
  margin-bottom:10px;
}
.service-strip-fact>strong{
  font-size:clamp(1.85rem,2.7vw,2.8rem);
  line-height:1;
  letter-spacing:-.045em;
  color:var(--ink);
  margin-bottom:8px;
}
.service-strip-fact small{
  color:var(--muted);
  line-height:1.4;
  font-size:.82rem;
}
.service-strip-price{
  background:linear-gradient(135deg,var(--champagne),rgba(227,212,196,.64));
}
.service-strip-price-line{
  display:flex;
  align-items:baseline;
  flex-wrap:wrap;
  gap:6px 10px;
  margin:0 0 7px;
}
.service-strip-price-line strong{
  font-size:clamp(1.85rem,2.7vw,2.8rem);
  line-height:1;
  letter-spacing:-.045em;
  color:var(--ink);
}
.service-strip-price-line em{
  font-size:.8rem;
  font-style:normal;
  font-weight:800;
  color:var(--muted);
}
.service-strip-price-line b{
  font-size:.88rem;
  font-weight:850;
  color:var(--ink);
  margin-left:2px;
}
@media(max-width:980px){
  .service-strip-shell{grid-template-columns:1fr}
  .service-strip-copy{padding:26px 28px 22px}
  .service-strip-copy h2{max-width:none}
  .service-strip-facts{border-left:0;border-top:1px solid var(--line)}
}
@media(max-width:640px){
  .service-strip-v245{padding:24px 0 30px}
  .service-strip-shell{border-radius:22px}
  .service-strip-copy{padding:24px 22px 20px}
  .service-strip-copy h2{font-size:clamp(1.65rem,8vw,2.05rem)}
  .service-strip-facts{grid-template-columns:1fr}
  .service-strip-fact{padding:22px}
  .service-strip-fact + .service-strip-fact{border-left:0;border-top:1px solid var(--line)}
}


/* ==========================================================================
   v2.5.0 — production hardening / accessibility / legal pages
   ========================================================================== */
.eyebrow-light{color:#C9D2DA}
.reveal{opacity:1;transform:none}
.js .reveal{opacity:0;transform:translateY(24px)}
.js .reveal.visible{opacity:1;transform:none}
.cta-content{max-width:1100px}
.cta-content h2{font-size:clamp(2.35rem,3.4vw,3.85rem);line-height:1.04;max-width:none;white-space:nowrap}
.legal-hero{padding-bottom:54px;background:var(--beige)}
.legal-hero-copy{max-width:980px}
.legal-hero h1{max-width:15ch}
.legal-section{background:#fff}
.legal-layout{display:grid;grid-template-columns:minmax(0,800px) 300px;gap:72px;justify-content:center;align-items:start}
.legal-content{font-size:1.02rem;color:var(--graphite)}
.legal-content h2{font-size:clamp(1.55rem,2.2vw,2.15rem);line-height:1.12;letter-spacing:-.03em;color:var(--ink);margin:42px 0 14px}
.legal-content h2:first-child{margin-top:0}
.legal-content p,.legal-content li{line-height:1.7}
.legal-content a:not(.btn){text-decoration:underline;text-decoration-color:rgba(154,82,52,.6);text-underline-offset:3px}
.legal-content ul,.legal-content ol{padding-left:24px}
.legal-aside{position:sticky;top:126px;border:1px solid var(--line);border-radius:22px;padding:24px;background:var(--ivory);display:grid;gap:10px;font-size:.88rem}
.legal-aside strong{font-size:1rem;color:var(--ink);margin-bottom:6px}
.legal-aside span{color:var(--muted)}
.legal-price{background:var(--beige);border:1px solid var(--line);border-radius:20px;padding:20px 24px;margin:20px 0}
.legal-price p{margin:6px 0}
.legal-effective{color:var(--muted);font-size:.9rem}
.footer-links span{line-height:1.45}
@media(max-width:1100px){
  html:not(.js) .nav{height:auto;flex-wrap:wrap;padding:14px 0}
  html:not(.js) .nav-links{display:flex;position:static;width:100%;flex-direction:column;align-items:stretch;gap:0;padding:12px 0}
  .legal-layout{grid-template-columns:1fr;gap:38px} .legal-aside{position:static;max-width:600px}
}
@media(max-width:820px){.cta-content h2{white-space:normal;font-size:clamp(2.2rem,7vw,3.3rem)}}

@media(max-width:1100px){.js .nav-links{display:none}.js .nav-links.open{display:flex}}


/* v2.5.1 utilities — remove inline styles for a stricter CSP */
.u-text-steel-light{color:#C9D2DA!important}
.u-text-muted{color:var(--muted)!important}
.u-max-1000{max-width:1000px}
.u-max-980{max-width:980px}
.mock-browser-soft{background:rgba(22,61,56,.08)}
.mock-dot-steel{background:#78918D!important}
.mock-dot-gold{background:#9A5234!important}
.mock-dot-ink{background:#163D38!important}
.mock-card-steel{background:#DDE4EA!important}
.monitor-panel{padding:36px 12px;color:#fff}
.monitor-status{font-size:3rem;font-weight:800;letter-spacing:-.05em}
.monitor-subtitle{color:#AFC0CE}
.monitor-progress{height:2px;background:linear-gradient(90deg,#9A5234 0 82%,rgba(255,255,255,.15) 82%);margin-top:30px}

.withdrawal-lines{padding:24px 26px;border:1px solid var(--line);border-radius:22px;background:var(--ivory);margin:24px 0}.withdrawal-lines p{margin:14px 0}.withdrawal-lines small{color:var(--muted)}
@media print{.topbar,.site-header,.footer,.floating-support,.legal-aside,.page-hero .eyebrow{display:none!important}.page-hero,.legal-section{padding:20px 0!important}.legal-layout{display:block!important}.legal-content{max-width:none!important}.withdrawal-lines{break-inside:avoid}}


/* ========================================================================== 
   v2.5.3 — natural heading wrapping + interactive hero category links
   ========================================================================== */
/* Nadpisy se už nelámou ručně. Šířku určuje skutečný layout komponenty. */
h1,h2,h3{
  max-width:none!important;
  text-wrap:pretty;
}
.hero-copy .hero-title-v23{
  max-width:none!important;
  text-wrap:pretty;
}
.hero-title-v23>span{
  display:inline;
  line-height:inherit;
}
.hero-title-v23>span+span{
  margin-top:0;
}

/* Klikatelné kategorie pod fotografiemi z praxe. */
.showcase-tags a{
  display:inline-flex;
  align-items:center;
  min-height:32px;
  padding:7px 11px;
  border-radius:999px;
  background:var(--ivory);
  border:1px solid var(--line);
  font-size:.72rem;
  font-weight:750;
  color:var(--graphite);
  text-decoration:none;
  transition:background-color .18s ease,border-color .18s ease,transform .18s ease,color .18s ease;
}
.showcase-tags a:hover{
  background:var(--champagne);
  border-color:rgba(154,82,52,.58);
  color:var(--ink);
  transform:translateY(-1px);
}
.showcase-tags a:focus-visible{
  outline:3px solid rgba(154,82,52,.48);
  outline-offset:2px;
}

@media(max-width:720px){
  h1,h2,h3{ text-wrap:pretty; }
  .showcase-tags a{font-size:.67rem;}
}
@media(max-width:480px){
  .showcase-tags a:last-child{width:auto;justify-content:flex-start;}
}


/* v2.5.4 — simplified audience cards */
.audience-card{min-height:500px;padding-top:46px}
.audience-card h3{max-width:none;width:100%;font-size:clamp(2.45rem,3.45vw,3.8rem);line-height:1.03}
@media(max-width:820px){.audience-card{min-height:460px;padding-top:34px}.audience-card h3{max-width:none}}
@media(max-width:720px){.audience-card{min-height:0;padding-top:28px}.audience-card h3{max-width:none}}

@media (max-width: 860px) {
  .business-hero-title { max-width: 9.8ch; }
}
@media (max-width: 520px) {
  .business-hero-title { max-width: none; }
  .business-hero-title > span:last-child { white-space:normal; }
}

/* v2.5.8 — real live homepage previews for FariTech projects */
.project-screen.project-screenshot{display:block;padding:0;background:#EEF2EF;border:1px solid rgba(22,61,56,.06);text-decoration:none;overflow:hidden}
.project-screen.project-screenshot img{display:block;width:100%;height:100%;object-fit:cover;object-position:top center;transition:transform .35s ease,filter .35s ease;background:#EEF2EF}
.project:hover .project-screen.project-screenshot img{transform:scale(1.018);filter:saturate(1.03)}
.project-title-link{color:inherit;text-decoration:none}
.project-title-link:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.project-screen.project-screenshot:focus-visible,.project-title-link:focus-visible{outline:3px solid rgba(154,82,52,.5);outline-offset:3px}


/* ========================================================================== 
   FARITECH v2.6.0 — HUMAN TECH THEME
   Professional local service: warm, clear, technical without a corporate feel.
   Palette is deliberately contrast-safe for all ordinary text/UI pairings.
   ========================================================================== */
:root{
  --ivory:#F7F4EE;
  --beige:#E9E0D4;
  --champagne:#E3D4C4;
  --gold:#9A5234;
  --steel:#78918D;
  --graphite:#3A4541;
  --ink:#163D38;
  --ink-2:#204A44;
  --muted:#5A635F;
  --line:rgba(32,39,36,.14);
  --glass:rgba(247,244,238,.90);
  --white:#fff;
  --radius-xl:28px;
  --radius-lg:22px;
  --radius-md:16px;
  --shadow:0 24px 60px rgba(22,61,56,.12);
  --shadow-soft:0 10px 30px rgba(22,61,56,.08);
  --container:min(1240px, calc(100% - 48px));
}

html{scroll-padding-top:128px}
body{
  background:#F7F4EE;
  color:#202724;
  font-family:Aptos,"Segoe UI",Inter,system-ui,-apple-system,sans-serif;
  line-height:1.62;
}
::selection{background:#DCE7E2;color:#163D38}

/* Clear, friendly typography: less fashion-editorial, more established service. */
h1,h2,h3,.display,.hero-copy h1,.page-hero h1,.cta-content h2{
  font-family:Aptos,"Segoe UI",Inter,system-ui,-apple-system,sans-serif;
  font-weight:720;
  letter-spacing:-.042em;
}
.hero-copy h1 em,.hero-title-v23 .hero-gold,h1 em,h2 em,h3 em{
  font-family:inherit;
  font-style:normal;
  font-weight:720;
  color:#8A472E;
}
.hero-copy h1,.hero-copy .hero-title-v23{font-size:clamp(3.15rem,5.9vw,6.55rem);line-height:.98;max-width:10.7ch}
.section-head h2,.display{font-size:clamp(2.45rem,4.7vw,5.1rem);line-height:1.02}
.page-hero h1{font-size:clamp(2.8rem,5.4vw,5.6rem);line-height:1.02}
.lead{color:#5A635F;line-height:1.62}
.eyebrow{color:#3A4541;letter-spacing:.12em}
.eyebrow:before{height:3px;width:24px;border-radius:99px;background:#9A5234}
.gold{color:#8A472E}

/* Header reads as a real service company, not a glass-heavy SaaS shell. */
.topbar{background:#163D38;color:#F5F8F6;border-bottom:1px solid rgba(255,255,255,.1)}
.topbar a{color:#fff;text-decoration-thickness:1px;text-underline-offset:3px}
.site-header{background:rgba(255,255,255,.94);backdrop-filter:blur(14px);border-bottom:1px solid rgba(32,39,36,.08)}
.site-header.scrolled{border-color:var(--line);box-shadow:0 8px 26px rgba(22,61,56,.08)}
.nav{height:82px}
.nav-links>a:not(.btn):after{height:3px;border-radius:99px;background:#9A5234;bottom:-8px}
.brand-copy strong{color:#163D38}
.menu-toggle{background:#fff;border-color:rgba(22,61,56,.18);border-radius:12px}
.menu-toggle span,.menu-toggle:before,.menu-toggle:after{background:#163D38}

/* Buttons: one strong technical color, one warm human call-to-action. */
.btn{border-radius:12px;min-height:46px;padding:14px 20px;box-shadow:none;transition:transform .18s ease,background-color .18s ease,border-color .18s ease,box-shadow .18s ease}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:#163D38;color:#fff;box-shadow:0 9px 22px rgba(22,61,56,.15)}
.btn-primary:hover{background:#214A44}
.btn-gold{background:#8A472E;color:#fff;box-shadow:0 9px 22px rgba(138,71,46,.14)}
.btn-gold:hover{background:#743A27}
.btn-light{background:#fff;color:#163D38;border-color:rgba(255,255,255,.72)}
.btn-outline{background:#fff;color:#163D38;border-color:rgba(22,61,56,.22)}
.btn-outline:hover{border-color:#285B54;background:#F7FAF8}

/* Homepage hero: calmer composition, squared-up photography, warm technical backdrop. */
.hero{min-height:auto;padding:88px 0 78px;background:linear-gradient(112deg,#F7F4EE 0%,#F7F4EE 58%,#E3ECE8 100%)}
.hero:before{width:520px;height:520px;right:-220px;top:-210px;background:radial-gradient(circle,rgba(154,82,52,.16),rgba(154,82,52,0) 69%);opacity:1}
.hero:after{width:480px;height:480px;left:-280px;bottom:-330px;background:radial-gradient(circle,rgba(40,91,84,.13),rgba(40,91,84,0) 70%)}
.hero-grid{gap:clamp(42px,5vw,74px)}
.hero-showcase,.visual-card{border-radius:24px;border:1px solid rgba(22,61,56,.14);box-shadow:0 26px 60px rgba(22,61,56,.15);transform:none}
.showcase-art{background:#163D38}
.showcase-body{background:#fff;padding:24px 26px 27px}
.showcase-tags span{background:#F2F5F2;border-color:rgba(22,61,56,.12);color:#3A4541}
.float-card{border-radius:16px;border:1px solid rgba(22,61,56,.12);box-shadow:0 14px 34px rgba(22,61,56,.12);background:rgba(255,255,255,.96)}
.meta-icon{background:#fff;color:#163D38;border-color:rgba(22,61,56,.15)}

/* Section rhythm and cards. */
.section{padding:clamp(78px,7vw,106px) 0}
.section-tight{padding:clamp(54px,5vw,74px) 0}
.section-beige{background:#ECE5DB}
.section-dark{background:#163D38;color:#fff}
.section-dark .section-head p,.section-dark .lead{color:#D7E2DE}
.section-grid-bg:before{background-image:linear-gradient(rgba(120,145,141,.10) 1px,transparent 1px),linear-gradient(90deg,rgba(120,145,141,.10) 1px,transparent 1px);background-size:72px 72px}

.proof-strip{background:#fff;border-color:rgba(22,61,56,.12)}
.proof-item{border-color:rgba(22,61,56,.12)}

.bento-card,.audience-card,.care-panel,.dual-feature,.proof-content-card,.blog-card,.project,.service-detail,.google-card,.legal-content,.legal-aside,.contact-card,.form-card,.case-study,.feature-card{
  border-radius:20px;
  border-color:rgba(22,61,56,.13);
  box-shadow:0 10px 28px rgba(22,61,56,.07);
}
.bento-card{background:#fff}
.bento-card:hover,.audience-card:hover,.proof-content-card:hover,.blog-card:hover,.project:hover{transform:translateY(-3px);box-shadow:0 18px 42px rgba(22,61,56,.11)}
.bento-card.dark{background:#163D38;color:#fff}
.bento-card.gold-card{background:#EADFD3}
.bento-card.steel{background:#E3ECE8}
.bento-card.dark p,.dark p{color:#D7E2DE}
.bento-link i{background:#163D38;color:#fff}
.dark .bento-link i{background:#fff;color:#163D38}

.audience-home{background:#fff}
.audience-business{background:#163D38;color:#fff;border-color:#163D38}
.audience-business .audience-icon{background:#285B54;color:#fff}
.audience-business .audience-label{color:#C7D7D1}
.audience-business p{color:#D7E2DE}
.audience-business .audience-list li{color:#F0F5F3}
.audience-list li:before{background:#9A5234}
.audience-cta i{background:#163D38;color:#fff}
.audience-business .audience-cta i{background:#fff;color:#163D38}

.care-panel{background:#fff}
.care-features{border-radius:16px;border-color:rgba(22,61,56,.13)}
.care-features>div{background:#F7F4EE;border-color:rgba(22,61,56,.13)}
.dev-home-copy .lead{color:#D7E2DE}
.feature-list-dark .feature{border-color:rgba(255,255,255,.18);color:#F0F5F3}
.dev-home-media{border-radius:20px;background:#0F312E;border-color:rgba(255,255,255,.16)}
.dev-home-media img{border-radius:12px}
.dual-feature{background:#163D38;color:#fff}
.dual-feature-soft{background:#fff;color:#202724}
.dual-feature .eyebrow{color:#D7E2DE}
.dual-feature p{color:#D7E2DE}
.dual-feature-soft p{color:#5A635F}
.dual-tags span{background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.16)}

/* Photo/reference areas should feel documentary rather than glossy. */
.practice-tile{border-radius:18px;box-shadow:none;border:1px solid rgba(22,61,56,.12)}
.practice-tile:after{background:linear-gradient(180deg,transparent 42%,rgba(10,36,33,.82))}
.practice-tile span{color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.24)}
.project-screen.project-screenshot{background:#EEF2EF;border-color:rgba(22,61,56,.10)}
.project-screen.project-screenshot img{background:#EEF2EF}

/* Service/detail pages. */
.page-hero{background:linear-gradient(120deg,#F7F4EE 0%,#F7F4EE 62%,#E3ECE8 100%)}
.page-hero .media-frame,.media-frame{border-radius:22px;border-color:rgba(22,61,56,.14);box-shadow:0 20px 52px rgba(22,61,56,.12)}
.service-detail,.feature-card,.project,.blog-card,.proof-content-card{background:#fff}
.feature,.service-detail li,.check-list li{color:#3A4541}

/* Footer/CTA become the recognisable brand anchor. */
.cta-shell{background:#163D38;border-radius:24px;box-shadow:0 20px 50px rgba(22,61,56,.17)}
.cta-shell:before{background:radial-gradient(circle,rgba(154,82,52,.25),rgba(154,82,52,0) 68%)}
.cta-content p{color:#D7E2DE}
.footer{background:#102F2B;color:#EAF1EE}
.footer p,.footer-links span{color:#C6D5D0}
.footer-links a{color:#EAF1EE}
.footer-links a:hover{color:#fff;text-decoration:underline;text-underline-offset:4px}
.footer .brand-copy strong{color:#fff}
.footer .brand-copy span{color:#BFD0CA}
.footer-bottom{border-color:rgba(255,255,255,.13);color:#BFD0CA}
.floating-support{background:#8A472E;color:#fff;box-shadow:0 10px 28px rgba(126,64,42,.26)}

/* Form fields and legal content: predictable, high-contrast controls. */
input,textarea,select{background:#fff;color:#202724;border-color:rgba(22,61,56,.22)}
input::placeholder,textarea::placeholder{color:#737C78}
input:focus,textarea:focus,select:focus{border-color:#285B54;box-shadow:0 0 0 4px rgba(40,91,84,.13)}
.legal-aside{background:#E3ECE8;color:#202724}

/* Never rely on color alone for focus. */
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,.project-screen.project-screenshot:focus-visible,.project-title-link:focus-visible{
  outline:3px solid #8A472E;
  outline-offset:4px;
  box-shadow:0 0 0 2px #fff;
}

/* Links within running copy are visibly links, not just differently coloured. */
.legal-content a:not(.btn),.blog-article a:not(.btn),.article-content a:not(.btn){color:#285B54;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}

/* Motion remains optional. */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .reveal{opacity:1!important;transform:none!important}
}

@media (max-width:820px){
  :root{--container:min(100% - 30px, 1240px)}
  .hero{padding-top:56px;background:linear-gradient(180deg,#F7F4EE 0%,#F7F4EE 66%,#E3ECE8 100%)}
  .hero-copy h1,.hero-copy .hero-title-v23{font-size:clamp(3rem,12vw,5.2rem);max-width:12ch}
  .hero-showcase,.visual-card{border-radius:18px}
  .audience-card,.care-panel,.dual-feature,.proof-content-card,.blog-card,.project,.service-detail{border-radius:17px}
}

@media (max-width:520px){
  :root{--container:calc(100% - 24px)}
  .btn{width:100%;white-space:normal}
  .hero-actions .btn,.cta-actions .btn{width:100%}
  .section{padding:66px 0}
  .topbar-inner{font-size:.74rem}
}

/* v2.6.0 accessibility finishing pass */
.eyebrow-light{color:#D7E2DE!important}
.eyebrow-light:before{background:#C88769}
.feature:before{color:#743A27}
.dark .card-no{color:#AFC0BC}

/* FariTech D2 — pevná produkční značka */
.brand{display:inline-flex;align-items:center;min-width:auto}
.brand .brand-logo{display:block;width:190px;height:auto;max-width:none}
.footer .footer-brand .brand-logo{width:205px;height:auto}
@media (max-width:720px){
  .site-header .brand .brand-logo{width:168px;height:auto}
  .footer .footer-brand .brand-logo{width:190px;height:auto}
}
@media (max-width:390px){
  .site-header .brand .brand-logo{width:150px;height:auto}
}
