:root {
  /* ロゴの色 */
  --color-primary:        #0d1b3d; /* ロゴの紺。文字・見出し・線画・ボタン */
  --color-primary-hover:  #1f3a7a; /* 紺のボタンにマウスを乗せたとき */
  --color-accent:         #ff6a00; /* ロゴのオレンジ。丸い矢印ボタン・小さな丸だけに使う */
  --color-accent-text:    #b84a00; /* オレンジで文字を書くとき（ごく一部） */

  /* テキスト */
  --color-text:           #0d1b3d; /* 本文も紺 */
  --color-text-muted:     #5f6676; /* 英字の添え書き・日付・運営表記 */
  --color-text-inverse:   #ffffff; /* 写真や紺の上の文字 */

  /* 背景 */
  --color-bg:             #f5f6f8; /* ページ全体の明るいグレー */
  --color-surface:        #ffffff; /* 角の丸い白いパネル・縦書きラベル */
  --color-ghost:          #ffffff; /* グレーの上の大きな薄い英字 */
  --color-ghost-on-white: #e9ebef; /* 白いパネルの上の大きな薄い英字 */
  --color-bg-dark:        #0d1b3d; /* フッター */
  --color-footer-muted:   #b6bfd1; /* フッター（紺）の上の補足文字。紺とのコントラスト9.15 */

  /* 罫線 */
  --color-border:         #e1e4ea;

  /* 状態 */
  --color-focus:          #ff6a00; /* キーボード操作時のフォーカス枠 */
  --color-error:          #b3261e;

  --font-base: "Zen Kaku Gothic New", "Hiragino Sans", "Yu Gothic", sans-serif;
  --font-en: "Outfit", "Zen Kaku Gothic New", sans-serif;
  --fs-hero-en: clamp(3rem, 6vw, 5rem);
  --fs-ghost: clamp(4.5rem, 10vw, 9rem);
  --ghost-glyph: .78; --stat-chars: 6; --silhouette-opacity: .08; --silhouette-width: 360px; /* 会社情報の代表者紹介の右下のシルエット */ --stat-unit-scale: .6; --stat-num-scale: 1.2; /* 実績の数字以外の文字の大きさ（数字が約1.2倍に見える） */ /* 実績の数字（最長「累計約6,000万円」）が枠に収まる文字数の目安 */ /* 薄い英字1文字あたりの幅（文字の大きさに対する割合）。長い英字を枠に収める計算に使う */;
  --fs-display: clamp(1.75rem, 3vw, 2.5rem);
  --fs-h1: clamp(1.625rem, 3vw, 2.25rem);
  --fs-h2: clamp(1.375rem, 2.4vw, 1.875rem);
  --fs-h3: clamp(1.125rem, 1.8vw, 1.25rem);
  --fs-label: clamp(.875rem, 1.4vw, 1rem);
  --fs-body: clamp(.9375rem, 1.4vw, 1rem);
  --fs-small: clamp(.8125rem, 1.2vw, .875rem);
  --fs-en-sub: clamp(.6875rem, 1vw, .75rem);
  --lh-body: 2.1; --lh-heading: 1.7;
  --ls-body: .08em; --ls-heading: .1em; --ls-en: .06em; --ls-hero: .12em;
  --weight-body: 500; --weight-heading: 700; --weight-display: 900; --weight-en: 600;
  --space-2xs: 4px; --space-xs: 8px; --space-sm: 16px; --space-md: 32px;
  --space-lg: 64px; --space-xl: 96px; --space-2xl: 160px;
  --content-width: 1120px; --content-narrow: 720px; --measure: 34em;
  --gutter: clamp(24px, 6vw, 64px); --section-space: var(--space-xl);
  --radius-sm: 6px; --radius-image: 12px; --radius-card: 20px; --radius-panel: 20px; --radius-full: 999px;
  --shadow-header: 0 1px 0 rgba(13,27,61,.06);
  --z-ghost: -1; --z-base: 0; --z-header: 200; --z-drawer: 300; --z-overlay: 400; --z-skip-link: 700;
  --icon-sm: 16px; --icon-md: 20px; --icon-lg: 32px;
  --duration-fast: .2s; --duration: .4s; --duration-slow: 1s; --duration-hero: 1.6s;
  --ease: cubic-bezier(.25,.8,.25,1); --ease-out: cubic-bezier(.16,1,.3,1); --ease-in: cubic-bezier(.5,0,.75,0);
  --stagger: .12s; --menu-stagger: .06s; --hero-delay: .4s; --caption-delay: .6s;
  --scroll-duration: 2.4s; --ghost-duration: 1.4s; --photo-duration: .6s;
  --fade-offset: 12px; --hero-offset: 12px; --ghost-offset: -24px; --label-offset: -12px; --drawer-offset: -8px;
  --hover-scale: 1.12; --photo-scale: 1.04; --arrow-offset: 4px; --card-arrow-offset: 3px; --external-offset: 2px;
  --header-height: 64px; --logo-height: 32px; --hero-max: 900px;
  --tap-size: 44px; --arrow-small: 32px; --line-width: 1px; --focus-width: 2px; --focus-offset: 3px;
  --hero-shade: linear-gradient(transparent, rgba(13,27,61,.45));
  --ratio-card: 4/3; --ratio-post: 16/10; --ratio-single: 16/9; --ratio-portrait: 3/4;
  --ratio-base: 4/5; --ratio-hero: 9/16; --base-title: clamp(2rem, 5vw, 4rem);
  --portrait-sp: 70%; --company-portrait-sp: 60%; --swipe-card: 83.333%;
  --stroke: 1.5; --zero: 0; --one: 1; --half: 50%; --full: 100%; --screen: 100svh;
  --art-scale: 1.2; /* 線画の大きさの倍率（2026-10-16 1.2倍に） */ --art-width: calc(var(--space-2xl) * 2 * var(--art-scale)); --art-house-width: calc(var(--space-xl) * var(--art-scale) * 1.2); /* 家だけ1.2倍（2026-10-19） */ --art-small-width: calc(var(--space-xl) * var(--art-scale));
  --reduced-duration: .01ms; --sr-size: 1px; --lh-hero: 1.2; --angle-menu: 45deg; --angle-menu-reverse: -45deg; --menu-line-offset: 4px;
}
/* === Foundations === */
html{scroll-behavior:smooth;scroll-padding-top:var(--header-height)}
body{background:var(--color-bg);color:var(--color-text);font:var(--weight-body) var(--fs-body)/var(--lh-body) var(--font-base);letter-spacing:var(--ls-body)}
h1,h2,h3{font-weight:var(--weight-heading);line-height:var(--lh-heading);letter-spacing:var(--ls-heading);overflow-wrap:anywhere}
h1{font-size:var(--fs-h1)}h2{font-size:var(--fs-h2)}h3{font-size:var(--fs-h3)}
p+p{margin-top:var(--space-md)}
:focus-visible{outline:var(--focus-width) solid var(--color-focus);outline-offset:var(--focus-offset)}
section,[id]{scroll-margin-top:calc(var(--header-height) + var(--space-md))}
.l-container{width:calc(var(--full) - var(--gutter) * 2);max-width:var(--content-width);margin-inline:auto}
.l-narrow{width:var(--full);max-width:var(--content-narrow);margin-inline:auto}
.l-main>section:not(.p-hero){margin-block:var(--section-space);position:relative;isolation:isolate}
.c-panel{background:var(--color-surface);border-radius:var(--radius-panel);padding:var(--space-md)}
.c-panel .c-ghost{color:var(--color-ghost-on-white)}
.c-note{font-size:var(--fs-small);color:var(--color-text-muted);margin-block:var(--space-md)}
.c-en,.c-number{font-family:var(--font-en);letter-spacing:var(--ls-en)}
.c-en{font-size:var(--fs-en-sub);color:var(--color-text-muted)}
.c-number{font-size:var(--fs-h2);color:var(--color-accent-text)}
.c-icon{width:var(--icon-md);height:var(--icon-md);flex-shrink:var(--zero);stroke-width:var(--stroke)}
.c-sr-only,.screen-reader-text{position:absolute;width:var(--sr-size);height:var(--sr-size);padding:var(--zero);margin:var(--zero);overflow:hidden;clip-path:inset(var(--half));white-space:nowrap;border:var(--zero)}
.c-skip-link{position:fixed;top:var(--space-xs);left:var(--gutter);z-index:var(--z-skip-link);padding:var(--space-sm);background:var(--color-surface);transform:translateY(calc(-1 * var(--space-2xl)))}
.c-skip-link:focus{transform:none}
.c-line-art{width:var(--full);height:auto;max-width:var(--content-narrow);margin-inline:auto}
/* === Header / navigation === */
.l-header{height:var(--header-height);position:sticky;top:var(--zero);z-index:var(--z-header);background:var(--color-surface)}
.l-header.is-scrolled{box-shadow:var(--shadow-header)}
.l-header__inner{height:var(--full);display:flex;align-items:center;justify-content:space-between;padding-inline:var(--gutter);gap:var(--space-sm)}
.l-header__logo{display:flex;align-items:center;min-height:var(--tap-size)}
.l-header__logo-image{display:block}.l-header__logo-image img{height:var(--logo-height);width:auto}
.l-header__logo-image--plate{background:var(--color-surface);padding:var(--space-xs);border-radius:var(--radius-sm)}
.c-logo-text{font-family:var(--font-en);font-weight:var(--weight-en);font-size:var(--fs-h3);letter-spacing:var(--ls-en)}
.c-nav--primary{display:none}.c-nav-list{list-style:none;margin:var(--zero)}
.c-nav-list a{display:flex;gap:var(--space-xs);align-items:center;min-height:var(--tap-size);position:relative}
.c-nav-list a.is-active::after{content:"";position:absolute;width:var(--space-2xs);height:var(--space-2xs);border-radius:var(--radius-full);background:var(--color-accent);bottom:var(--zero);left:var(--half)}
.menu-button a,.c-button{border-radius:var(--radius-full);background:var(--color-primary);color:var(--color-text-inverse);padding:var(--space-xs) var(--space-md);min-height:var(--tap-size)}
.c-menu-toggle,.c-menu-close{border:var(--zero);background:transparent;min-width:var(--tap-size);min-height:var(--tap-size);font-family:var(--font-en);font-size:var(--fs-en-sub);display:flex;align-items:center;justify-content:center;gap:var(--space-xs)}
.c-menu-toggle{flex-direction:column}.c-menu-toggle__lines{width:var(--icon-lg);height:var(--space-sm);position:relative}
.c-menu-toggle__lines::before,.c-menu-toggle__lines::after{content:"";position:absolute;left:var(--zero);width:var(--full);height:var(--line-width);background:var(--color-primary);transition:transform var(--duration) var(--ease)}
.c-menu-toggle__lines::before{top:var(--space-2xs)}.c-menu-toggle__lines::after{bottom:var(--space-2xs)}
.c-drawer{position:fixed;inset:var(--zero);z-index:var(--z-drawer);background:var(--color-bg);overflow:auto;opacity:var(--zero);transform:translateY(var(--drawer-offset));transition:opacity var(--duration) var(--ease-in),transform var(--duration) var(--ease-in)}
.c-drawer.is-open{opacity:var(--one);transform:none;transition-timing-function:var(--ease-out)}
.c-drawer__inner{max-width:var(--content-narrow);margin:auto;padding:var(--space-md) var(--gutter) var(--space-lg);min-height:var(--screen)}
.c-menu-close{margin-left:auto}.c-drawer nav{margin-block:var(--space-md)}
.c-drawer nav li{font-size:var(--fs-h3);border-bottom:var(--line-width) solid var(--color-border);opacity:var(--zero);transform:translateY(var(--drawer-offset));transition:opacity var(--duration) var(--ease-out),transform var(--duration) var(--ease-out);transition-delay:calc(var(--i,0) * var(--menu-stagger))}
.c-drawer.is-open nav li{opacity:var(--one);transform:none}.c-drawer nav a{padding-block:var(--space-sm);align-items:flex-start;flex-direction:column}
.c-drawer__en{font-size:var(--fs-en-sub);font-family:var(--font-en);font-weight:var(--weight-body);color:var(--color-text-muted)}
.c-drawer__links{display:grid;gap:var(--space-md)}body.is-menu-open{overflow:hidden}
/* === Shared heading / buttons / photos === */
.c-section-heading{position:relative;isolation:isolate;container-type:inline-size;margin-bottom:var(--space-md);padding-top:var(--space-lg)}
.c-ghost{font:var(--weight-en) var(--fs-ghost)/var(--one) var(--font-en);letter-spacing:var(--ls-en);color:var(--color-ghost);position:absolute;top:var(--zero);left:var(--zero);z-index:var(--z-ghost);max-width:var(--full);overflow:hidden;white-space:nowrap;pointer-events:none;font-size:min(var(--fs-ghost),calc(100cqi / (var(--ghost-len,6) * var(--ghost-glyph))))}
.c-vlabel{display:inline-block;writing-mode:horizontal-tb;font-size:var(--fs-label);font-weight:var(--weight-heading);background:var(--color-surface);color:var(--color-primary);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);margin-bottom:var(--space-sm)}
.c-more,.c-external{display:inline-flex;gap:var(--space-md);align-items:center;justify-content:space-between;min-height:var(--tap-size);font-weight:var(--weight-heading);margin-top:var(--space-md);max-width:var(--full)}
.c-more>span:first-child{border-bottom:var(--line-width) solid var(--color-primary);padding-block:var(--space-xs)}
.c-more__circle{background:var(--color-accent);color:var(--color-primary);border-radius:var(--radius-full);width:var(--tap-size);height:var(--tap-size);display:flex;align-items:center;justify-content:center;flex-shrink:var(--zero);transition:transform var(--duration) var(--ease)}
.c-more__circle .c-icon{transition:transform var(--duration) var(--ease)}
.c-external__micro{display:block;text-align:center;white-space:nowrap;margin-bottom:var(--space-xs);font-size:var(--fs-small);color:var(--color-accent-text);letter-spacing:.04em}@media(max-width:767px){.c-external__micro{font-size:var(--fs-en-sub);letter-spacing:var(--zero)}}.c-external{background:var(--color-surface);border:var(--line-width) solid var(--color-border);border-radius:var(--radius-card);padding:var(--space-sm);width:fit-content}
.c-photo-placeholder{display:grid;place-items:center;aspect-ratio:var(--image-ratio,var(--ratio-card));width:var(--full);background:var(--color-ghost-on-white);color:var(--color-text-muted);font-size:var(--fs-small);border-radius:inherit}
.c-responsive-photo,.c-responsive-photo picture{display:block;width:var(--full);height:var(--full)}
.c-responsive-photo img,.c-responsive-photo .c-photo-placeholder{width:var(--full);height:var(--full);object-fit:cover}
.c-responsive-photo--fv{aspect-ratio:var(--ratio-hero)}.c-responsive-photo--base{aspect-ratio:var(--ratio-base)}
.c-tag{display:inline-flex;align-items:center;gap:var(--space-xs);border-radius:var(--radius-sm);border:var(--line-width) solid var(--color-border);padding:var(--space-2xs) var(--space-xs);font-size:var(--fs-small)}
.c-tag--status{border-color:var(--color-primary);gap:var(--space-sm);padding:var(--space-xs) var(--space-sm)}.c-tag--status::before{content:"";width:var(--space-xs);height:var(--space-xs);border-radius:var(--radius-full);background:var(--color-accent);flex-shrink:var(--zero)}
.c-text-link{position:relative}.c-text-link .c-icon{display:inline-block;width:var(--icon-sm);height:var(--icon-sm);margin-left:var(--space-xs);vertical-align:-.1em}.c-text-link::after{content:"";position:absolute;inset: auto var(--zero) var(--zero);height:var(--line-width);background:currentColor;transform:scaleX(var(--zero));transform-origin:left;transition:transform var(--duration-fast) var(--ease)}
/* === Hero === */
.p-hero{height:calc(var(--screen) - var(--header-height));max-height:var(--hero-max);position:relative;overflow:hidden;color:var(--color-text-inverse);background:var(--color-bg-dark)}
.p-hero__photo,.p-hero__shade{position:absolute;inset:var(--zero)}.p-hero__shade,.p-base__shade{background:var(--hero-shade)}
.p-hero__photo .c-photo-placeholder{padding-bottom:var(--space-2xl)}
.p-hero__copy{height:var(--full);position:relative;display:flex;flex-direction:column;justify-content:flex-end;padding-bottom:var(--space-lg)}
.p-hero__en{font:var(--weight-body) var(--fs-hero-en)/var(--lh-hero) var(--font-en);letter-spacing:var(--ls-hero);margin-bottom:var(--space-sm)}
.p-hero h1{font-size:var(--fs-h3);font-weight:var(--weight-display)}
.p-hero__scroll{position:absolute;right:var(--space-sm);bottom:var(--space-md);writing-mode:vertical-rl;font:var(--weight-body) var(--fs-en-sub)/var(--one) var(--font-en);display:flex;align-items:center;gap:var(--space-sm)}
.p-hero__scroll span{height:var(--space-lg);width:var(--line-width);background:var(--color-text-inverse);transform-origin:top;animation:rw-scroll var(--scroll-duration) ease-in-out infinite}
/* === About / How === */
.p-about__lead{font-size:var(--fs-h3);margin-bottom:var(--space-lg)}
.p-about__body{font-size:var(--fs-body)}
.p-how__steps{list-style:none;display:grid;gap:var(--space-md);margin:var(--zero)}
.p-how__steps li{border-left:var(--line-width) dotted var(--color-primary);padding-left:var(--space-md)}
.p-how__subtitle{font-weight:var(--weight-heading);margin-block:var(--space-sm);word-break:keep-all;overflow-wrap:anywhere}
@supports (word-break:auto-phrase){.p-how__steps p:not(.p-how__subtitle),.c-section-heading h2{word-break:auto-phrase}}
/* === Business === */
.p-business__cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-md) var(--space-sm);margin-block:var(--space-lg)}
.c-photo-card{display:block;min-width:var(--zero)}.c-photo-card__image{position:relative;display:block;aspect-ratio:var(--ratio-card);border-radius:var(--radius-image);overflow:hidden}
.c-photo-card__image img{width:var(--full);height:var(--full);object-fit:cover;transition:transform var(--photo-duration) var(--ease)}
.c-photo-card__image .c-more__circle{position:absolute;right:var(--space-xs);bottom:var(--space-xs);width:var(--arrow-small);height:var(--arrow-small)}
.c-photo-card__title{display:block;text-align:center;font-size:var(--fs-h3);font-weight:var(--weight-heading);margin-top:var(--space-sm)}
.c-photo-card .c-en{display:block;text-align:center;margin-top:var(--space-xs)}
.p-business__detail{scroll-margin-top:var(--zero);border-top:var(--line-width) solid var(--color-border);padding-block:var(--space-lg);display:grid;gap:var(--space-md)}
.p-business__detail>div>p:first-child{margin-bottom:var(--space-sm)}
.p-business__facilities{display:flex;flex-wrap:wrap;gap:var(--space-xs);list-style:none;margin-block:var(--space-md)}
.p-business__stats{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-sm);margin-block:var(--space-md)}
.p-business__unit{font-size:calc(var(--stat-unit-scale) * 1em)}
.p-business__stats p{container-type:inline-size;margin:var(--zero);font-size:var(--fs-small);border:var(--line-width) solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-sm)}.p-business__stats strong{display:block;word-break:keep-all;white-space:nowrap;letter-spacing:var(--zero);font-family:var(--font-en);font-size:min(calc(var(--fs-h2) * var(--stat-num-scale)),calc(100cqi / var(--stat-chars)))}
/* === Values / Message === */
.p-values__list{list-style:none;margin:var(--zero)}.p-values__list li{border-top:var(--line-width) solid var(--color-border);padding-block:var(--space-md);display:grid;grid-template-columns:auto 1fr;gap:var(--space-sm);align-items:center}
.p-values__list h3{margin:var(--zero)}
.p-values__list li>p{grid-column:1/-1}
.p-message__layout{display:grid;gap:var(--space-md);align-items:start}
.p-message__photo,.p-company__photo{width:var(--portrait-sp);margin-inline:auto;border-radius:var(--radius-image);overflow:hidden;aspect-ratio:var(--ratio-portrait)}
.p-message__photo img,.p-company__photo img{width:var(--full);height:var(--full);object-fit:cover}
.p-company__photo{width:var(--company-portrait-sp)}
.p-message__signature{text-align:right;font-size:var(--fs-small);margin-top:var(--space-md)}
/* === Stories / Base / Contact === */
.c-post-grid{display:grid;gap:var(--space-md);margin-block:var(--space-md)}
.c-post-card{min-width:var(--zero);overflow:hidden;border-radius:var(--radius-card);background:var(--color-surface)}
.c-post-card>a{display:block;height:var(--full)}
.c-post-card__image{display:block;aspect-ratio:var(--ratio-post);overflow:hidden}
.c-post-card__image img,.c-post-card__image .c-photo-placeholder{width:var(--full);height:var(--full);object-fit:cover;transition:transform var(--photo-duration) var(--ease)}
.c-post-card__body{padding:var(--space-sm)}.c-post-card__meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-xs);font-size:var(--fs-small);color:var(--color-text-muted);margin-bottom:var(--space-sm)}
.c-post-card :is(h2,h3){font-size:var(--fs-h3);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.p-stories__cards{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:var(--space-sm)}.p-stories__cards .c-post-card{flex:0 0 var(--swipe-card);scroll-snap-align:start}
.c-empty{margin-top:var(--space-md)}
.p-stories__more{display:flex;justify-content:flex-end;margin-top:var(--space-md)}
.p-about .l-narrow>.c-more,.p-company-summary>.c-more{display:flex;width:fit-content;margin-left:auto;justify-self:end}
.p-contact__cards article>.c-more,.p-contact__cards article>.c-external{align-self:flex-end}
.p-message__links,.c-link-row{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-top:var(--space-md)}
.p-message__links .c-external,.c-link-row .c-external{margin-top:var(--zero)}
@media(max-width:767px){.c-more{gap:var(--space-sm)}.c-external{gap:var(--space-xs);padding:var(--space-xs) var(--space-xs) var(--space-xs) var(--space-sm)}}
@media(min-width:768px){.c-more>span:first-child,.c-external>span:first-child{white-space:nowrap}}
.c-empty .p-stories__more{margin-top:var(--space-sm)}
.p-base__visual{border-radius:var(--radius-panel);position:relative;overflow:hidden;aspect-ratio:var(--ratio-base);margin-bottom:var(--space-lg)}
.p-base__shade{position:absolute;inset:var(--zero)}.p-base__copy{position:absolute;inset:var(--space-md);display:flex;flex-direction:column;justify-content:flex-end;color:var(--color-text-inverse)}
.p-base__en{font:var(--weight-en) var(--base-title)/var(--lh-heading) var(--font-en)}.p-base__copy .c-vlabel{align-self:flex-start}
.p-contact__cards{display:grid;gap:var(--space-md);margin-top:var(--space-md)}.p-contact__cards article{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-sm)}
.p-contact__cards article p{flex-grow:var(--one)}.p-contact__cards .c-more,.p-contact__cards .c-external{gap:var(--space-sm)}
.p-contact__icon{width:var(--space-lg);height:var(--space-lg)}
/* === Lower pages === */
.c-page-header{padding-block:var(--space-lg) var(--space-md)}.c-page-header .c-line-art{max-width:calc(var(--space-2xl) * 3 * var(--art-scale));margin-right:var(--zero)}
.c-breadcrumb{font-size:var(--fs-small);color:var(--color-text-muted);overflow-x:auto}.c-breadcrumb ol{display:flex;list-style:none;gap:var(--space-xs);white-space:nowrap;margin:var(--zero)}
.c-breadcrumb li+li::before{content:"／";margin-right:var(--space-xs)}
.p-company>section{margin-bottom:var(--space-lg)}
.c-company-list{margin-block:var(--space-md)}.c-company-list>div{padding-block:var(--space-sm);border-bottom:var(--line-width) solid var(--color-border);display:grid;gap:var(--space-xs)}.c-company-list dt{font-weight:var(--weight-heading)}
.p-company__rep{position:relative;isolation:isolate}
.p-company__silhouette{position:absolute;right:var(--zero);bottom:var(--zero);width:min(50%,var(--silhouette-width));opacity:var(--silhouette-opacity);z-index:var(--z-ghost);pointer-events:none}
.p-company__silhouette svg{display:block;width:var(--full);height:auto}
.p-company__relationship{width:var(--full);margin-block:var(--space-md)}.p-company__relationship thead{display:none}.p-company__relationship tr{display:grid;margin-bottom:var(--space-sm);border:var(--line-width) solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-sm)}.p-company__relationship th,.p-company__relationship td{text-align:left;padding:var(--space-xs)}
.p-archive{padding-bottom:var(--space-xl)}.c-category-tabs{display:flex;gap:var(--space-xs);overflow:auto;padding:var(--space-xs);margin-bottom:var(--space-md)}.c-category-tabs a{white-space:nowrap;border-radius:var(--radius-full);background:var(--color-surface);padding:var(--space-xs) var(--space-sm);min-height:var(--tap-size)}
.c-category-tabs a.is-active,.page-numbers.current{background:var(--color-primary);color:var(--color-text-inverse)}
.pagination .nav-links{display:flex;gap:var(--space-xs);align-items:center;justify-content:center;flex-wrap:wrap}.page-numbers{display:inline-grid;place-items:center;min-width:var(--tap-size);min-height:var(--tap-size);border-radius:var(--radius-full);background:var(--color-surface)}
.p-single{padding-block:var(--space-lg)}.p-single h1{margin-block:var(--space-md)}.p-single__meta{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-top:var(--space-md)}.p-single__image{aspect-ratio:var(--ratio-single);overflow:hidden;border-radius:var(--radius-image);margin-bottom:var(--space-md)}.p-single__image img,.p-single__image .c-photo-placeholder{width:var(--full);height:var(--full);object-fit:cover}
.p-single__body{overflow-wrap:anywhere}.p-single__body h2,.p-single__body h3{margin-block:var(--space-lg) var(--space-md)}.p-single__body p{margin-block:var(--zero) var(--space-md)}.p-single__body>:last-child{margin-bottom:var(--zero)}.p-single__body h2{border-bottom:var(--line-width) solid var(--color-border);padding-bottom:var(--space-sm)}.p-single__body h3{border-left:var(--space-2xs) solid var(--color-primary);padding-left:var(--space-sm)}.p-single__body :is(h4,h5,h6){font-size:calc(var(--fs-body) * 1.125);font-weight:var(--weight-heading);line-height:var(--lh-heading);letter-spacing:var(--ls-heading);margin-block:var(--space-lg) var(--space-sm)}.p-single__body strong{font-weight:var(--weight-heading);color:var(--color-primary);background:linear-gradient(transparent 62%,color-mix(in srgb,var(--color-accent) 22%,transparent) 62%)}.p-single__body h2::before{content:"";display:inline-block;width:var(--space-xs);height:var(--space-xs);background:var(--color-accent);border-radius:var(--radius-full);margin-right:var(--space-sm);vertical-align:middle;transform:translateY(-.14em)}
.p-single__body ul,.p-single__body ol{padding-left:var(--space-md);margin-block:var(--space-md)}.p-single__body a{text-decoration:underline;text-underline-offset:var(--space-2xs)}.p-single__body blockquote{border-left:var(--focus-width) solid var(--color-primary);padding:var(--space-md);margin-block:var(--space-md);background:var(--color-bg)}.p-single__body figure{margin-block:var(--space-md)}.p-single__body table{display:block;overflow:auto;width:var(--full)}.p-single__body th,.p-single__body td{border:var(--line-width) solid var(--color-border);padding:var(--space-sm)}.p-single__body iframe{width:var(--full);height:auto;aspect-ratio:var(--ratio-single);border:var(--zero);border-radius:var(--radius-image)}
.p-single__adjacent{display:grid;gap:var(--space-md);border-top:var(--line-width) solid var(--color-border);padding-top:var(--space-md);margin-top:var(--space-lg)}.p-page{width:calc(var(--full) - var(--gutter) * 2);margin-bottom:var(--space-xl)}.p-page h2{border-bottom:var(--line-width) solid var(--color-border);padding-bottom:var(--space-sm)}.p-404{padding-bottom:var(--space-xl);text-align:center}.p-404 .c-ghost{width:var(--full)}
/* === Footer === */
.l-footer{background:var(--color-bg-dark);color:var(--color-text-inverse);padding-block:var(--space-lg)}.l-footer__logo{display:inline-block;margin-bottom:var(--space-sm)}.c-nav--footer{margin-block:var(--space-md)}
.l-footer__brand p{margin-top:var(--zero)}
.l-footer__cols{display:grid;gap:var(--space-lg);margin-block:var(--space-lg)}
.l-footer__heading{font:var(--weight-en) var(--fs-en-sub)/var(--one) var(--font-en);letter-spacing:var(--ls-en);color:var(--color-footer-muted);margin:var(--zero) var(--zero) var(--space-sm)}
.l-footer__list{list-style:none;margin:var(--zero);padding:var(--zero);display:grid;gap:var(--space-xs)}
.l-footer__list a{color:var(--color-text-inverse);text-decoration:none;display:inline-flex;align-items:center;min-height:var(--tap-size)}
.l-footer__list--sub{margin-top:var(--space-sm)}
.l-footer__list--sub a{font-size:var(--fs-small);color:var(--color-footer-muted)}
.c-button--inverse{display:inline-flex;align-items:center;background:var(--color-surface);color:var(--color-primary);font-weight:var(--weight-heading);text-decoration:none}
@media(min-width:768px){.l-footer__cols{grid-template-columns:repeat(3,minmax(0,1fr))}}.c-nav--footer .c-nav-list{display:grid;gap:var(--space-xs) var(--space-md)}.l-footer__copyright{font:var(--weight-body) var(--fs-small)/var(--lh-body) var(--font-en)}
/* === Motion === */
.js .c-reveal{opacity:var(--zero);transform:translateY(var(--fade-offset))}
.js .c-reveal.is-visible{opacity:var(--one);transform:none;transition:opacity var(--duration-slow) var(--ease-out),transform var(--duration-slow) var(--ease-out);transition-delay:calc(var(--i,0) * var(--stagger))}
.js .c-section-heading .c-ghost{opacity:var(--zero);transform:translateX(var(--ghost-offset));transition:opacity var(--ghost-duration) var(--ease-out),transform var(--ghost-duration) var(--ease-out)}
.js .c-section-heading.is-visible .c-ghost{opacity:var(--one);transform:none}
.js .p-hero__photo{animation:rw-photo var(--duration-hero) var(--ease-out) both}.js .p-hero__en{animation:rw-enter var(--duration-hero) var(--ease-out) var(--hero-delay) both}.js .p-hero h1{animation:rw-enter var(--duration-hero) var(--ease-out) var(--caption-delay) both}
@keyframes rw-photo{from{opacity:var(--zero);transform:scale(var(--photo-scale))}to{opacity:var(--one);transform:scale(var(--one))}}
@keyframes rw-enter{from{opacity:var(--zero);transform:translateY(var(--hero-offset))}to{opacity:var(--one);transform:none}}
@keyframes rw-scroll{0%{transform:scaleY(var(--zero))}50%{transform:scaleY(var(--one));transform-origin:top}100%{transform:scaleY(var(--zero));transform-origin:bottom}}
@media(hover:hover){
 .c-more:is(:hover,:focus-visible) .c-more__circle{transform:scale(var(--hover-scale))}.c-more:is(:hover,:focus-visible) .c-icon{transform:translateX(var(--arrow-offset))}
 .c-external:is(:hover,:focus-visible) .c-icon{transform:translate(var(--external-offset),calc(-1 * var(--external-offset)))}
 .c-photo-card:is(:hover,:focus-visible) img,.c-post-card>a:is(:hover,:focus-visible) img{transform:scale(var(--photo-scale))}.c-photo-card:is(:hover,:focus-visible) .c-more__circle{transform:translateX(var(--card-arrow-offset))}
 .menu-button a:is(:hover,:focus-visible),.c-button:is(:hover,:focus-visible){background:var(--color-primary-hover)}
 .c-text-link:is(:hover,:focus-visible)::after{transform:scaleX(var(--one))}
 .c-nav-list a:hover::after{content:"";position:absolute;width:var(--space-2xs);height:var(--space-2xs);border-radius:var(--radius-full);background:var(--color-accent);bottom:var(--zero);left:var(--half)}.c-nav-list .menu-button a::after{content:none}
}
/* === Tablet === */
@media(min-width:768px){
 :root{--ratio-base:21/9;--ratio-hero:16/9;--radius-image:16px;--radius-panel:32px;--fade-offset:24px}
 .c-panel{padding:var(--space-lg)}.c-section-heading{margin-bottom:var(--space-lg);padding-right:var(--space-lg)}
 .c-vlabel{writing-mode:vertical-rl;white-space:nowrap;position:absolute;right:var(--zero);top:var(--zero)}
 .p-how__steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-lg)}.p-how__steps li{border-left:var(--zero);border-top:var(--line-width) dotted var(--color-primary);padding-left:var(--zero);padding-top:var(--space-sm)}
 .p-business__cards,.c-post-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
 .p-business__detail{grid-template-columns:2fr 3fr;gap:var(--space-lg)}
 .p-values__list li{grid-template-columns:auto 2fr 3fr;gap:var(--space-md)}.p-values__list li>p{grid-column:auto}
 .p-message__layout{grid-template-columns:2fr 3fr;gap:var(--space-lg)}.p-message__photo,.p-company__photo{width:var(--full)}
 .p-stories__cards{display:grid;overflow:visible}.p-base__copy{justify-content:center;padding-inline:var(--space-md)}
 .c-company-list>div{grid-template-columns:1fr 3fr;gap:var(--space-md)}
 .p-company__relationship thead{display:table-header-group}.p-company__relationship tr{display:table-row;border:var(--zero)}.p-company__relationship th,.p-company__relationship td{padding:var(--space-sm);border-bottom:var(--line-width) solid var(--color-border)}
 .c-nav--footer .c-nav-list{grid-template-columns:repeat(2,minmax(0,1fr))}.p-single__adjacent{grid-template-columns:repeat(2,minmax(0,1fr))}
 .js .c-section-heading .c-vlabel{transform:translateY(var(--label-offset));opacity:var(--zero);transition:transform var(--duration-slow) var(--ease-out),opacity var(--duration-slow) var(--ease-out)}.js .c-section-heading.is-visible .c-vlabel{transform:none;opacity:var(--one)}
}
/* === Desktop === */
@media(min-width:1024px){
 :root{--section-space:var(--space-2xl);--header-height:88px;--logo-height:40px}
 .l-header__inner{gap:var(--space-md)}.c-nav--primary{display:block}.c-nav--primary .c-nav-list{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--fs-small);white-space:nowrap}.c-menu-toggle{display:none}
 .c-page-header{padding-block:var(--space-xl) var(--space-lg)}.c-nav--footer .c-nav-list{grid-template-columns:repeat(3,minmax(0,1fr))}
 .p-stories>p{max-width:var(--content-narrow)}
}
@media(prefers-reduced-motion:reduce){
 *,*::before,*::after{animation-duration:var(--reduced-duration)!important;animation-delay:0s!important;animation-iteration-count:1!important;transition-duration:var(--reduced-duration)!important;transition-delay:0s!important;scroll-behavior:auto!important}
 .js .c-reveal,.js .c-section-heading .c-ghost,.js .c-section-heading .c-vlabel{opacity:var(--one);transform:none}
}

