/* Shared light canvas, FAQ and footer. Homepage layout lives in home.css. */
:root { --niwa-site-background:#f3f4f6; --pt-ink:#2e3032; --pt-sage:#d8d7eb; --pt-mist:#ebebf1; --pt-lime:#eeeefa; --pt-brisk:#ececf3; --pt-bone:#f3f4f6; --pt-muted:#66686b; --pt-line:#d9dade; --pt-radius:12px; --pt-radius-large:20px; --pt-ease:cubic-bezier(.22,1,.36,1); --pt-serif:var(--niwa-font-display); --pt-sans:var(--niwa-font-body); }
html { scroll-behavior:smooth; }
body { background:var(--niwa-site-background); color:var(--pt-ink); font-size:14px; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
::selection { color:var(--pt-ink); background:#d8d7eb; }
.pt-button { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:12px 25px; background:#ffffff80; font:400 13px/1.4 var(--niwa-font-body); }
.pt-faq {
 display: grid;
 grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
 gap: clamp(48px, 6vw, 96px);
 width: min(calc(100% - 80px), 1280px);
 max-width: none;
 margin: 0 auto;
 padding: 144px 0;
}

.pt-faq__intro h2 {
 max-width: 520px;
 margin: 0;


}

.pt-faq__intro p {
 max-width: 432px;
 color: var(--pt-muted);
 font-size: 18px;
 font-weight: 440;
 line-height: 1.28;
 letter-spacing: -0.018em;
}

.pt-faq__intro p:first-of-type {
 margin: 28px 0 0;
}

.pt-faq__intro p + p {
 margin: 30px 0 0;
}

.pt-faq__intro a {
 color: var(--pt-ink);
 font-weight: 650;
 text-decoration: underline;
 text-decoration-color: var(--pt-sage);
 text-underline-offset: 4px;
}

.pt-faq__items {
 border-top: 1px solid var(--pt-line);
}

.pt-faq__item {
 border-bottom: 1px solid var(--pt-line);
}

.pt-faq__item > button {
 display: flex;
 align-items: center;
 justify-content: space-between;
 gap: 24px;
 width: 100%;
 padding: 24px 0;
 border: 0;
 color: var(--pt-ink);
 background: transparent;
 font-family: var(--niwa-font-display);
 font-size: var(--niwa-type-h4);
 font-weight: 400;
 line-height: 1.35;
 text-align: left;
 cursor: pointer;
 transition: color 180ms ease;
}

.pt-faq__item img {
 flex: 0 0 20px;
 width: 20px;
 height: 20px;
 color: var(--pt-muted);
 transition: color 180ms ease, transform 200ms ease;
}

.pt-faq__item > button:hover,
.pt-faq__item > button:focus-visible,
.pt-faq__item.is-selected > button,
.pt-faq__item.is-selected img {
 color: var(--pt-ink);
}

.pt-faq__item.is-open img {
 transform: rotate(180deg);
}

.pt-faq__panel {
 display: grid;
 grid-template-rows: 1fr;
}

.pt-faq.is-motion-ready .pt-faq__panel {
 grid-template-rows: 0fr;
 opacity: 0;
 visibility: hidden;
 transition: grid-template-rows 240ms ease-out, opacity 240ms ease-out, visibility 0s linear 240ms;
}

.pt-faq.is-motion-ready .pt-faq__item.is-open .pt-faq__panel {
 grid-template-rows: 1fr;
 opacity: 1;
 visibility: visible;
 transition-delay: 0s;
}

.pt-faq__answer {
 min-height: 0;
 overflow: hidden;
}

.pt-faq__answer p {
 max-width: 680px;
 margin: 0;
 padding: 0 46px 24px 0;
 color: var(--pt-muted);
 font-size: 16px;
 line-height: 1.75;
}

.pt-faq__word,
.pt-faq__character {
 display: inline-block;
}

.pt-faq__word {
 white-space: nowrap;
}

.pt-faq__character {
 opacity: 0;
 filter: blur(10px);
 transition: opacity 280ms ease, filter 280ms ease;
}

.pt-faq__item.is-open .pt-faq__character {
 opacity: 1;
 filter: blur(0);
 transition-delay: var(--pt-character-delay);
}


.pt-footer { display:grid; grid-template-columns:1.3fr 1fr; gap:80px; padding:85px 6vw 34px; border-top:1px solid var(--pt-line); }
.pt-footer nav { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px; }
.pt-footer nav div { display:flex; flex-direction:column; gap:12px; }
.pt-footer nav strong,.pt-footer nav a { overflow-wrap:anywhere; font-size:12px; font-weight:400; }
.pt-footer nav strong { color:var(--pt-muted); margin-bottom:8px; }
.pt-footer__brand { justify-self:end; }
.pt-footer__brand .vl-wordmark__image { width:88px; filter:brightness(0); }
.pt-footer__brand p { margin:22px 0 15px; font-size:13px; }
.pt-footer__brand .niwa-button { margin-left:-28px; }
.pt-footer > small { grid-column:1/-1; padding-top:24px; border-top:1px solid var(--pt-line); color:var(--pt-muted); font-size:11px; }
@media(max-width:980px) { .pt-faq { gap:40px; } .pt-footer { gap:35px; } }
@media(max-width:640px) { .pt-faq { grid-template-columns:1fr; width:calc(100% - 40px); padding:65px 0; gap:30px; } .pt-footer { grid-template-columns:1fr; padding:55px 20px 70px; } .pt-footer nav { gap:24px 18px; grid-template-columns:repeat(2,minmax(0,1fr)); } .pt-footer__support { grid-column:1/-1; } .pt-footer__brand { justify-self:start; } }
