/* Shared type scale and photographic layouts, September 2026. */
:root {
  --section-title: clamp(2rem, 3.3vw, 3rem);
  --subsection-title: clamp(1.375rem, 2vw, 1.625rem);
}
h1,h2,h3,h4 { letter-spacing: -.012em; word-spacing: .045em; }
.source-faithful main .section h2 { font-size: var(--section-title); line-height: 1.22; letter-spacing: -.02em; text-wrap: balance; }
.source-faithful main .section h3 { font-size: var(--subsection-title); line-height: 1.4; letter-spacing: -.01em; }
.source-faithful main p,.source-faithful main li { letter-spacing: normal; word-spacing: normal; overflow-wrap: anywhere; }
.source-faithful .source-stats { gap: 24px; padding-inline: 48px; }
.source-faithful .source-stats strong { font-size: clamp(1.375rem, 2.05vw, 1.875rem); font-weight: 500; line-height: 1.3; letter-spacing: -.015em; word-spacing: .035em; }
.source-faithful .source-stats span { font-size: .9375rem; line-height: 1.65; }
.source-faithful .source-stats>div { padding-right: 20px; min-width: 0; }
.source-faithful .source-stats>div:last-child { padding-right: 0; }
.source-history h3 { max-width: 1020px; word-spacing: .12em; text-wrap: balance; }
.source-about .about-grid { gap: 48px; align-items: center; }
.source-about .about-portrait { height: auto; width: 100%; margin: 0; overflow: visible; border-radius: 0; background: none; }
.founder-photo { position: relative; isolation: isolate; height: 510px; overflow: visible; background: none; }
.founder-photo:before { content: ""; position: absolute; inset: -60px -80px -10px; z-index: -1; background: radial-gradient(ellipse at 60% 45%,#d2e5f3aa,transparent 68%); filter: blur(20px); pointer-events: none; }
.founder-photo img { width: 100%; height: 100%; object-fit: contain; object-position: center bottom; mask-image: linear-gradient(#000 0%,#000 68%,transparent 100%); -webkit-mask-image: linear-gradient(#000 0%,#000 68%,transparent 100%); }
.source-about .founder-label { position: relative; inset: auto; margin: -30px 0 0; padding: 0 28px 28px; background: none; border: 0; border-radius: 0; box-shadow: none; backdrop-filter: none; }
.source-about .founder-label strong { font-size: 1.125rem; line-height: 1.5; letter-spacing: normal; }
.source-about .founder-label span { font-size: .875rem; line-height: 1.65; }
.source-administration { padding: 0 0 20px; margin-top: 42px; overflow: visible; background: none; border: 0; border-radius: 0; isolation: isolate; }
.source-administration:before { content: ''; position: absolute; inset: -42px -60px -24px; z-index: -2; pointer-events: none; background: linear-gradient(180deg,transparent,#e9edef 42px); }
.administration-intro { position: relative; isolation: isolate; margin: 0 -60px; padding: 38px 60px; min-height: 410px; display: flex; align-items: center; }
.administration-copy { width: 51%; position: relative; z-index: 1; }
.administration-copy p { font-size: 1rem; line-height: 1.8; color: var(--muted); }
.administration-photo { position: absolute; inset: 0 0 0 40%; z-index: -1; --scene-image: url(assets/consultation.jpg); }
.administration-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 49%; }
.administration-photo:after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg,#e9edef,transparent 38%),linear-gradient(0deg,#e9edef,transparent 35%),linear-gradient(180deg,#e9edef,transparent 15%); }
.source-administration>p { margin-top: 12px; }
.source-administration .complete-list { gap: 20px 40px; border-top: 1px solid var(--line); }
.source-benefits { background: #e9edef; }
.source-benefits .section-heading { max-width: 800px; }
.benefits-composition { display: grid; grid-template-columns: 1.08fr 1fr; align-items: start; gap: 38px; }
.source-benefit-list { position: relative; z-index: 1; }
.source-benefit-list article { display: block; padding: 25px 0; }
.source-benefit-list h3 { margin-bottom: 12px; }
.source-benefit-list p { font-size: 1rem; line-height: 1.8; }
.benefits-photo { --scene-image: url(assets/production.jpg); position: sticky; top: 140px; height: 720px; margin: -50px -60px 0 -40px; align-self: start; }
.benefits-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; }
.benefits-photo:after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg,#e9edef,transparent 28%),linear-gradient(0deg,#e9edef,transparent 25%),linear-gradient(180deg,#e9edef,transparent 14%); }
.source-faithful .source-industries { background: #e9edef; overflow: clip; }
.source-industries .section-heading { display: flex; max-width: none; align-items: start; }
.source-industries .section-intro { margin-top: 0; max-width: 440px; }
.industry-explorer { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.15fr); gap: 48px; align-items: start; }
.source-industry-grid { display: block; padding: 0; border: 0; border-top: 1px solid var(--line); border-radius: 0; background: none; backdrop-filter: none; }
.source-industry-grid .industry-choice { padding: 0; border-bottom: 1px solid var(--line); }
.source-faithful main .source-industry-grid h3 { font-size: 1.25rem; margin: 0; }
.industry-choice button { display: block; width: 100%; border: 0; background: none; text-align: left; padding: 18px 0 12px; font-weight: 500; letter-spacing: normal; line-height: 1.45; transition: color .2s; }
.industry-choice button:hover,.industry-choice.is-active button { color: #286a91; }
.industry-choice.is-active { box-shadow: none; }
.industry-choice.is-active button,.industry-choice.is-active .industry-detail { padding-left: 20px; }
.industry-choice .industry-detail { padding: 0 0 20px; }
.industry-choice .industry-detail p { font-size: 1rem; line-height: 1.7; }
.industry-inline-scene { display: none; }
.industry-inline-image { display: block; }
.industry-preview { position: sticky; top: 126px; height: 650px; margin: -32px -60px 0 -80px; overflow: visible; border: 0; border-radius: 0; background: none; isolation: isolate; pointer-events: none; }
.industry-preview img { width: 100%; height: 100%; object-fit: cover; object-position: 55% center; transition: opacity .25s ease; }
.industry-preview:after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg,#e9edef,transparent 30%),linear-gradient(0deg,#e9edef,transparent 25%),linear-gradient(180deg,#e9edef,transparent 16%); pointer-events: none; }
.industry-preview figcaption { display: none; }
.industry-choice button:focus-visible { outline-offset: -3px; border-radius: 3px; }
@media(min-width:851px) {
  .industry-choice button,.industry-choice .industry-detail { padding-left: 20px; }
}
.source-industries .source-cta { margin-top: 36px; background: none; border-top: 1px solid var(--line); border-radius: 0; padding: 28px 0 0; }
.source-faithful .route-tabs button { font-size: .9375rem; }
.source-faithful .source-contact-group h3 { font-size: .9375rem; letter-spacing: normal; }
.source-faithful .footer h2 { letter-spacing: normal; word-spacing: normal; }
.legal-page h1,.legal-page h2 { letter-spacing: -.015em; word-spacing: .045em; }
@media(max-width:1100px) {
  .source-faithful .source-stats { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 26px 36px; padding-inline: 36px; }
  .source-faithful .source-stats strong { font-size: 1.75rem; }
  .source-stats>div:nth-child(2) { border: 0; }
  .source-about .about-grid { gap: 32px; }
  .founder-photo { height: 420px; }
  .administration-copy { width: 53%; }
  .benefits-composition { gap: 24px; }
  .benefits-photo { height: 620px; }
  .industry-explorer { gap: 30px; }
  .industry-preview { height: 570px; margin-right: -42px; margin-left: -65px; }
}
@media(max-width:850px) {
  .source-about .about-grid { grid-template-columns: 1fr; }
  .source-about .about-portrait { max-width: 500px; margin-inline: auto; }
  .administration-intro { display: block; margin-inline: -42px; padding: 32px 42px 0; }
  .administration-copy { width: 100%; }
  .administration-photo { position: relative; inset: auto; height: 340px; margin: 22px -42px 0; }
  .administration-photo img { object-position: center 51%; }
  .administration-photo:after { background: linear-gradient(180deg,#e9edef,transparent 20%),linear-gradient(0deg,#e9edef,transparent 25%); }
  .benefits-composition { grid-template-columns: 1fr; gap: 0; }
  .benefits-photo { position: relative; inset: auto; grid-row: 1; height: 420px; margin: -20px -40px 12px; }
  .benefits-photo img { object-position: 50% 22%; }
  .benefits-photo:after { background: linear-gradient(180deg,#e9edef,transparent 14%),linear-gradient(0deg,#e9edef,transparent 25%); }
  .source-benefit-list article { padding-block: 24px; }
  .industry-explorer { grid-template-columns: 1fr; }
  .industry-preview { display: none; }
  .industry-inline-scene { display: block; position: relative; isolation: isolate; margin: 12px -42px -4px -62px; }
  .industry-inline-image { display: block; width: 100%; height: auto; aspect-ratio: 3/2; object-fit: cover; border: 0; border-radius: 0; margin: 0; }
  .source-industries .section-heading { display: block; }
  .source-industries .section-intro { margin-top: 20px; }
}
@media(max-width:600px) {
  :root { --section-title: 2rem; --subsection-title: 1.375rem; }
  .source-faithful .hero h1 { letter-spacing: -.025em; }
  .source-faithful .source-stats { padding-inline: 12px; gap: 24px 20px; }
  .source-faithful .source-stats strong { font-size: clamp(1.125rem,5vw,1.5rem); }
  .source-faithful .source-stats span { font-size: .875rem; }
  .source-faithful .source-stats>div { padding-right: 8px; }
  .source-about .about-grid { gap: 30px; }
  .source-about .about-portrait { width: 100%; margin: 0; border-radius: 0; }
  .founder-photo { height: 370px; }
  .source-about .founder-label { padding: 0 20px 24px; margin-top: -24px; }
  .source-about .founder-label strong { font-size: 1.0625rem; }
  .source-about .founder-label span { font-size: .875rem; }
  .source-history h3 { word-spacing: .08em; text-wrap: initial; }
  .source-administration { padding: 0 0 6px; margin-top: 24px; }
  .administration-intro { margin-inline: -25px; padding: 26px 25px 0; }
  .administration-photo { margin: 20px -25px 0; height: 320px; }
  .source-administration .complete-list { gap: 18px; padding-top: 20px; }
  .source-administration>p { margin-top: 10px; }
  .benefits-photo { height: 350px; margin: -15px -25px 0; }
  .source-faithful .source-industries .section-heading h2 { font-size: var(--section-title); }
  .source-faithful main .source-industry-grid h3 { font-size: 1.1875rem; }
  .industry-choice button { padding-block: 20px; }
  .industry-choice.is-active button,.industry-choice.is-active .industry-detail { padding-left: 15px; }
  .industry-inline-scene { margin-inline: -40px -25px; }
  .industry-inline-image { aspect-ratio: 4/3; }
  .source-faithful .route-tabs { width: 100%; gap: 4px; border-radius: 22px; padding: 5px; }
  .source-faithful .route-tabs button { font-size: .875rem; padding: 10px 8px; min-height: 48px; }
  .source-faithful .route-tabs button:nth-child(2) { flex: 1; }
  .source-faithful .mobile-contact { font-size: .875rem; }
  .source-faithful .contact-form-box>p { font-size: 1rem; }
}
@media(max-width:375px) {
  .source-faithful .source-stats strong { min-height: 2.6em; }
  .founder-photo { height: 310px; }
  .benefits-photo { margin-inline: -22px; height: 310px; }
  .source-faithful main .section h2 { font-size: 1.875rem; }
  .source-administration { padding-inline: 0; }
  .administration-intro { margin-inline: -22px; padding-inline: 22px; }
  .administration-photo { margin-inline: -22px; height: 280px; }
  .industry-inline-scene { margin-inline: -37px -22px; }
}

/* Photographs dissolve into the section, following the MKA background treatment. */
.administration-photo,.benefits-photo,.industry-inline-scene { isolation: isolate; }
.administration-photo:before,.benefits-photo:before,.industry-preview:before,.industry-inline-scene:before {
  content: ''; position: absolute; inset: -18px; z-index: -1; pointer-events: none;
  background-image: var(--scene-image); background-size: cover; background-position: center;
  filter: blur(24px); opacity: .35;
  mask-image: radial-gradient(ellipse at center,#000 25%,transparent 72%);
  -webkit-mask-image: radial-gradient(ellipse at center,#000 25%,transparent 72%);
}
.industry-preview img,.industry-inline-image {
  --photo-mask-x: linear-gradient(90deg,transparent,#000 20%,#000 88%,transparent);
  --photo-mask-y: linear-gradient(180deg,transparent,#000 12%,#000 77%,transparent);
  mask-image: var(--photo-mask-x),var(--photo-mask-y);
  -webkit-mask-image: var(--photo-mask-x),var(--photo-mask-y);
  mask-composite: intersect; -webkit-mask-composite: source-in;
}
.industry-inline-scene:after {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(180deg,#e9edef,transparent 12%),linear-gradient(0deg,#e9edef,transparent 20%);
}
.source-services .scene-backdrop img,.source-support>.scene-backdrop img {
  mask-image: linear-gradient(180deg,transparent,#000 12%,#000 85%,transparent);
  -webkit-mask-image: linear-gradient(180deg,transparent,#000 12%,#000 85%,transparent);
}
@media(min-width:851px) and (max-width:1150px) {
  .administration-intro { margin-inline: -42px; padding-inline: 42px; }
}
@media(max-width:1150px) { .source-administration:before { left: -42px; right: -42px; } }
@media(max-width:600px) { .source-administration:before { top: -24px; left: -25px; right: -25px; background: linear-gradient(180deg,transparent,#e9edef 24px); } }
@media(max-width:375px) { .source-administration:before { left: -22px; right: -22px; } }