/* Navigation remains available when JavaScript is disabled. */
html:not(.js) .c-menu-toggle{display:none}
html:not(.js) .l-header{height:auto;min-height:var(--header-height)}
html:not(.js) .l-header__inner{flex-wrap:wrap;padding-block:var(--space-sm)}
html:not(.js) .c-nav--primary{display:block}
html:not(.js) .c-nav--primary .c-nav-list{display:flex;flex-wrap:wrap;gap:var(--space-sm)}
.c-menu-toggle[aria-expanded="true"] .c-menu-toggle__lines::before{transform:translateY(var(--menu-line-offset)) rotate(var(--angle-menu))}
.c-menu-toggle[aria-expanded="true"] .c-menu-toggle__lines::after{transform:translateY(calc(-1 * var(--menu-line-offset))) rotate(var(--angle-menu-reverse))}
.p-single__body a .c-icon{display:inline-block;vertical-align:middle;margin-inline:var(--space-xs)}

/* Placeholder copy uses the verified navy/gray contrast until photos arrive. */
.p-hero:has(.c-photo-placeholder) .p-hero__copy,.p-hero:has(.c-photo-placeholder) .p-hero__scroll,.p-base__visual:has(.c-photo-placeholder) .p-base__copy{color:var(--color-primary)}
.p-hero:has(.c-photo-placeholder) .p-hero__shade,.p-base__visual:has(.c-photo-placeholder) .p-base__shade{display:none}
.p-hero:has(.c-photo-placeholder) .p-hero__scroll span{background:var(--color-primary)}

