/* Home */
.home-intro { display:grid; grid-template-columns:.7fr 1.3fr; gap:clamp(2rem,7vw,8rem); }
.home-intro h2 { max-width:14ch; }
.operations-collage { display:grid; grid-template-columns:1.5fr .8fr; grid-template-rows:18rem 18rem; gap:1rem; }
.operations-collage figure { position:relative; margin:0; overflow:hidden; }
.operations-collage figure:first-child { grid-row:span 2; }
.operations-collage img { width:100%; height:100%; object-fit:cover; }
.operations-caption { position:absolute; right:0; bottom:0; max-width:23rem; padding:1.3rem; color:var(--white); background:var(--green-800); }
.operations-caption strong { display:block; font-family:var(--font-display); font-size:var(--step-1); line-height:1.1; }

/* Internal-page shared */
.chapter-nav { position:sticky; z-index:40; top:var(--header-h); overflow-x:auto; border-bottom:1px solid var(--line); background:rgba(246,244,239,.96); }
.chapter-nav ul { display:flex; min-width:max-content; margin:0; padding:0; list-style:none; }
.chapter-nav a { display:block; padding:1rem 1.4rem; color:var(--ink-600); font-size:.86rem; font-weight:700; text-decoration:none; }
.chapter-nav a:hover, .chapter-nav a.is-active { color:var(--green-800); box-shadow:inset 0 -3px var(--orange-500); }

/* Services */
.services-carousel .cargo-showcase__head { grid-template-columns:1fr; align-items:start; gap:clamp(1.25rem,2.5vw,2rem); }
.services-carousel .cargo-showcase__head h2 { max-width:none; }
.services-carousel .cargo-showcase__intro { padding:0; }
.services-carousel .cargo-showcase__intro .lede { max-width:58rem; }
.service-carousel__card[id] { scroll-margin-top:calc(var(--header-h) + 1rem); }
.service-carousel__card .cargo-card__body { min-height:15rem; }
.service-carousel__meta { display:block; margin-bottom:.8rem; color:var(--orange-600); font-size:.72rem; font-weight:700; letter-spacing:.12em; line-height:1.35; text-transform:uppercase; }
.service-chapter { scroll-margin-top:9rem; }
.service-chapter:nth-child(even) { background:var(--white); }
.chapter-layout { display:grid; grid-template-columns:5rem minmax(0,.85fr) minmax(0,1.15fr); gap:clamp(1.5rem,4vw,5rem); align-items:start; }
.chapter-number { color:var(--orange-500); font-family:var(--font-display); font-size:clamp(3rem,7vw,7rem); line-height:.8; -webkit-text-stroke:1px currentColor; -webkit-text-fill-color:transparent; }
.chapter-copy h2 { max-width:12ch; }
.chapter-copy p { color:var(--ink-600); }
.chapter-media { position:relative; min-height:31rem; overflow:hidden; }
.chapter-media img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.chapter-media .media-note { position:absolute; right:0; bottom:0; max-width:19rem; padding:1.25rem; color:var(--white); background:var(--green-800); font-size:.9rem; }
.strength-list { display:grid; grid-template-columns:repeat(2,1fr); border-top:1px solid var(--line-light); border-left:1px solid var(--line-light); }
.strength { padding:2rem; border-right:1px solid var(--line-light); border-bottom:1px solid var(--line-light); }
.strength__num { color:var(--orange-500); font-family:var(--font-display); font-size:3rem; }
.strength h3 { margin:1.2rem 0 .8rem; font-size:var(--step-2); }
.strength p, .strength li { color:rgba(255,255,255,.68); }
.strength ul { padding-left:1.1rem; }
.process { display:grid; grid-template-columns:repeat(5,1fr); counter-reset:process; border-top:1px solid var(--line); }
.process-step { counter-increment:process; padding:1.5rem 1.2rem 2.5rem; border-right:1px solid var(--line); }
.process-step::before { display:block; margin-bottom:3rem; color:var(--orange-600); font-family:var(--font-display); font-size:2rem; content:"0" counter(process); }
.process-step h3 { font-size:var(--step-1); line-height:1.05; }

