/* Palma layout and type. Brand color tokens live in site.css. */
:root { --max:1248px; --r:8px; --fs-body:16px; --fs-lead:19px; --fs-h1:clamp(48px,6.6vw,94px); --fs-h2:clamp(34px,4.1vw,56px); --fs-h3:24px; }
.delivery-section,.services-delivery,.community-page .community-participation { --bg:var(--band-bg); --ink:var(--band-ink); --muted:var(--band-muted); --faint:var(--band-muted); --line:var(--band-line); --accent:var(--brand-pink); --accent-ink:var(--action-ink); --secondary:var(--brand-cyan); background:var(--bg); color:var(--ink); }
body { line-height:1.65; }
.container { width:min(var(--max),calc(100% - 128px)); }
h1 { font-weight:500; line-height:1.02; letter-spacing:-.06em; }
h2,.section-heading { font-weight:500; line-height:1.08; letter-spacing:-.05em; }
h3 { font-weight:500; letter-spacing:-.025em; }
.lead { font-size:clamp(18px,1.6vw,21px); line-height:1.65; }
.section { padding-block:112px; }
.section+.section { border-top:0; }
.section-label { color:var(--muted); font-size:13px; font-weight:500; line-height:1.5; margin:0 0 24px; }
.site-header { backdrop-filter:blur(18px); border-bottom:1px solid var(--line); }
.nav-shell { min-height:96px; gap:32px; }
.brand img { width:172px; max-height:46px; }
.site-nav { gap:28px; }
.site-nav>a { font-size:13px; }
.site-nav .btn { font-size:13px; min-height:44px; padding:11px 18px; }
.site-nav [data-theme-toggle] { min-height:44px; border:0; font-size:12px; padding:8px 0; }
.btn { border-radius:6px; min-height:50px; padding:14px 22px; font-size:14px; font-weight:600; gap:20px; }
.btn:hover { transform:none; filter:none; background:var(--action-hover); color:var(--action-ink); border-color:var(--secondary); }
.btn-secondary:hover { background:var(--surface-2); color:var(--ink); border-color:var(--secondary); }
.btn span[aria-hidden] { transition:transform .2s; }
.btn:hover span[aria-hidden] { transform:translate(2px,-2px); }
.text-link:hover,.quiet-link:hover { color:var(--secondary); }
.text-link { display:inline-flex; align-items:center; gap:14px; min-height:44px; font-size:14px; font-weight:500; }
.faq-list summary { padding-block:24px; font-weight:500; font-size:16px; }
.faq-list details p { font-size:15px; max-width:62ch; }
.service-page .service-hero { padding-block:64px 80px; }
.service-page .service-hero h1 { max-width:1000px; font-size:clamp(40px,5vw,70px); }
.service-hero .lead { max-width:800px; }
.service-page .service-section { padding-block:80px; }
.service-page .eyebrow,.consultation-page .eyebrow { font-size:12px; letter-spacing:.06em; font-weight:500; }
.service-layout { column-gap:80px; }
.service-related { background:var(--surface); }
.consultation-hero { padding-block:80px 48px; }
.consultation-hero h1 { max-width:1000px; font-size:clamp(40px,5vw,70px); }
.consultation-card { padding:40px; border-radius:6px; }
@media(max-width:1100px) { .container{width:calc(100% - 64px)} .site-nav{gap:20px} .nav-shell{gap:24px} .brand img{width:150px} .section{padding-block:88px} }
@media(max-width:900px) { .site-nav{gap:14px} .site-nav>a{font-size:12px} .site-nav .btn{padding:10px 13px;font-size:12px} .brand img{width:138px} .nav-shell{gap:16px;min-height:84px} }
@media(max-width:760px) { .container{width:calc(100% - 48px)} .section{padding-block:72px} .nav-shell{min-height:78px;gap:0} .brand img{width:154px} .site-nav{gap:0} .site-nav>a{font-size:16px;padding:14px 0} .site-nav .btn{font-size:14px} .site-nav [data-theme-toggle]{padding:8px 12px;border:1px solid var(--line)} .section-label{margin-bottom:18px} h1{font-size:clamp(46px,9vw,68px)} h2,.section-heading{font-size:clamp(34px,7vw,46px)} .service-hero{padding-block:40px 56px} .service-section{padding-block:56px} .consultation-hero{padding-block:48px 32px} .consultation-card{padding:28px}  }
@media(max-width:760px) { .service-page .service-hero{padding-block:40px 56px} .service-page .service-section{padding-block:56px} }
@media(max-width:350px) { .container{width:calc(100% - 40px)} h1{font-size:42px} }
@media(prefers-reduced-motion:reduce) { .btn span[aria-hidden]{transition:none} .btn:hover span[aria-hidden]{transform:none} }

.studio-hero h1 span,.services-opening h1 span,.inquiry-intro h1 span { color:var(--accent); }
@supports (background-clip:text) or (-webkit-background-clip:text) {
  .studio-hero h1 span,.services-opening h1 span,.inquiry-intro h1 span { background:linear-gradient(110deg,var(--accent),var(--secondary)); background-clip:text; -webkit-background-clip:text; color:transparent; }
}
@media (forced-colors:active) { .studio-hero h1 span,.services-opening h1 span,.inquiry-intro h1 span { background:none; color:CanvasText; } }
