/* Shared Purna publication styles. Extends the existing photographic homepage. */
:root { --rule: #d7cfdf; }
html { scroll-padding-top: 96px; scrollbar-color: #625c78 #fbf7f2; }
body { caret-color: var(--violet-ink); }
::selection { background: var(--lime); color: var(--ink); }
:focus-visible { outline: 3px solid var(--violet-ink); outline-offset: 5px; }
.top :focus-visible { outline-color: var(--lime); }
[hidden] { display: none !important; }
.top .nav { gap: 32px; }
.top .nav-links { gap: 24px; }
.inner-page .top, .case-page .top { position: relative; background: var(--dark); }
.inner-page .menu, .case-page .menu { color: var(--ink); }
.page-intro { max-width: 1380px; margin: auto; padding: clamp(56px,8vw,112px) var(--pad) 48px; display: grid; grid-template-columns: 1.8fr 1fr; gap: 56px; align-items: end; }
.page-intro h1 { font: 400 clamp(42px,5.5vw,76px)/1.05 var(--serif); letter-spacing: -.025em; max-width: 17ch; text-wrap: balance; margin: 0 0 28px; }
.page-intro .lead { font: 400 clamp(18px,1.7vw,22px)/1.55 var(--sans); max-width: 58ch; margin: 0; color: var(--ink-soft); }
.intro-note { padding: 28px; color: var(--on-dark); background: var(--violet-ink); border-radius: 12px; }
.intro-note p { margin: 0 0 16px; font-size: 17px; line-height: 1.55; }
.intro-note a { color: var(--lime); text-decoration: underline; text-underline-offset: 4px; }
.article-layout { max-width: 1380px; margin: auto; padding: 0 var(--pad) 88px; display: grid; grid-template-columns: 240px minmax(0,1fr); gap: 72px; border-top: 1px solid var(--rule); }
.page-index { padding-top: 34px; }
.page-index nav { position: sticky; top: 30px; display: grid; gap: 14px; }
.page-index a { color: var(--ink-soft); line-height: 1.4; font-size: 15px; text-underline-offset: 4px; }
.page-index a:hover { color: var(--violet-ink); text-decoration: underline; }
.page-body { min-width: 0; max-width: 820px; }
.content-section { padding: 42px 0; border-bottom: 1px solid var(--rule); }
.content-section h2 { font: 400 clamp(29px,3.2vw,42px)/1.12 var(--serif); letter-spacing: -.02em; margin: 0 0 24px; text-wrap: balance; }
.content-section h3 { font: 500 20px/1.35 var(--sans); margin: 32px 0 12px; }
.content-section p, .content-section li { font-size: 17px; line-height: 1.7; max-width: 72ch; }
.content-section p { margin: 0 0 18px; }
.content-section ul, .content-section ol { padding-left: 22px; margin: 16px 0; }
.content-section li { margin-bottom: 10px; }
.content-section a, .case-page main p a { color: var(--violet-ink); text-decoration: underline; text-underline-offset: 4px; }
.price-line { font: 400 34px/1.2 var(--serif); color: var(--violet-ink); margin-bottom: 22px; }
.scope-note { font-size: 15px !important; color: var(--ink-soft); }
.page-close { background: var(--dark); color: var(--on-dark); padding: 68px var(--pad); display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.page-close h2 { font: 400 clamp(32px,4vw,52px)/1.1 var(--serif); max-width: 22ch; margin: 0; }
.page-close a { flex-shrink: 0; }
.site-bottom { padding: 56px var(--pad) 28px; background: var(--paper); color: var(--ink); }
.footer-grid { max-width: 1276px; margin: auto; display: grid; grid-template-columns: 1.5fr 1fr 1fr 1.2fr; gap: 36px; }
.footer-grid .wordmark { display: inline-block; margin-bottom: 16px; }
.footer-grid .wordmark span { color: var(--violet-ink); }
.footer-grid p, .footer-grid a { font-size: 15px; line-height: 1.65; overflow-wrap: anywhere; }
.footer-grid nav { display: grid; align-content: start; gap: 10px; }
.footer-grid h2 { font: 500 16px/1.4 var(--sans); margin: 0 0 8px; }
.footer-grid a:hover { text-decoration: underline; text-underline-offset: 4px; }
.footer-end { max-width: 1276px; margin: 36px auto 0; padding-top: 20px; border-top: 1px solid var(--rule); color: var(--ink-soft); font-size: 14px; }
.inquiry-grid { max-width: 1276px; margin: auto; padding: 16px var(--pad) 88px; display: grid; grid-template-columns: 1fr 1.5fr; gap: 64px; }
.contact-options h2 { font: 400 32px/1.15 var(--serif); margin: 0 0 20px; }
.contact-options p { line-height: 1.65; margin: 0 0 24px; }
.contact-options a:not(.pill) { color: var(--violet-ink); text-decoration: underline; overflow-wrap: anywhere; }
.inquiry-form { display: grid; gap: 24px; min-width: 0; }
.field-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.inquiry-form label { display: grid; gap: 10px; font-weight: 500; font-size: 16px; }
.inquiry-form input, .inquiry-form select, .inquiry-form textarea, #brief-output { width: 100%; min-width: 0; border: 1px solid #9d94a9; border-radius: 8px; background: #fff; padding: 14px; font: 400 16px/1.5 var(--sans); color: var(--ink); }
.inquiry-form input::placeholder, .inquiry-form textarea::placeholder { color: #625c78; opacity: 1; }
.inquiry-form textarea { min-height: 160px; resize: vertical; }
.inquiry-form button { justify-self: start; border: 0; cursor: pointer; font-family: inherit; }
.form-note { color: var(--ink-soft); font-size: 15px; line-height: 1.6; margin: 0; }
#prepared-brief { margin-top: 10px; padding: 24px; background: var(--paper-2); border-radius: 12px; }
#prepared-brief h2 { font: 400 30px/1.2 var(--serif); margin: 0 0 16px; }
#brief-output { min-height: 240px; margin: 18px 0; resize: vertical; }
.brief-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.brief-actions button { border: 1px solid var(--ink); padding: 12px 16px; border-radius: 99px; background: transparent; color: var(--ink); }
#brief-status { line-height: 1.6; font-size: 16px; }
.faq-stack details { border-bottom: 1px solid var(--rule); padding: 22px 0; }
.faq-stack summary { font-size: 20px; font-weight: 500; cursor: pointer; }
.faq-stack details p { margin: 18px 0 0; }
.case-page main { font-family: var(--sans); }
.case-page main h1, .case-page main h2 { font-family: var(--serif); font-weight: 400; letter-spacing: -.025em; }
.case-page .page-hero { padding-top: 72px; }
.case-page .site-bottom h2 { font-family: var(--sans); }
.hero-kicker, .eyebrow { display: none; }
.pill-lime:hover, .pill-violet:hover { box-shadow: none; }
.pill { min-height: 44px; }
@media(max-width:1000px) { .top .nav-links,.top .nav-plain { display:none; } .top .menu-btn { display:block; } .page-intro { gap:32px; } .article-layout { grid-template-columns:180px minmax(0,1fr); gap:36px; } .inquiry-grid { gap:36px; } }
@media(max-width:700px) { .top .nav { padding:20px; } .top .nav-right>.pill { display:none; } .page-intro { grid-template-columns:1fr; gap:28px; padding-top:48px; } .intro-note { padding:24px; } .article-layout { grid-template-columns:1fr; gap:8px; padding-bottom:48px; } .page-index { border-bottom:1px solid var(--rule); padding:24px 0; } .page-index nav { position:static; grid-template-columns:1fr 1fr; gap:16px; } .content-section { padding:32px 0; } .footer-grid { grid-template-columns:1fr 1fr; gap:32px 24px; } .footer-grid>div:first-child { grid-column:1/-1; } .page-close { flex-direction:column; align-items:flex-start; padding:48px 20px; } .inquiry-grid { grid-template-columns:1fr; gap:44px; } .field-pair { grid-template-columns:1fr; } .inquiry-form button[type=submit] { width:100%; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation:none!important; transition:none!important; } }
