/* SageHammer site overrides on top of v06-base.css.
   1) Brand lockup: the effective final rules from V06 (decision SH-BRAND-WEB-WORDMARK-2026-10-12-06),
      consolidated. The superseded brightness(2.2) / SVG-ornament block from V06 is intentionally dropped;
      in V06 it was already neutralised by `filter:none!important`, so rendering is unchanged.
   2) Portfolio: grouped cards for scope SH-WEB-PUBLIC-SCOPE-2026-10-15-01.
   3) About (V09, GitHub issue #4). */

/* ---------- 1. Brand lockup (header + footer) ---------- */
.brand-link{gap:10px}
.brand-link__emblem{width:72px;height:72px;flex-shrink:0}
.footer-main__brand{gap:12px}
.footer-main__emblem{flex-shrink:0}
.brand-link__wordmark,
.footer-main__wordmark{display:flex;align-items:center;justify-content:center;background:transparent;border:0;border-radius:0;box-shadow:none;overflow:visible;padding:0;line-height:0;height:auto}
.brand-link__wordmark{width:242px;max-width:calc(100vw - 140px);flex-shrink:1}
.footer-main__wordmark{width:222px;max-width:calc(100vw - 160px)}
.selected-wordmark{display:block;width:100%;height:auto;object-fit:contain}
.footer-contact strong{color:#eef5fb}
.footer-contact a{text-decoration:underline;text-decoration-color:#b6805999;text-underline-offset:5px}
.footer-contact a:hover{text-decoration-color:var(--sh-copper-500)}
@media(max-width:850px){
  .brand-link__emblem{width:61px;height:61px}
  .brand-link__wordmark{width:207px}
}
@media(max-width:650px){
  .brand-link{gap:6px}
  .brand-link__emblem{width:51px;height:51px}
  .brand-link__wordmark{width:min(49vw,192px);max-width:calc(100vw - 118px)}
  .footer-main__wordmark{width:min(52vw,194px)}
}
@media(max-width:370px){
  .brand-link__wordmark{width:159px}
  .footer-main__wordmark{width:167px}
}

/* ---------- 2. Portfolio ---------- */
.portfolio-group+.portfolio-group{margin-top:clamp(2.75rem,5vw,4rem)}
.portfolio-group__head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:1.25rem;padding-bottom:.85rem;border-bottom:1px solid #cfdbe4}
.portfolio-group__title{margin:0;color:var(--sh-ink);font-family:var(--sh-font-editorial);font-size:clamp(1.45rem,2.2vw,1.9rem);font-weight:600;letter-spacing:-.03em;line-height:1.2}
.portfolio-group__count{color:#476f8c;font-family:var(--sh-font-mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap}
.portfolio-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:0;padding:0;list-style:none}
.portfolio-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:clamp(2.75rem,4vw,3rem) clamp(28px,3.4vw,48px)}
.portfolio-split .portfolio-group+.portfolio-group{margin-top:0}
.portfolio-split .portfolio-grid--studio{grid-template-columns:1fr}
.portfolio-split .portfolio-grid--physical{grid-template-columns:repeat(2,minmax(0,1fr))}
.portfolio-card{position:relative;display:flex;flex-direction:column;height:100%;overflow:hidden;border:1px solid #dce6ee;border-radius:6px;background:#fff;box-shadow:0 12px 35px #15344c0a;transition:transform .2s,box-shadow .2s}
.portfolio-card:hover{transform:translateY(-3px);box-shadow:0 18px 48px #15344c15}
/* V08: graphic-led media banner (decision: GitHub issue #3) */
.portfolio-card__media{position:relative;aspect-ratio:1.9 / 1;overflow:hidden;background:#17314a;border-bottom:3px solid var(--sh-steel-600)}
.portfolio-card--studio .portfolio-card__media{border-bottom-color:var(--sh-navy-800)}
.portfolio-card--physical .portfolio-card__media{border-bottom-color:var(--sh-slate-400)}
.portfolio-card__media img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.portfolio-card__media--photo img{object-position:50% 35%}
.portfolio-card__body{display:flex;flex:1;flex-direction:column;padding:22px 26px 22px}
.portfolio-card__code{display:block;margin-bottom:.7rem;color:var(--sh-steel-600);font-family:var(--sh-font-mono);font-size:.72rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase}
.portfolio-card__title{margin:0 0 .6rem;color:var(--sh-ink);font-family:var(--sh-font-editorial);font-size:clamp(1.18rem,1.5vw,1.36rem);font-weight:650;letter-spacing:-.03em;line-height:1.3}
.portfolio-card__summary{flex:1;margin:0 0 1.1rem;color:var(--sh-body);font-size:.93rem;line-height:1.6}
.portfolio-card__note{margin:-.4rem 0 1.1rem;color:#5d6d7c;font-size:.8rem;line-height:1.5}
.portfolio-card .stage-label{margin-top:auto}
.portfolio-footnote{max-width:760px;margin:clamp(2.25rem,4vw,3rem) 0 0;color:#5d6d7c;font-size:.84rem;line-height:1.6}
/* V09: a lone last Digital card sits centered at ordinary tile width instead of hanging at the row start */
@media(min-width:851px){
  .portfolio-grid--digital>li:last-child:nth-child(3n+1){grid-column:2}
}
@media(max-width:1100px){
  .portfolio-card__body{padding-inline:21px}
}
@media(min-width:651px) and (max-width:850px){
  .portfolio-grid--digital>li:last-child:nth-child(2n+1){grid-column:1 / -1;justify-self:center;width:calc((100% - 20px) / 2)}
}
@media(max-width:850px){
  .portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .portfolio-split{grid-template-columns:1fr}
}
@media(max-width:650px){
  .portfolio-grid,
  .portfolio-split .portfolio-grid--physical{grid-template-columns:1fr;gap:16px}
  .portfolio-card__body{padding:18px 20px 18px}
}
@media(prefers-reduced-motion:reduce){
  .portfolio-card:hover{transform:none}
}

/* ---------- 3. About (V09) ---------- */
.about-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1.25rem,4vw,3.5rem);padding-top:clamp(1.5rem,2.5vw,2rem);border-top:1px solid #cfdbe4}
.about-body p{margin:0;color:var(--sh-body);font-size:1rem;line-height:1.75}
@media(max-width:850px){
  .about-body{grid-template-columns:1fr}
}

/* V09.1: restricted founder refinements, with the accepted V06/V09 design retained. */
.about-body > p:only-child{grid-column:1 / -1;max-width:880px}
.footer-copyright{font-weight:800;color:#edf5fb;letter-spacing:.09em;text-transform:none}
.contact-page .section-head{margin-bottom:clamp(1.5rem,3vw,3rem)}
.contact-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(245px,.85fr);gap:clamp(2rem,6vw,5rem);align-items:start}
.contact-form{padding:clamp(1.4rem,3vw,2.2rem);border:1px solid var(--sh-border);background:#fff;border-radius:var(--sh-radius);box-shadow:0 12px 35px #15344c0a}
.contact-form__row{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
.contact-form__field{display:flex;flex-direction:column;gap:.45rem;margin-bottom:1.2rem}
.contact-form label{font-size:.88rem;font-weight:700;color:var(--sh-ink)}
.contact-form input,.contact-form textarea{width:100%;max-width:100%;min-width:0;padding:.78rem .9rem;border:1px solid #b9cad6;border-radius:4px;background:#fafcfd;color:var(--sh-ink);font:inherit;font-size:1rem}
.contact-form input:focus-visible,.contact-form textarea:focus-visible{outline:3px solid var(--sh-steel-300);outline-offset:2px;border-color:var(--sh-steel-600)}
.contact-form textarea{min-height:155px;resize:vertical}
.contact-form__note{font-size:.81rem;line-height:1.6;color:#5d6d7c;margin:1rem 0 0}
.contact-info{padding-top:.65rem}
.contact-info h2{font-size:clamp(1.5rem,2.5vw,2rem);font-family:var(--sh-font-editorial);font-weight:600;margin:0 0 .75rem}
.contact-info p{color:var(--sh-body);line-height:1.7}
.contact-info a{color:#355f7b;text-decoration:underline;text-decoration-color:var(--sh-copper-500);text-underline-offset:4px;overflow-wrap:anywhere}
@media(max-width:850px){.contact-layout{grid-template-columns:1fr}}
@media(max-width:650px){.contact-form__row{grid-template-columns:1fr;gap:0}.contact-form{padding:1.2rem}.footer-copyright{letter-spacing:.035em}}

/* V09.2 — exact founder instruction: same footer lockup, positioned above email on right. */
.footer-contact .footer-main__brand{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:12px;
  width:100%;
  margin-bottom:22px;
}
.footer-contact .footer-main__emblem{flex-shrink:0}
.site-footer .footer-end{padding-top:28px}
@media(max-width:850px){
  .footer-contact .footer-main__brand{justify-content:flex-start}
}

/* V09.4: continuous About copy beneath the existing heading. */
.about-body--continuous{border-top:0;padding-top:0}

/* V09.5 — displayed only after the contact API confirms provider acceptance. */
.contact-receipt[hidden]{display:none!important}
.contact-receipt{padding:clamp(1.4rem,3vw,2.2rem);border:1px solid var(--sh-border);background:#fff;border-radius:var(--sh-radius);box-shadow:0 12px 35px #15344c0a;outline:none}
.contact-receipt:focus-visible{outline:3px solid var(--sh-steel-300);outline-offset:3px}
.contact-receipt__mark{display:grid;place-items:center;width:3rem;height:3rem;border-radius:50%;background:#eaf2f4;color:#2e6179;font-size:1.7rem;font-weight:800;margin:0 0 1.2rem}
.contact-receipt h2{margin:0 0 .85rem;color:var(--sh-ink);font-family:var(--sh-font-editorial);font-size:clamp(1.5rem,2.5vw,1.9rem);font-weight:650;line-height:1.2}
.contact-receipt p{margin:0 0 1rem;color:var(--sh-body);line-height:1.7}
.contact-receipt__reference{font-size:.82rem;color:#5d6d7c!important}
.contact-receipt__reference code{font:inherit;font-family:var(--sh-font-mono);overflow-wrap:anywhere}
.contact-receipt__again{display:inline-block;color:#355f7b;font-weight:700;text-decoration:underline;text-decoration-color:var(--sh-copper-500);text-underline-offset:4px}
@media(max-width:650px){.contact-receipt{padding:1.2rem}}