/* === Placed line assets (04); normal flow keeps them clear of headings === */
.p-about__art{display:grid;grid-template-columns:minmax(0,1fr) var(--art-house-width);align-items:end;gap:var(--space-sm);width:var(--full);max-width:calc(var(--space-2xl) * 3 * var(--art-scale) + var(--space-sm) + var(--art-house-width));margin-top:var(--space-lg);margin-left:auto;pointer-events:none}
.p-about__art .c-line-art{min-width:var(--zero);max-width:var(--full);margin:var(--zero)}
.p-values__art{display:none}
.p-base__art{width:var(--full);max-width:calc(var(--art-small-width) * 2);margin-top:var(--space-md);margin-left:auto;pointer-events:none}
.p-contact__art{width:var(--full);max-width:var(--content-narrow);margin-top:var(--space-lg);margin-inline:auto;pointer-events:none}
.p-contact__icon{width:var(--space-lg);height:var(--space-lg);min-width:var(--space-lg);flex-shrink:var(--zero);align-self:flex-start;object-fit:contain}
.p-company .c-line-art{max-width:var(--art-small-width);margin-top:var(--space-md);margin-right:var(--zero)}
.c-drawer__inner>.c-line-art{max-width:var(--art-width);margin-top:var(--space-lg);margin-right:var(--zero)}
.c-page-header>.c-line-art{display:none}
@media(min-width:768px){
 .p-values__layout{display:grid;grid-template-columns:minmax(0,1fr) var(--art-small-width);gap:var(--space-md);align-items:center}
 .p-values__art{display:block;min-width:var(--zero);pointer-events:none}
 .c-page-header>.c-line-art{display:block}
}
@media(min-width:1280px){.p-how__steps{grid-template-columns:repeat(4,minmax(0,1fr))}.p-contact__cards{grid-template-columns:repeat(3,minmax(0,1fr))}.p-contact__cards article{padding-inline:var(--space-md)}}
@media(hover:hover){.c-button--inverse:is(:hover,:focus-visible){background:var(--color-bg);color:var(--color-primary)}}
@media(min-width:1024px){.p-business__stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
