/* AraKot V3.1 — full-window render gallery and restored scroll reveals. */
:root { --v3-width:1200px; --v3-edge:max(clamp(24px,5vw,72px),calc((100% - var(--v3-width))/2)); --v3-copy:#514c44; --v3-section:clamp(64px,7.5vw,104px); }
[hidden] { display:none !important; }
html { scroll-padding-top:104px; }
main:focus { outline:none; }
:focus-visible { outline:3px solid var(--accent); outline-offset:5px; }
.skip-link { position:fixed; left:20px; top:-120px; z-index:10000; padding:14px 22px; border-radius:999px; background:#fff; color:var(--ink); }
.skip-link:focus { top:16px; }
.nav:focus-within { transform:none !important; }
.mmenu:not(.open) { visibility:hidden; }
.mmenu.open { visibility:visible; }
.nav__burger { width:44px; height:44px; min-width:44px; }
.nav__burger span { width:26px; left:9px; }
.nav__burger span:nth-child(1) { top:13px; }
.nav__burger span:nth-child(3) { bottom:13px; }
.nav__burger.open span:nth-child(1),.nav__burger.open span:nth-child(3) { top:50%; bottom:auto; }
.ptrans { display:none; }
.reveal,.reveal-img { opacity:1; transform:none; clip-path:none; }
.reveal.reveal-pending { transition-property:opacity,transform; transition-duration:1s; transition-timing-function:var(--ease); }
.reveal.reveal-pending:not(.in) { opacity:0; transform:translateY(34px); }
.reveal-img.reveal-pending { transition-property:clip-path; transition-duration:1.1s; transition-timing-function:var(--ease); }
.reveal-img.reveal-pending:not(.in) { clip-path:inset(0 0 100% 0); }
.reveal.reveal-pending:focus-within,.reveal-img.reveal-pending:focus-within { opacity:1; transform:none; clip-path:none; }
/* Center a shared content area; headings and paragraphs share its left edge. */
.wrap,.section,.cta,.footer,.gallery__head,.phero { padding-inline:var(--v3-edge); }
.section,.cta { padding-block:var(--v3-section); }
.wrap > *,.section > *,.footer > * { margin-inline:0; }
.section.process { padding-inline:0; }
.section.process > .wrap { width:100%; max-width:none; }
.phero__inner { width:100%; max-width:var(--v3-width); margin-inline:auto; }
.tag { display:block; width:fit-content; margin-bottom:18px; font-size:11px; letter-spacing:.14em; line-height:1.5; }
.sec-title,.process h2,.work__head h2,.value h2,.gallery__head h2 { font-size:clamp(30px,3.65vw,48px); font-weight:600; line-height:1.15; letter-spacing:-.035em; text-wrap:pretty; }
.sec-title { max-width:24ch; }
.split { grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr); gap:clamp(32px,6vw,88px); }
.lead-block p { font-size:17px; line-height:1.8; color:var(--v3-copy); }
.phero { min-height:420px; padding-block:156px 64px; }
.phero__title { max-width:24ch; font-size:clamp(38px,5vw,64px); font-weight:600; letter-spacing:-.04em; line-height:1.1; text-wrap:pretty; }
.phero__crumb { letter-spacing:.12em; font-size:11px; margin-bottom:20px; }
.phero__sub { max-width:62ch; margin-top:24px; font-size:18px; line-height:1.7; opacity:.9; }
.phero__inner > .btn { margin-top:28px; background:var(--bg); color:var(--ink); }
.phero.lic-hero .phero__title { max-width:26ch; font-size:clamp(36px,4.4vw,56px); line-height:1.12; }
.phero.lic-hero .phero__sub { max-width:70ch; }
/* Preserve AraKot's pill silhouette for every primary action. */
body.ak-v3 .btn,body.ak-v3 button.btn,.nav__cta { border-radius:999px; }
.btn { min-height:50px; padding:14px 26px; gap:12px; font-size:14px; font-weight:600; line-height:1.5; text-align:center; justify-content:center; white-space:normal; }
.btn:hover { transform:translateY(-2px); }
.btn--ghost { border:1px solid currentColor; }
/* V2 cover/center framing and motion; restored text on the opening image. */
.hero { height:100vh; height:100svh; min-height:0; background:var(--ink); }
.hc-viewport { position:absolute; inset:0; }
.hc-slide { overflow:hidden; }
.hc-slide__photo { display:block; width:100%; height:100%; object-fit:cover; object-position:center; transform:scale(1.06); transition:transform 6s ease; }
.hc-slide.active .hc-slide__photo { transform:scale(1); }
.hc-slide::after { pointer-events:none; background:linear-gradient(to bottom,rgba(15,14,12,.35),rgba(15,14,12,.05) 30%,rgba(15,14,12,.55) 100%); }
.hero__scroll { display:inline-flex; min-height:44px; bottom:max(26px,env(safe-area-inset-bottom)); font-size:10px; letter-spacing:.12em; opacity:1; }
.hero__scroll i { animation:bob 1.8s ease-in-out infinite; }
.admin-bar .hero { height:calc(100svh - 32px); }
@media(max-width:782px) { .admin-bar .hero { height:calc(100svh - 46px); } }
.v3-carousel-controls { position:absolute; bottom:12px; right:clamp(20px,5vw,80px); z-index:8; display:flex; align-items:center; padding:0; color:var(--on-dark); }
.hc-dots { position:static; display:flex; gap:6px; }
.hc-dot,.hc-dot.active { width:34px; height:44px; border-radius:999px; padding:0; background:transparent; display:inline-grid; place-items:center; }
.hc-dot::after { content:''; display:block; width:30px; height:2px; background:currentColor; opacity:.35; transition:opacity .3s ease; }
.hc-dot.active::after { opacity:1; }
.hero__sectors.v3-service-nav { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; margin:0; padding:22px var(--v3-edge); background:var(--bg); border-bottom:1px solid var(--line); }
.v3-service-nav a { display:flex; align-items:center; justify-content:center; color:var(--ink); font-size:13px; min-height:46px; padding:10px 18px; text-align:center; line-height:1.45; opacity:1; }
.v3-service-nav a + a { border-left:1px solid var(--line); }
.v3-service-nav a::before,.v3-service-nav a::after { display:none; }
.v3-service-nav a:hover { color:var(--accent); }
.marquee { display:none; }
.value h2 { max-width:30ch; }

.about::before,.process::before { background:var(--bg-alt); box-shadow:none; }
.about { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
.about__copy p { max-width:54ch; font-size:16px; line-height:1.8; }
.about__global { display:none; }
.about__stats { gap:28px; justify-content:space-between; border-top:1px solid var(--line); padding-top:28px; }
.about__stat .n { font-size:40px; transform:none; opacity:1; }
.about__stat .l { font-size:12px; }
.work__head { margin-bottom:36px; }
.pcard__meta { align-items:flex-start; flex-wrap:wrap; gap:6px 16px; }
.pcard__cat { white-space:normal; }
html[lang="en"] .pcard__media::after { content:"View project →"; }
/* Local service: introduction and project image, then three supporting details. */
.v3-local-services { border-bottom:1px solid var(--line); }
.v3-service-feature { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:center; gap:clamp(36px,6vw,80px); }
.v3-service-copy { min-width:0; }
.v3-local-services .sec-title { max-width:20ch; margin:0; }
.v3-lead { max-width:65ch; font-size:17px; line-height:1.8; color:var(--v3-copy); margin:24px 0 28px; }
.v3-service-image { margin:0; }
.v3-service-image img { width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; border-radius:18px; }
.v3-service-image figcaption { margin-top:12px; font-size:12px; color:#6f685e; }
.v3-service-columns { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; margin-top:48px; padding-top:32px; border-top:1px solid var(--line); }
.v3-service-columns article { min-width:0; }
.v3-service-columns h3 { font-size:20px; font-weight:600; line-height:1.3; margin-bottom:14px; }
.v3-service-columns p { font-size:15px; line-height:1.8; color:var(--v3-copy); }
.v3-service-columns a,.v3-inline-actions > a:not(.btn) { display:inline-block; font-size:14px; padding-block:12px; text-decoration:underline; text-underline-offset:5px; }
.v3-inline-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px 24px; }
.v3-service-summary { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(36px,6vw,80px); align-items:start; }
.v3-service-summary .v3-lead { margin-top:0; }
.svc { grid-template-columns:48px minmax(0,1fr); gap:0 24px; padding-block:30px; }
.svc > .svc__n { grid-column:1; grid-row:1 / 3; }
.svc:hover { padding-left:0; }
.svc__t { font-size:27px; line-height:1.25; }
.svc__d { max-width:70ch; line-height:1.75; }
.svc__tag { white-space:normal; font-size:11px; }
.svc-link-card { border-radius:14px; line-height:1.5; }
.lic-home-promo,.lic-hub-feature { grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr); align-items:center; gap:48px; }
.lic-home-promo h2,.lic-hub-feature h2 { font-size:clamp(30px,3.2vw,42px); max-width:22ch; font-weight:600; line-height:1.18; }
.lic-home-promo > .btn { justify-self:end; }
.lic-hub-feature .lic-actions { justify-content:flex-start; gap:12px; }
.partner-support__intro { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(32px,6vw,80px); margin-top:0; }
.partner-support__intro .sec-title { max-width:23ch; }
.partner-support__intro p,.partner-support__grid p { color:var(--v3-copy); }
.partner-support__intro p { font-size:17px; line-height:1.8; }
.partner-support__grid { gap:24px; background:transparent; border:0; margin-top:36px; }
.partner-support__grid article { border:1px solid var(--line); border-radius:16px; box-shadow:none; padding:28px; background:rgba(255,255,255,.35); }
.partner-support__grid article > span { margin-bottom:24px; }
.partner-support__grid h3 { font-size:22px; font-weight:600; line-height:1.3; }
/* Rounded disclosures: quiet rows, consistent heading scale and legible answers. */
.acc { max-width:100%; }
.process h2 { margin-bottom:32px; }
.acc__item,.acc__item:last-child,.process .acc__item { border:1px solid var(--line); border-radius:16px; background:rgba(255,255,255,.34); overflow:hidden; }
.acc__item + .acc__item { margin-top:10px; }
.acc__head { width:100%; display:flex; align-items:center; gap:18px; background:none; color:var(--ink); border:0; border-radius:16px; padding:24px 28px; text-align:left; font:inherit; cursor:pointer; }
.acc__title { font-size:clamp(18px,1.8vw,23px); font-weight:500; line-height:1.45; letter-spacing:-.02em; }
.acc__num { font-size:12px; color:var(--accent); width:24px; }
.acc__icon { display:block; width:30px; height:30px; border:1px solid var(--line); border-radius:50%; }
.acc__icon::before,.acc__icon::after { background:var(--ink); }
.acc__body { max-height:none; }
.acc__body p,.process .acc__body p { padding:0 28px 26px; max-width:76ch; font-size:16px; line-height:1.8; color:var(--v3-copy); }
#faq .acc__body p { padding-left:28px; }
.acc__item:has(.acc__num) .acc__body p { padding-left:70px; }
.acc__item.open .acc__title { opacity:1; }
.acc__head:focus-visible { outline-offset:-4px; }
.quotes > * { margin-inline:auto; }
.quotes__stage { max-width:820px; min-height:215px; }
.quote p { font-size:clamp(22px,2.3vw,30px); line-height:1.5; font-weight:500; }
.quotes__dots { display:flex; flex-wrap:nowrap; gap:16px; align-items:center; justify-content:center; margin-top:26px; }
.v3-quote-arrow { width:44px; height:44px; border:1px solid var(--line); border-radius:999px; font-size:20px; }
.v3-quote-count { min-width:54px; font-size:13px; font-variant-numeric:tabular-nums; color:#6f685e; }
.cta h2 { max-width:22ch; font-size:clamp(36px,4.6vw,60px); font-weight:600; line-height:1.12; margin-bottom:28px; }
.cta > * { margin-inline:auto; }
.cta.lic-cta > * { margin-inline:0; }
/* The form is a single surface, with supporting contact details beside it. */
.contact-grid { grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr); gap:clamp(32px,6vw,84px); }
.v3-contact-form { min-width:0; padding:clamp(26px,3vw,42px); border:1px solid var(--line); background:rgba(255,255,255,.72); border-radius:24px; }
.v3-contact-form .sec-title { font-size:30px; line-height:1.2; margin:0 0 28px; }
.cform { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px 18px; }
.cform > * { grid-column:1 / -1; min-width:0; }
.cform > .v3-field--half { grid-column:auto; }
.cform label { display:block; margin:0 0 9px; font-size:13px; line-height:1.5; font-weight:600; }
.cform input,.cform textarea,.cform select { width:100%; min-height:50px; font-size:15px; padding:13px 14px; border:1px solid #d5cfc5; border-radius:12px; background:#fff; }
.cform textarea { min-height:144px; }
.cform .v3-form-help { font-size:12px; line-height:1.7; margin:8px 0 0; color:#6b6358; }
.cform .v3-form-help a { text-decoration:underline; text-underline-offset:3px; }
.cform > .btn { justify-self:start; min-width:154px; }
.cform > .v3-form-help { margin-top:-8px; }
.v3-form-details { padding-top:18px; border-top:1px solid var(--line); }
.v3-form-details summary { cursor:pointer; font-size:13px; font-weight:500; line-height:1.6; }
.v3-form-details label { margin-top:18px; }
.cinfo__row { padding-block:20px; }
.cinfo__row:first-child { padding-top:4px; }
.cinfo__v { font-size:19px; line-height:1.5; }
.cinfo__k { font-size:10px; letter-spacing:.1em; }
.contact-brief { margin-top:26px; }
.contact-brief h2 { font-size:23px; line-height:1.3; }
.contact-brief p { color:var(--v3-copy); line-height:1.8; }
.cmap { aspect-ratio:3/2; border-radius:16px; }
@media(max-width:1000px) {
 .v3-service-feature,.v3-service-summary { gap:32px; }
 .contact-grid { grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:32px; }
 .cform > .v3-field--half { grid-column:1 / -1; }
}
@media(max-width:860px) {
 .hero__sectors.v3-service-nav { grid-template-columns:repeat(2,minmax(0,1fr)); padding-block:14px; }
 .v3-service-nav a:nth-child(3) { border-left:0; }
 .v3-service-nav a:nth-child(n+3) { border-top:1px solid var(--line); }
 .split,.about,.v3-service-feature,.v3-service-summary,.contact-grid,.lic-home-promo,.lic-hub-feature,.partner-support__intro { grid-template-columns:minmax(0,1fr); }
 .v3-service-feature { gap:34px; }
 .v3-service-image img { aspect-ratio:16/10; }
 .v3-service-columns { gap:22px; }
 .about__photo { aspect-ratio:4/3; }
 .contact-grid > .v3-contact-form { order:-1; }
 .lic-home-promo > .btn { justify-self:start; }
 .phero { min-height:390px; padding-top:132px; padding-bottom:52px; }
 .phero__sub { font-size:17px; }
 .quotes__stage { min-height:235px; }
}
@media(max-width:600px) {
 :root { --v3-section:64px; }

 .nav { height:74px; }
 .v3-carousel-controls { right:24px; bottom:12px; }
 .v3-service-nav a { font-size:12px; padding:14px 10px; min-height:48px; }
 .phero__title { font-size:40px; }
 .phero__sub { font-size:16px; }
 .v3-service-columns { grid-template-columns:minmax(0,1fr); margin-top:32px; gap:26px; }
 .v3-service-columns h3 { margin-bottom:10px; }
 .v3-lead { font-size:16px; }
 .v3-inline-actions { align-items:flex-start; flex-direction:column; }
 .svc { grid-template-columns:28px minmax(0,1fr); column-gap:16px; }
 .svc__n { font-size:17px; }
 .svc__t { font-size:23px; }
 .acc__head { padding:20px; gap:12px; }
 .acc__title { font-size:17px; }
 .acc__num { width:20px; }
 .acc__body p,.process .acc__body p,.acc__item:has(.acc__num) .acc__body p { padding:0 20px 22px; font-size:15px; }
 #faq .acc__body p { padding-left:20px; }
 .quotes__stage { min-height:260px; }
 .quote p { font-size:22px; }
 .about__stats { gap:16px; }
 .about__stat .n { font-size:34px; }
 .about__stat .l { font-size:11px; }
 .v3-contact-form { padding:24px 20px; border-radius:20px; }
 .v3-contact-form .sec-title { font-size:27px; }
 .cform { grid-template-columns:minmax(0,1fr); gap:20px; }
 .cform input,.cform textarea,.cform select { font-size:16px; }
 .cform > .btn { justify-self:stretch; }
}
@media(max-width:359px) {
 .phero__title { font-size:36px; }
}
@media(prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto; }
 *,*::before,*::after { animation:none !important; transition:none !important; }
 .cursor,.cursor__label,.ptrans { display:none !important; }
}


.v31-project-link { width:fit-content; margin-top:18px; font-size:13px; }
.v31-project-link i { font-size:12px; }
.pcard:hover .v31-project-link { background:var(--ink); color:var(--bg); }
@media(max-width:860px) {
 .hc-slide__photo { object-fit:cover; }
 .work-pin .panel.reveal { transition:opacity 1s var(--ease),transform 1s var(--ease); }
}
@media(max-width:600px) {
 .hero__scroll { left:24px; bottom:max(28px,env(safe-area-inset-bottom)); letter-spacing:.08em; }
 .v3-carousel-controls { bottom:max(12px,env(safe-area-inset-bottom)); }
 .v31-project-link { max-width:100%; padding-inline:20px; }
}
@media(prefers-reduced-motion:reduce) {
 .reveal.reveal-pending,.reveal-img.reveal-pending { opacity:1 !important; transform:none !important; clip-path:none !important; }
}

/* The V2 title placement stays at lower left; mobile copy is deliberately small. */
.hero__overlay { padding-bottom:clamp(100px,12vh,140px); }
.hero__title { max-width:20ch; font-size:clamp(38px,5.4vw,84px); font-weight:500; line-height:1.02; }
.hero__eyebrow { max-width:100%; }
.hero__rotline { display:block; margin-top:.1em; }
.v31-hero-mobile { display:none; }
@media(max-width:860px) {
 .v31-hero-desktop { display:none; }
 .v31-hero-mobile { display:inline; }
 .hero__overlay { padding:0 24px 96px; }
 .hero__eyebrow { display:block; margin-bottom:12px; font-size:10px; letter-spacing:.08em; line-height:1.5; }
 .hero__eyebrow::before { display:none; }
 .hero__title { max-width:19ch; font-size:30px; line-height:1.08; letter-spacing:-.02em; }
 .hero__rotline { margin-top:8px; }
}
@media(max-width:600px) {
 .hero__title { font-size:28px; }
 .hero__overlay { padding-bottom:92px; }
}
@media(max-width:359px) {
 .hero__title { font-size:26px; }
}
@media(max-height:500px) and (max-width:960px) {
 .hero__overlay { padding-bottom:70px; }
 .hero__eyebrow { margin-bottom:8px; }
 .hero__title { font-size:24px; max-width:22ch; }
}
@media(prefers-reduced-motion:reduce) {
 .hc-slide__photo,.hc-slide.active .hc-slide__photo { transform:none; }
}

/* Keep one project enquiry next to the existing studio information. */
.v31-studio-contact { margin:8px 0 28px; }
