/* Ladstudio / concise homepage: a shared grid, two type families, native motion. */
.page-home { --bg:#f7f9f8; background:var(--bg); }
.page-home main { overflow:clip; }
.page-home .container { max-width:1280px; padding-inline:32px; }
.home-section { padding-block:104px; }
.home-label { margin:0 0 24px; color:#526873; font:500 .875rem/1.5 var(--font-body); }
.home-title { margin:0; font:600 clamp(2.25rem,4.5vw,3.75rem)/1.1 var(--font-display); letter-spacing:-.035em; }
.home-title span { color:#587581; }
.home-lead { max-width:28ch; margin:28px 0 0; color:var(--text); font-size:1.0625rem; line-height:1.7; }
.home-note { max-width:46ch; margin:20px 0 0; color:#526873; font-size:.875rem; line-height:1.65; }
.home-text-link { display:inline-flex; align-items:center; min-height:44px; font-size:.9375rem; font-weight:500; text-decoration:underline; text-underline-offset:6px; text-decoration-color:#9db0b7; }
.home-actions { display:flex; flex-wrap:wrap; align-items:center; gap:16px 28px; }
.page-home .btn { min-height:54px; padding:15px 24px; border-radius:12px; font-size:1rem; }
.home-step { display:flex; align-items:center; gap:24px; margin-bottom:48px; }
.home-step__number { flex-shrink:0; color:#526873; font-size:.875rem; line-height:1.6; }
.home-step__line { width:100%; height:1px; background:repeating-linear-gradient(90deg,#bdcdd1 0 3px,transparent 3px 9px); }
.home-section-head { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,.8fr); gap:64px; align-items:end; margin-bottom:48px; }
.home-section-head .home-lead { margin:0 0 4px; }
.home-hero { position:relative; overflow:hidden; background:linear-gradient(110deg,#f7f9f8 50%,#e8f0f1); }
.home-hero__inner { position:relative; min-height:680px; padding-top:88px; padding-bottom:0; }
.home-hero__copy { position:relative; z-index:2; max-width:890px; }
.home-hero h1 { margin:0; font:600 clamp(3rem,5.5vw,4.875rem)/1.08 var(--font-display); letter-spacing:-.045em; }
.home-hero h1 span { color:#557481; }
.home-hero__lead { max-width:39ch; margin:30px 0 32px; color:#405764; font-size:1.125rem; line-height:1.65; }
.home-hero__bottom { position:relative; z-index:2; display:flex; justify-content:space-between; align-items:center; gap:24px; margin-top:70px; padding-block:24px; border-top:1px solid #cfdddf; color:#526873; font-size:.875rem; line-height:1.6; }
.home-hero__bottom a { display:flex; align-items:center; gap:20px; min-height:44px; }
.home-hero__bottom a span { font-size:1.5rem; }
.home-clock { width:480px; height:480px; position:absolute; right:-70px; top:75px; color:#627e88; opacity:.24; pointer-events:none; border-radius:50%; border:1px solid #9eafb5; padding:18px; box-shadow:0 0 0 14px #fff4,0 22px 60px #55748112; }
.home-clock__face { width:100%; height:100%; border:1px solid #a7bbc2; border-radius:50%; position:relative; background:radial-gradient(circle,#ffffff90,#d8e5e970); }
.home-clock__face::before,.home-clock__face::after { position:absolute; content:""; border-radius:50%; }
.home-clock__face::before { inset:17px; background:repeating-conic-gradient(#6b8691 0 1deg,transparent 1deg 6deg); mask:radial-gradient(circle,transparent 67%,#000 68%); }
.home-clock__face::after { inset:44px; border:1px dashed #9eb3bb; }
.home-clock__brand { position:absolute; left:0; right:0; top:30%; text-align:center; font:500 1rem/1.2 var(--font-display); }
.home-clock__hand { position:absolute; bottom:50%; left:50%; transform-origin:50% 100%; width:3px; background:#426271; border-radius:5px; }
.home-clock__hand--hour { height:24%; transform:rotate(48deg); }
.home-clock__hand--minute { height:34%; transform:rotate(125deg); }
.home-clock__hand--second { height:38%; width:1px; background:#aa841f; transform:rotate(225deg); }
.home-clock__pin { position:absolute; left:50%; top:50%; width:10px; height:10px; margin:-5px; background:#aa841f; border-radius:50%; }
.home-clock__note { position:absolute; bottom:28%; width:100%; left:0; text-align:center; font-size:.875rem; }
.home-question__layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.2fr); gap:96px; }
.home-question__choices { min-width:0; border-top:1px solid #bdcdd1; }
.home-question__choices>button { width:100%; display:flex; align-items:center; justify-content:space-between; gap:24px; min-height:86px; padding:22px 0; background:none; border:0; border-bottom:1px solid #bdcdd1; text-align:left; font:500 clamp(1.0625rem,1.7vw,1.375rem)/1.45 var(--font-display); cursor:pointer; transition:color 180ms; }
.home-question__choices>button i { width:32px; height:32px; flex-shrink:0; display:grid; place-items:center; font:400 1.5rem/1 var(--font-body); font-style:normal; border:1px solid #bccdd2; border-radius:50%; transition:transform 180ms,background 180ms; }
.home-question__choices>button[aria-pressed="true"] { color:#315a6e; }
.home-question__choices>button[aria-pressed="true"] i { background:#dcebed; transform:rotate(45deg); }
.home-answer { margin:24px 0; padding:24px 28px; background:#e7eff0; border-radius:16px; }
.home-answer h3 { margin:0 0 8px; font:500 1.125rem/1.4 var(--font-display); letter-spacing:-.01em; }
.home-answer p { max-width:43ch; margin:0 0 10px; font-size:.9375rem; line-height:1.65; color:#405967; }
.home-formats { background:#edf3f3; }
.home-format-grid { display:grid; grid-template-columns:1fr 1fr 1.12fr; gap:20px; align-items:stretch; }
.home-format { position:relative; display:flex; flex-direction:column; min-width:0; padding:30px; border:1px solid #c5d7db; border-radius:22px; background:#f8fbfa; transition:background 180ms; }
.home-format--launch { border-radius:22px 22px 64px 22px; background:#e0edef; }
.home-format--team { border-radius:22px 64px 22px 22px; background:#d0e3e8; }
.home-format__label { font-size:.875rem; line-height:1.5; color:#526873; min-height:42px; }
.home-format>.icon { width:30px; height:30px; margin:24px 0 30px; color:#577d8c; }
.home-format h3 { margin:0 0 14px; font:500 1.5rem/1.25 var(--font-display); letter-spacing:-.025em; }
.home-format p { max-width:25ch; margin:0 0 28px; color:#405967; font-size:1rem; line-height:1.6; }
.home-format__action { display:flex; justify-content:space-between; align-items:center; gap:14px; margin-top:auto; padding-top:20px; border-top:1px dashed #9fbac3; font-size:.875rem; font-weight:500; }
.home-format__action>span { font-size:1.375rem; }
.home-all-services { margin-top:28px; }
.home-process__list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:40px; list-style:none; padding:0; margin:0; }
.home-process__list li { position:relative; min-width:0; padding-top:28px; border-top:1px dashed #a9c0c7; }
.home-process__index { display:block; margin-bottom:28px; color:#6c8993; font:500 2.125rem/1.2 var(--font-display); letter-spacing:-.03em; }
.home-process__list h3 { font:500 1.5rem/1.3 var(--font-display); margin:0 0 14px; letter-spacing:-.025em; }
.home-process__list p { max-width:29ch; margin:0; color:#526873; font-size:1rem; line-height:1.65; }
.home-process__promise { margin:36px 0 0; color:#526873; font-size:.875rem; }
.home-faq { border-top:1px solid #d6e1e4; padding-block:80px; }
.home-faq__layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.2fr); gap:96px; }
.home-faq__items { min-width:0; border-top:1px solid #bdcdd1; }
.home-faq details { border-bottom:1px solid #bdcdd1; }
.home-faq summary { display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:78px; padding:20px 0; font:500 1.0625rem/1.5 var(--font-display); list-style:none; cursor:pointer; }
.home-faq summary::-webkit-details-marker { display:none; }
.home-faq summary span { font:400 1.625rem/1 var(--font-body); color:#587581; transition:transform 160ms; }
.home-faq details[open] summary span { transform:rotate(45deg); }
.home-faq details p { padding:0 28px 24px 0; margin:0; color:#526873; font-size:1rem; line-height:1.65; max-width:52ch; }
.home-contact { background:#dfecef; text-align:center; padding-block:104px; }
.home-contact .home-title { max-width:1000px; margin:auto; }
.home-contact .btn { margin-top:36px; }
.home-contact .home-note { margin-inline:auto; }
/* Content remains visible without JavaScript and with reduced motion. */
@media (prefers-reduced-motion:no-preference) {
 [data-reveal].is-pending { opacity:0; transform:translateY(16px); }
 [data-reveal].is-revealed { animation:home-appear 480ms ease-out both; }
 @keyframes home-appear { from { opacity:0; transform:translateY(16px); } to { opacity:1; transform:none; } }
}
@media (hover:hover) {
 .home-question__choices>button:hover { color:#315a6e; }
 .home-format:hover { background:#c6dee5; }
 .home-text-link:hover { text-decoration-color:currentColor; }
}
.page-home :is(a,button,summary):focus-visible { outline:3px solid #658eab; outline-offset:5px; }
@media (max-width:1039px) {
 .home-section { padding-block:80px; }
 .home-hero__inner { min-height:630px; padding-top:72px; }
 .home-hero h1 { font-size:clamp(2.75rem,6.4vw,4.125rem); }
 .home-hero__copy { max-width:740px; }
 .home-clock { right:-180px; opacity:.17; }
 .home-question__layout,.home-faq__layout,.home-section-head { gap:40px; }
 .home-format-grid { gap:14px; grid-template-columns:repeat(3,minmax(0,1fr)); }
 .home-format { padding:24px; }
 .home-format h3 { font-size:1.25rem; }
 .home-process__list { gap:28px; }
}
@media (max-width:767px) {
 .page-home .container { padding-inline:22px; }
 .home-section { padding-block:64px; }
 .home-title { font-size:clamp(2rem,6.4vw,2.75rem); }
 .home-label { margin-bottom:20px; }
 .home-lead { font-size:1rem; margin-top:20px; }
 .home-step { gap:16px; margin-bottom:32px; }
 .home-step__number { font-size:.8125rem; }
 .home-hero__inner { min-height:0; padding-top:52px; }
 .home-hero h1 { font-size:clamp(2.125rem,6.7vw,3.25rem); line-height:1.12; letter-spacing:-.04em; }
 .home-hero__lead { font-size:1rem; max-width:34ch; margin:24px 0 28px; }
 .home-clock { width:380px; height:380px; top:40px; right:-175px; opacity:.11; }
 .home-clock__note { display:none; }
 .home-actions { gap:12px 24px; }
 .home-actions .btn,.home-actions .home-text-link { width:100%; justify-content:center; }
 .home-hero__bottom { display:block; margin-top:40px; padding-block:20px; }
 .home-hero__bottom>span { display:block; max-width:28ch; }
 .home-hero__bottom a { margin-top:12px; justify-content:space-between; }
 .home-question__layout,.home-faq__layout,.home-section-head { grid-template-columns:minmax(0,1fr); gap:32px; }
 .home-section-head { margin-bottom:32px; }
 .home-question__choices>button { min-height:76px; font-size:1.125rem; gap:16px; }
 .home-answer { padding:22px; }
 .home-format-grid { grid-template-columns:minmax(0,1fr); gap:16px; }
 .home-format { padding:26px; border-radius:20px; }
 .home-format--launch { border-bottom-right-radius:52px; }
 .home-format--team { border-top-right-radius:52px; }
 .home-format__label { min-height:0; padding-right:40px; }
 .home-format>.icon { position:absolute; right:26px; top:26px; margin:0; width:24px; height:24px; }
 .home-format h3 { margin-top:24px; font-size:1.5rem; }
 .home-format p { max-width:34ch; }
 .home-process__list { grid-template-columns:minmax(0,1fr); gap:0; }
 .home-process__list li { display:grid; grid-template-columns:46px minmax(0,1fr); gap:10px 18px; padding:26px 0; }
 .home-process__index { grid-row:1/3; margin:0; font-size:1.625rem; }
 .home-process__list h3 { font-size:1.375rem; margin:0; }
 .home-process__list p { grid-column:2; max-width:32ch; }
 .home-process__promise { margin-top:12px; }
 .home-contact { padding-block:72px; }
 .home-contact .btn { width:100%; max-width:380px; }
 .home-faq summary { font-size:1rem; }
}
@media (max-width:359px) {
 .page-home .container { padding-inline:18px; }
 .home-hero h1,.home-title { font-size:1.9375rem; }
 .home-question__choices>button { font-size:1rem; }
 .home-format { padding:24px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .page-home *, .page-home *::before, .page-home *::after { animation:none!important; transition:none!important; } }