/* About */
.history-experience { --history-accent:var(--orange-500); position:relative; overflow:hidden; background:#f1efe9; }
.history-experience[data-active-era="diversification-expansion"] { --history-accent:#a97b32; }
.history-experience[data-active-era="strategic-development"] { --history-accent:var(--green-600); }
.history-experience::before { position:absolute; top:0; right:0; width:34%; height:.35rem; background:var(--history-accent); content:""; transition:background .5s ease; }
.history-intro { display:grid; grid-template-columns:minmax(0,.8fr) minmax(24rem,1.2fr); align-items:end; gap:clamp(2rem,7vw,8rem); }
.history-intro h2 { max-width:10ch; margin:0; font-size:clamp(3.5rem,6vw,6.5rem); }
.history-intro > p { max-width:43rem; margin:0 0 .6rem; color:var(--ink-600); font-size:var(--step-1); line-height:1.6; }
.history-app { margin-top:clamp(3rem,6vw,5.5rem); }
.history-app .sr-only { position:absolute; width:1px; height:1px; overflow:hidden; margin:-1px; padding:0; border:0; clip:rect(0,0,0,0); white-space:nowrap; }
.history-stage { position:relative; }
.history-carousel-controls { padding-inline:7.5%; }
.history-rail { display:flex; align-items:stretch; gap:clamp(1rem,2.4vw,2rem); overflow-x:auto; overscroll-behavior-x:contain; padding:.75rem 7.5% 1.4rem; scroll-snap-type:x mandatory; scrollbar-width:thin; scrollbar-color:var(--history-accent) rgba(16,23,18,.14); outline:none; }
.history-rail::-webkit-scrollbar { height:.55rem; }
.history-rail::-webkit-scrollbar-track { background:rgba(16,23,18,.12); }
.history-rail::-webkit-scrollbar-thumb { border-radius:999px; background:var(--history-accent); }
.history-rail:focus-visible { outline:2px solid var(--history-accent); outline-offset:4px; }
.history-decade { min-width:0; flex:0 0 min(78rem,86%); display:grid; grid-template-columns:minmax(18rem,.68fr) minmax(0,1.32fr); overflow:hidden; border:1px solid rgba(16,23,18,.13); background:var(--white); box-shadow:0 16px 40px rgba(16,23,18,.08); opacity:.48; scroll-snap-align:center; transform:scale(.975); transition:opacity .4s ease, transform .4s ease, box-shadow .4s ease; }
.history-decade.is-active { opacity:1; box-shadow:0 24px 65px rgba(16,23,18,.14); transform:none; }
.history-decade__header { position:relative; min-width:0; display:flex; flex-direction:column; padding:clamp(2rem,4vw,4rem); color:var(--white); background-color:var(--green-900); background-image:linear-gradient(145deg,rgba(255,255,255,.055),transparent 48%),repeating-linear-gradient(135deg,transparent,transparent 28px,rgba(255,255,255,.03) 28px,rgba(255,255,255,.03) 29px); }
.history-decade__header::before { position:absolute; top:0; right:0; bottom:0; width:.38rem; background:var(--history-accent); content:""; }
.history-decade__index { color:#c8d2c8; font-size:.68rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.history-decade__period { margin-top:clamp(2.5rem,6vw,5.5rem); color:rgba(255,255,255,.18); font-family:var(--font-display); font-size:clamp(4.5rem,8vw,8rem); line-height:.76; letter-spacing:-.045em; }
.history-decade__header h3 { max-width:12ch; margin:clamp(2rem,4vw,3.5rem) 0 1rem; color:var(--white); font-size:clamp(2.2rem,3.3vw,3.4rem); line-height:.95; }
.history-decade[data-history-chapter="industrial-growth"] .history-decade__header h3 { max-width:100%; font-size:clamp(1.95rem,2.5vw,2.5rem); line-height:1; letter-spacing:-.015em; text-wrap:balance; }
.history-decade__header p { max-width:36ch; margin:auto 0 0; padding-top:2rem; color:#c8d2c8; line-height:1.6; }
.history-decade__milestones { min-width:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-content:start; margin:0; padding:0; border-top:1px solid var(--line); border-left:1px solid var(--line); list-style:none; }
.history-milestone { min-width:0; display:grid; grid-template-columns:2.4rem minmax(0,1fr); gap:.8rem; align-content:start; padding:clamp(1.3rem,2vw,2rem); border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.history-milestone__number { color:var(--history-accent); font-family:var(--font-display); font-size:1rem; line-height:1.15; }
.history-milestone h4 { margin:0; overflow-wrap:normal; word-break:normal; hyphens:none; font-family:var(--font-display); font-size:clamp(1.15rem,1.45vw,1.45rem); line-height:1.08; }
.history-milestone h4 a { color:inherit; text-decoration-color:var(--history-accent); text-decoration-thickness:2px; text-underline-offset:.18em; }
.history-milestone h4 a::after { margin-left:.35rem; color:var(--history-accent); font-family:var(--font-body); font-size:.72em; content:"↗"; }
.history-milestone h4 a:hover { color:var(--green-700); }
.history-milestone h4 a:focus-visible { outline:2px solid var(--history-accent); outline-offset:4px; }
.history-milestone p { margin:.55rem 0 0; overflow-wrap:normal; word-break:normal; hyphens:none; color:var(--ink-600); font-size:.86rem; line-height:1.5; }

@media (prefers-reduced-motion: reduce) {
  .history-experience::before,
  .history-decade { transition:none; }
}
.ceo-layout { display:grid; grid-template-columns:.75fr 1.25fr; gap:clamp(2rem,7vw,8rem); align-items:center; }
.ceo-portrait { aspect-ratio:4/5; overflow:hidden; }
.ceo-portrait img { width:100%; height:100%; object-fit:cover; object-position:center top; }
.quote { position:relative; margin:0; padding-top:3rem; font-family:var(--font-display); font-size:var(--step-2); line-height:1.25; }
.quote::before { position:absolute; top:0; color:var(--orange-500); font-size:5rem; line-height:1; content:"“"; }
.pending { display:inline-block; margin-top:1.5rem; padding:.35rem .55rem; border:1px solid var(--line-light); color:rgba(255,255,255,.65); font-size:.76rem; letter-spacing:.08em; text-transform:uppercase; }
.family-panel { position:relative; aspect-ratio:1537/1023; overflow:hidden; background:var(--green-900); }
.family-panel img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }
.family-copy { position:absolute; z-index:1; top:clamp(1rem,3vw,2.75rem); right:clamp(1rem,3vw,2.75rem); width:min(30rem,38%); padding:clamp(1.4rem,2.4vw,2.25rem); color:var(--white); background:rgba(23,63,34,.9); box-shadow:0 18px 45px rgba(10,26,15,.18); backdrop-filter:blur(5px); }
.family-copy h2 { font-size:clamp(2rem,3vw,3.4rem); }
.family-copy p { max-width:40ch; }
.team-section-head { display:block; margin-bottom:clamp(2rem,3vw,3rem); text-align:center; }
.team-section-head > div { width:100%; }
.team-section-head h2 { max-width:none; }
@media (min-width:1100px) {
  .team-section-head h2 { white-space:nowrap; }
}
.team-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }
.team-card { background:var(--white); border-bottom:3px solid transparent; transition:border-color .2s, transform .2s; }
.team-card:hover { border-bottom-color:var(--orange-500); transform:translateY(-3px); }
.team-card__photo { aspect-ratio:4/4.6; overflow:hidden; background:var(--paper-2); }
.team-card__photo img { width:100%; height:100%; object-fit:cover; object-position:center top; }
.team-card__body { padding:1.25rem; }
.team-card h3 { margin-bottom:.35rem; font-size:1.45rem; }
.team-card .role { min-height:2.8rem; margin-bottom:1rem; color:var(--green-700); font-weight:700; line-height:1.3; }
.team-card blockquote { margin:0; color:var(--ink-600); font-size:.9rem; line-height:1.55; }
.values-visual { background:var(--white); }
.values-visual .container { width:min(calc(100% - (var(--gutter) * 2)),112rem); }
.values-visual img { width:100%; height:auto; display:block; background:var(--white); }

/* Contact */
.contact-methods { display:grid; grid-template-columns:repeat(12,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.contact-method { min-height:13rem; grid-column:span 4; padding:1.6rem; border-right:1px solid var(--line); border-bottom:1px solid var(--line); text-decoration:none; }
.contact-method--wide { grid-column:span 6; }
.contact-method .contact-method__icon {
  width:3rem;
  height:3rem;
  display:grid;
  place-items:center;
  margin-bottom:1.4rem;
  color:var(--orange-600);
  background:rgba(233,99,12,.1);
  border-radius:.65rem;
  transition:color .2s, background .2s, transform .2s;
}
.contact-method__icon svg { width:1.45rem; height:1.45rem; display:block; fill:currentColor; }
.contact-method strong { display:block; font-size:var(--step-1); line-height:1.25; }
.contact-method small { display:block; margin-top:.6rem; color:var(--ink-600); }
a.contact-method:hover { color:var(--green-700); background:var(--white); }
a.contact-method:hover .contact-method__icon { color:var(--white); background:var(--orange-600); transform:translateY(-2px); }
.contact-workspace { display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,6vw,7rem); align-items:start; }
.form-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:start; column-gap:1rem; row-gap:1.15rem; }
.field { min-width:0; display:grid; align-self:start; align-content:start; gap:.45rem; }
.field--full { grid-column:1/-1; }
.field label, .field legend { font-size:.88rem; font-weight:700; }
.field input, .field select, .field textarea {
  width:100%;
  min-width:0;
  padding:.75rem;
  border:1px solid var(--line);
  border-radius:0;
  color:var(--ink-950);
  background:var(--white);
}
.field input, .field select { height:3.35rem; min-height:3.35rem; }
.field textarea { min-height:8rem; resize:vertical; }
.field-error { min-height:1.2em; margin:0; color:#9a2d18; font-size:.82rem; }
.checkbox { display:grid; grid-template-columns:1.3rem 1fr; gap:.75rem; align-items:start; }
.checkbox input { width:1.2rem; height:1.2rem; margin-top:.18rem; }
.form-status { margin:1rem 0 0; padding:1rem; border-left:3px solid var(--orange-500); background:var(--paper-2); }
.form-status:empty { display:none; }
.map-panel iframe { width:100%; min-height:30rem; border:0; }
.map-caption { padding:1.25rem; color:var(--white); background:var(--green-800); }
.map-caption strong { display:block; }

/* 404 */
.not-found { min-height:calc(100svh - var(--header-h)); display:grid; place-items:center; color:var(--white); background:var(--green-900); text-align:center; }
.not-found strong { display:block; color:var(--orange-500); font-family:var(--font-display); font-size:clamp(7rem,20vw,16rem); line-height:.7; }
