/* Nordic pine identity: living green + mist. Loaded after page layouts. */
:root {
  --pine: #7A7654;
  --pine-dark: #5C5940;
  --mist: #F3F2EB;
  --ink: #7A7654;
  --bg: var(--mist);
  --surface: #EBE9E0;
  --surface-2: #E0DDD2;
  --text: var(--ink);
  --muted: #9A9575;
  --accent: var(--pine);
  --line: #C7C4B4;
}
body { background: var(--mist); color: var(--text); }
::selection { background: var(--pine); color: var(--mist); }
.skip-link { color: var(--mist); }
.brand { display: inline-flex; flex: 0 0 auto; align-items: center; color: var(--pine); }
.brand-logo {
  --logo-width: 238px;
  display: inline-flex;
  align-items: center;
  gap: calc(var(--logo-width) * .035);
  width: var(--logo-width);
  height: 58px;
}
.brand-symbol {
  flex: 0 0 50%;
  aspect-ratio: 1130 / 457;
  background: currentColor;
  /* Frame the original transparent image without resampling or changing its curves. */
  -webkit-mask: url('pw-momentum-symbol.png') 55.645161% 53.952321% / 110.973451% 274.398249% no-repeat;
  mask: url('pw-momentum-symbol.png') 55.645161% 53.952321% / 110.973451% 274.398249% no-repeat;
}
.brand-name {
  font: 400 calc(var(--logo-width) * .098) / 1 var(--body);
  letter-spacing: -.035em;
  white-space: nowrap;
}
.brand-name strong {
  font-weight: 900;
  letter-spacing: -.045em;
}
.header { position:sticky; top:0; z-index:200; background:color-mix(in srgb, var(--mist) 86%, transparent); backdrop-filter:saturate(1.2) blur(12px); -webkit-backdrop-filter:saturate(1.2) blur(12px); }
.desktop-nav a, .login-link { color: var(--ink); }
.desktop-nav a:hover, .desktop-nav a[aria-current], .login-link:hover { color: var(--pine); }
.login-link:hover { background: var(--surface); }
.button, .header-cta { background: var(--pine); color: var(--mist); border-color: var(--pine); }
.button:hover, .header-cta:hover { background: var(--pine-dark); border-color: var(--pine-dark); color: var(--mist); }
.button-secondary { background: transparent; color: var(--pine); border-color: var(--pine); }
.button-secondary:hover { background: var(--surface-2); color: var(--pine-dark); }
.muted-heading { color: var(--pine); }
.hero-note, .coming-note, .action-note, .breadcrumb { color: var(--muted); }
.service-number { color: var(--accent); }
.round-arrow, .family-arrow, .home-portal-parts>li, .steps article { border-color: var(--line); }
.proof-strip { background: var(--surface); }
.service-family { background: var(--surface); }
.service-family:nth-child(2) { background: var(--surface-2); }
.family-links>a:hover .family-arrow, .family-links>a:focus-visible .family-arrow {
  background: var(--pine); color: var(--mist);
}
.home-method { background: var(--surface); border-color: var(--line); }
.home-coach { background: var(--surface); color: var(--ink); }
.coach-photo { background: var(--pine-dark); }
.coach-story .eyebrow, .coach-story .text-link { color: var(--pine); }
.coach-story p { color: var(--muted); }
.coach-story .coach-lead { color: var(--ink); }
.coach-story .text-link { border-color: var(--line); }
.coach-story .text-link:hover { color: var(--pine-dark); }
.coach-story :focus-visible { outline-color: var(--pine); }
.home-portal-status, .portal-introduction>.portal-app-note { color: var(--muted); }
.detail-photo figcaption, .contact-person>span, .portrait-caption,
.coach-photo figcaption, .image-topline, .hero-image-bottom, .image-side-label {
  color: var(--mist);
}
.coach-photo::after { background: linear-gradient(transparent, #14241ebd); }
.detail-photo::after { background: linear-gradient(transparent, #14241ea6); }

/* Open, inviting hero: mist wash over the film, pine actions. */
.campaign-hero { color: #7A7654; }

.campaign-image img, .campaign-image video {
  filter: saturate(1.04) brightness(1.03) contrast(1.02);
}
.coach-photo img { filter: saturate(1.02) brightness(1.02); }
.portrait-wrap img, .detail-photo img, .about-hero-image img, .contact-person img,
.hero-photo, .service-image img { filter: saturate(1.02) brightness(1.03); }
.detail-photo video { filter: saturate(1.02); }
.detail-hero-fascia .detail-photo video { filter: saturate(1.02) brightness(.78); }
.detail-hero-fascia .detail-photo::after {
  inset:0;
  background:radial-gradient(ellipse at center, transparent 40%, rgba(0,0,0,.28) 100%), linear-gradient(transparent 50%, #14241ea6);
}

.campaign-proof { border-color: #7A765455; }
.campaign-copy .eyebrow { color: var(--pine); }
.campaign-copy h1 { color: var(--ink); }
.campaign-copy .button { color: var(--mist); background: var(--pine); border-color: var(--pine); }
.campaign-copy .button:hover { background: var(--pine-dark); border-color: var(--pine-dark); }
.campaign-copy .button-secondary { color: var(--pine); background: transparent; border-color: var(--pine); }
.campaign-copy .button-secondary:hover { background: var(--surface-2); border-color: var(--pine-dark); color: var(--pine-dark); }
.hero-playback {
  color: var(--mist); background: #5C5940e6; border-color: #f3f3f0a6;
}
.hero-playback svg { color: var(--mist); }
.hero-playback:hover { background: var(--pine-dark); border-color: var(--mist); }
.hero-playback:focus-visible { outline-color: var(--pine); }

.contact-band, .home-contact, .footer {
  --bg: var(--pine);
  --text: var(--mist);
  --muted: #9A9575;
  --accent: var(--mist);
  --line: #C7C4B4;
  color: var(--mist);
  background: var(--pine);
}
.page-home .footer { background: var(--pine); }
.footer .brand { color: var(--mist); }
.footer-top { grid-template-columns: 1.15fr .85fr 1fr; }
.footer .brand-logo { --logo-width: 252px; }
.footer-bottom { color: var(--mist); }
.contact-band .eyebrow, .contact-band p,
.home-contact .eyebrow, .home-contact-bottom p, .home-contact h2>span {
  color: var(--mist);
}
.home-contact, .home-contact-bottom { border-color: var(--line); }
.contact-orbit { color: var(--mist); border-color: #f3f3f0a6; }
.contact-orbit:hover { background: var(--mist); color: var(--pine); }
.contact-band .button, .home-contact .button {
  background: var(--mist); color: var(--pine-dark); border-color: var(--mist);
}
.contact-band .button:hover, .home-contact .button:hover {
  background: #e4f2ed; color: var(--pine-dark); border-color: #e4f2ed;
}

.online-film, .recovery-feature { background: var(--surface); border-color: var(--line); }
.recovery-feature { border-top-color: var(--pine); }
.online-film { box-shadow: 0 22px 55px #14241e14; }
.film-player { background: var(--ink); }
.film-play { color: var(--mist); background: var(--pine); border-color: var(--mist); }
.film-play:hover { background: var(--pine-dark); }
.film-play:focus-visible { outline-color: var(--mist); }

@media(max-width:1100px) {
  .brand-logo { --logo-width: 216px; height: 54px; }
}
@media(max-width:900px) {
  .header-inner { gap: 18px; }
  .footer-top { grid-template-columns: 1fr 1fr; }
  .footer-top>.brand { grid-column: 1 / -1; }
  
}
@media(max-width:620px) {
  .brand-logo { --logo-width: clamp(146px, 43vw, 200px); height: 46px; }
  .header-inner { gap: 10px; }
  .header-actions { gap: 8px; }
  .login-link { padding: 9px 11px; font-size: 13px; }
  .footer-top { grid-template-columns: 1fr; }
  .footer .brand-logo { --logo-width: 252px; height: 64px; }
  
}
@media(max-width:360px) {
  .brand-logo { --logo-width: 138px; height: 40px; }
  .header-actions { gap: 6px; }
  .login-link { padding-inline: 9px; }
}



/* Test correction: preserve the moss palette with readable text and controls. */
:root { --ink:#5C5940; --muted:#68634B; }
.button, .campaign-copy .button, .header-cta { color:#fff; }
.button:hover, .campaign-copy .button:hover, .header-cta:hover { color:#fff; }
.button-secondary, .campaign-copy .button-secondary { color:var(--pine-dark); background:#f3f2ebe6; }
.button svg, .button svg path, .hero-playback span, .hero-playback svg, .hero-playback svg path { color:inherit; }
.hero-playback { color:#fff; }
.footer, .home-contact, .contact-band { --text:#fff; --muted:#fff; color:#fff; }
.footer .brand, .footer .brand-logo, .footer .brand-symbol, .footer .brand-name,
.footer p, .footer span, .footer a, .footer .eyebrow, .footer-bottom,
.home-contact .eyebrow, .home-contact p, .home-contact h2, .home-contact h2>span,
.contact-band .eyebrow, .contact-band p, .contact-band h2 { color:#fff; }
.home-contact .button, .contact-band .button,
.home-contact .button:hover, .contact-band .button:hover { color:var(--pine-dark); }
.campaign-intro, .campaign-proof, .campaign-copy .eyebrow { color:var(--pine-dark); }
.campaign-intro { max-width:480px; }
/* Let the original footage fill the hero and stay visible beneath the copy. */
.campaign-hero { background:#fff; }
.campaign-hero::after {
 background:linear-gradient(90deg,rgba(255,255,255,.65) 0px,rgba(255,255,255,.57) 110px,rgba(255,255,255,.55) max(620px,43%),rgba(255,255,255,.14) 78%,transparent 100%);
}
.campaign-image {
 inset:0 0 0 auto;
 width:min(100%,1100px);
 -webkit-mask-image:none;
 mask-image:none;
}
.campaign-image img, .campaign-image video {
 object-position:center;
 filter:none;
}
.campaign-copy h1 { color:#20281e; text-shadow:0 1px 18px #ffffff55; }
.campaign-intro, .campaign-proof, .campaign-copy .eyebrow { color:#20281e; text-shadow:0 1px 12px #ffffff88; }
@media(min-width:621px) {
 .campaign-inner { min-height:min(80vw,880px); }
}
@media(min-width:1100px) {
 .campaign-image {
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 90px);
  mask-image:linear-gradient(90deg,transparent,#000 90px);
 }
}
@media(max-width:620px) {
 .campaign-image { inset:0; width:100%; }
 .campaign-image img, .campaign-image video { object-position:center 45%; }
 .campaign-hero::after {
  background:linear-gradient(180deg,rgba(255,255,255,.73),rgba(255,255,255,.60) 340px,rgba(255,255,255,.08) 530px,rgba(255,255,255,.10) 610px,rgba(255,255,255,.62));
 }
}

/* Show the portrait in full, without the site's image colour filter. */
.about-hero-image--portrait {
 margin:0;
 width:100%;
 max-width:480px;
 height:auto;
 justify-self:center;
}
.about-hero-image--portrait img {
 height:auto;
 object-fit:contain;
 filter:none;
}
.about-hero-image--portrait figcaption {
 margin-top:12px;
 color:var(--muted);
 font-size:.875rem;
 line-height:1.6;
}

/* Five contact services: three primary cards followed by two wider group offers. */
.contact-person--portrait { width:100%; max-width:400px; height:auto; justify-self:center; }
.contact-person--portrait img { display:block; height:auto; object-fit:contain; filter:none; }
.contact-service-grid { grid-template-columns:repeat(6,minmax(0,1fr)); gap:0; border-top:1px solid var(--line); }
.contact-service { grid-column:span 2; display:flex; flex-direction:column; min-width:0; padding:32px; border-bottom:1px solid var(--line); background:var(--surface); }
.contact-service:not(:nth-child(3n+1)) { border-left:1px solid var(--line); }
.contact-service:nth-child(n+4) { grid-column:span 3; background:transparent; }
.contact-service-meta { display:flex; justify-content:space-between; align-items:center; gap:20px; }
.contact-service-meta .service-number { font-size:.75rem; letter-spacing:.12em; }
.contact-service-meta .contact-format { font-size:.875rem; }
.contact-service h3 { font-size:2rem; line-height:1.15; margin:25px 0 16px; }
.contact-service>p { font-size:1rem; line-height:1.75; margin-bottom:24px; }
.contact-service-actions { display:flex; flex-wrap:wrap; align-items:center; gap:4px 24px; margin-top:auto; padding-top:18px; border-top:1px solid var(--line); }
.contact-service-actions>a { display:inline-flex; align-items:center; gap:10px; min-height:44px; font-size:.875rem; }
.contact-service-actions .contact-read { font-weight:600; }
.contact-service-actions svg { position:static; width:19px; height:19px; flex:none; color:inherit; }
.contact-service-actions>a:hover { text-decoration:underline; text-underline-offset:5px; }
.contact-service-actions>a:focus-visible { outline:2px solid var(--accent); outline-offset:5px; }
.contact-options>.contact-footnote { font-size:.875rem; }
.portal-zenfit { margin-top:30px; padding-block:26px; border-block:1px solid var(--line); }
.portal-zenfit h2 { font-size:2rem; line-height:1.2; }
.portal-zenfit>p { margin-block:12px 20px; font-size:1rem; line-height:1.7; }
.portal-zenfit-actions { display:flex; flex-wrap:wrap; gap:12px; }
.portal-zenfit-actions .button { flex:1 1 220px; justify-content:center; gap:12px; text-align:center; }
.portal-zenfit>.portal-zenfit-note { margin:12px 0 0; font-size:.875rem; }
@media(max-width:1000px) {
 .contact-service-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .contact-service { padding:28px; }
 .contact-service:nth-child(n) { grid-column:span 1; border-left:0; }
 .contact-service:nth-child(3) { grid-column:1 / -1; }
 .contact-service:nth-child(2), .contact-service:nth-child(5) { border-left:1px solid var(--line); }
}
@media(max-width:620px) {
 .contact-service-grid { grid-template-columns:1fr; }
 .contact-service { padding:26px 22px; }
 .contact-service:nth-child(n) { grid-column:1 / -1; border-left:0; }
 .contact-options .section-heading>p { font-size:1rem; }
}

/* Preserve the existing eyebrow typography as the about-page heading. */
.about-hero h1.eyebrow { font-family:var(--body); font-size:12px; }
@media(max-width:620px) { .about-hero h1.eyebrow { font-size:10px; } }
