/* Interior compositions built on the existing hm components. */
.fm-interior { --fm-reading:64ch; }
.fm-interior .hm-page-nav .container { flex-wrap:nowrap; overflow-x:auto; scrollbar-width:thin; }
.fm-interior .hm-page-nav a { flex-shrink:0; }
.fm-interior .hm-section + .hm-section--ground { border-top:1px solid var(--hair-soft); }
.fm-interior .hm-section .hm-body { max-width:var(--fm-reading); }
.fm-interior .hm-hero .breadcrumb { color:rgba(255,255,255,.8); }

/* Product entries pair a readable specification brief with an unmasked image. */
.fm-interior .hm-hero--product { padding:8rem 0 3.5rem; background:var(--black); }
.fm-interior .hm-hero--product > .container { padding-right:49%; }
.fm-interior .hm-hero--product .hm-hero__bg { left:55%; top:4.25rem; }
.fm-interior .hm-hero--product .hm-hero__bg img { opacity:1; }
.fm-interior .hm-hero--product .hm-hero__bg::after { display:none; }
.fm-interior .hm-hero--product .hm-hero__title { font-size:clamp(2.4rem,4vw,4rem); }
.fm-interior .hm-hero--product .hm-hero__meta { grid-template-columns:1fr 1fr; gap:1.5rem 0; }
.fm-interior .hm-hero--product .hm-hero__meta > div:nth-child(odd) { padding-left:0; border-left:0; }
.fm-interior .hm-hero--product .hm-hero__cta { gap:.75rem; }
.fm-interior .hm-hero--product .btn { padding:.85rem 1.2rem; }
.fm-interior #specifications .spec-table { background:transparent; border-radius:0; }
.fm-interior .spec-table th[scope="row"] { width:38%; font-family:var(--mono); font-size:.6875rem; font-weight:400; letter-spacing:.04em; text-transform:uppercase; text-align:left; color:var(--gray-500); background:transparent; }
.fm-interior .spec-table th[scope="row"], .fm-interior .spec-table td { padding:1rem .75rem; line-height:1.55; }
.fm-interior .spec-table tbody tr:nth-child(even) { background:rgba(0,0,0,.025); }
.fm-interior .hm-section--dark .spec-table th[scope="row"] { color:var(--gray-300); }
.fm-interior #documents .product-cards { display:flex; flex-direction:column; gap:0; border-top:1px solid var(--hair); }
.fm-interior #documents .product-card { display:grid; grid-template-columns:1.1fr 1.5fr auto; align-items:center; gap:2rem; padding:1.5rem 0; border:0; border-bottom:1px solid var(--hair); border-radius:0; background:transparent; box-shadow:none; transform:none; }
.fm-interior #documents .product-card h3 { font-size:1.125rem; font-weight:500; margin:0; }
.fm-interior #documents .product-card p { font-size:.9375rem; line-height:1.65; margin:0; color:var(--gray-500); }
.fm-interior #documents .card-cta { display:inline-flex; align-items:center; min-height:44px; margin:0; font-size:.75rem; white-space:nowrap; }
.fm-interior #buying .hm-buying { background:var(--white); padding:1.75rem; gap:2rem; }
.fm-product-alloys #specifications .hm-prods { grid-template-columns:1fr; gap:0; }
.fm-product-alloys #specifications .hm-prod { display:grid; grid-template-columns:1fr 1.3fr 1.2fr; gap:1rem 2rem; padding:2rem 0; }
.fm-product-alloys #specifications .hm-prod__tag { grid-column:1 / -1; padding:0; }
.fm-product-alloys #specifications .hm-prod__name { margin:0; }
.fm-product-alloys #specifications .hm-prod__desc { margin:0; }
.fm-product-alloys #specifications .hm-prod__spec { margin:0; padding:0; border:0; }

/* Process: numbered entries with images at the relevant production stage. */
.fm-stage { display:grid; grid-template-columns:5rem minmax(0,1fr); gap:1rem 3rem; padding:3rem 0; border-top:1px solid var(--hair); scroll-margin-top:10rem; }
.fm-stage__text { max-width:var(--fm-reading); }
.fm-stage__image { grid-column:2; width:100%; max-width:900px; aspect-ratio:16 / 7; object-fit:cover; margin-top:1rem; }
.fm-process #overview .hm-step h3 a { display:block; text-decoration:underline; text-decoration-color:var(--gray-200); text-underline-offset:.25em; min-height:44px; }
.fm-process #overview .hm-step h3 a:hover { text-decoration-color:var(--black); }
.fm-process #overview .hm-step h3 span { font-weight:400; }

/* Logistics reads as a sequence, followed by an aligned route schedule. */
.fm-logistics #shipping .hm-steps { display:flex; flex-direction:column; padding:0; gap:0; }
.fm-logistics #shipping .hm-steps::before, .fm-logistics #shipping .hm-step::before { display:none; }
.fm-logistics #shipping .hm-step { display:grid; grid-template-columns:5rem 1fr 1.6fr; gap:2rem; padding:1.75rem 0; border-top:1px solid var(--hair); }
.fm-logistics #shipping .hm-step__idx span { display:block; margin:0 0 .4rem; font-size:.625rem; letter-spacing:.06em; }
.fm-logistics #shipping .hm-step h3 { font-size:1.125rem; font-weight:500; }
.fm-logistics #shipping .hm-step p { max-width:60ch; }
.fm-logistics #transit .hm-stats { border:0; background:transparent; grid-template-columns:1fr 1fr; column-gap:3rem; }
.fm-logistics #transit .hm-stat { flex-direction:row-reverse; align-items:baseline; justify-content:space-between; gap:1rem; border:0; border-top:1px solid var(--hair); padding:1.5rem 0; }
.fm-logistics #transit .hm-stat__lbl { margin:0; color:var(--black); font-family:inherit; font-size:1.125rem; text-transform:none; letter-spacing:0; }
.fm-logistics #transit .hm-stat__num { font-size:2.25rem; white-space:nowrap; }
.fm-logistics #packaging .spec-table-wrap { max-width:1000px; }

/* Campus inventory and material streams carry information rather than metrics. */
.fm-campus-photo { margin-top:2.5rem; }
.fm-campus-photo img { width:100%; height:clamp(240px,35vw,460px); object-fit:cover; }
.fm-products #comparison .hm-prods { gap:2.5rem; }
.fm-products #comparison .spec-table { border-radius:0; background:transparent; }
.fm-products #comparison .spec-table th[scope="row"] { padding-left:0; }

.fm-about #campus .hm-stats { border:0; background:transparent; gap:0 2.5rem; }
.fm-about #campus .hm-stat { border:0; border-top:1px solid var(--hair); padding:1.5rem 0 2rem; }
.fm-about #campus .hm-stat__num { font-family:var(--mono); font-size:1rem; color:var(--gray-400); }
.fm-about #campus .hm-stat__lbl { order:1; margin:0; font-family:inherit; font-size:1.25rem; text-transform:none; letter-spacing:-.02em; color:var(--black); }
.fm-about #campus .hm-stat__note { order:2; font-size:.9375rem; max-width:32ch; }
.fm-about #certifications .hm-prods { grid-template-columns:1fr 1fr; }
.fm-materials { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2.5rem; margin-top:3rem; }
.fm-materials li { border-top:1px solid var(--hair); padding-top:1.5rem; }
.fm-materials__symbol { font-size:3rem; font-weight:300; letter-spacing:-.05em; }
.fm-materials h3 { font-size:1.125rem; font-weight:500; margin:.5rem 0; }
.fm-materials p { color:var(--gray-500); font-size:.9375rem; line-height:1.65; }
.fm-materials a { display:inline-flex; align-items:center; gap:.5rem; min-height:44px; margin-top:1rem; font-size:.875rem; text-decoration:underline; text-underline-offset:.25em; }

/* Buyer pages use a requirements list, not another row of floating cards. */
.fm-industries-batteries .bm-grid { grid-template-columns:1fr 1fr; border-radius:0; }
.fm-industries-batteries .bm-cell { background:transparent; box-shadow:none; border-radius:0; }
.fm-industries-batteries .bm-apps { display:block; }
.fm-industries-batteries .bm-app { display:grid; grid-template-columns:minmax(14rem,1fr) 2fr; gap:1rem 2rem; padding:1.75rem 0; border:0; border-top:1px solid var(--hair); border-radius:0; }
.fm-industries-batteries .bm-app h3 { font-size:1.25rem; margin:0; }
.fm-industries-batteries .bm-app p { font-size:.9375rem; line-height:1.7; margin:0; }
.fm-industries-brokers #partnership .hm-prods { grid-template-columns:1fr 1fr; }
.fm-industries-brokers #partnership .hm-prod:last-child { grid-column:1 / -1; }
.fm-industries-brokers #partnership .hm-prod__desc { max-width:60ch; }
.fm-compliance #counterparty .hm-point, .fm-compliance #scope .hm-prod { padding-block:1.5rem; }
.fm-compliance .hm-faq__body p { max-width:var(--fm-reading); }

/* Resource library: document type, name, description and request link. */
.fm-resources main .hm-docs { display:block; border-top:1px solid var(--hair); }
.fm-resources main .hm-doc { display:grid; grid-template-columns:.75fr 1.1fr 1.5fr .8fr; align-items:start; gap:2rem; border:0; border-bottom:1px solid var(--hair); padding:1.75rem 0; background:transparent; }
.fm-resources main .hm-doc[hidden] { display:none; }
.fm-resources main .hm-doc__cat { border:0; padding:0; margin:.3rem 0 0; }
.fm-resources main .hm-doc h3 { font-size:1.125rem; font-weight:500; line-height:1.4; margin:0; }
.fm-resources main .hm-doc p { margin:0; line-height:1.65; }
.fm-resources main .hm-doc__cta { margin:0; padding:0; }
.fm-library-status { margin:-.5rem 0 1.25rem; font-family:var(--mono); font-size:.75rem; color:var(--gray-500); }
.fm-library-status:empty { display:none; }
.fm-contact #direct-lines .hm-prods { grid-template-columns:1.4fr 1fr 1fr; }
.fm-contact #direct-lines .hm-prod__name { overflow-wrap:anywhere; }
.fm-contact #direct-lines .hm-prod__link { margin-top:auto; }
.fm-contact #next-steps .hm-stats { grid-template-columns:repeat(4,minmax(0,1fr)); border:0; gap:2rem; background:transparent; }
.fm-contact #next-steps .hm-stat { border:0; border-top:1px solid var(--hair); padding:1.5rem 0; }
.fm-contact #next-steps .hm-stat__num { font-size:1rem; font-family:var(--mono); }
.fm-contact #next-steps .hm-stat__lbl { order:1; margin:0; font-family:inherit; font-size:1.25rem; text-transform:none; color:var(--black); }
.fm-contact #next-steps .hm-stat__note { order:2; font-size:.9375rem; }
.fm-enquiry { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.4fr); gap:clamp(2.5rem,5vw,5rem); align-items:start; }
.fm-enquiry .hm-head { grid-template-columns:1fr; gap:1.5rem; }
.fm-form { display:grid; gap:1.75rem; justify-items:start; }
.fm-form__types { display:flex; flex-wrap:wrap; gap:.5rem; border:0; padding:0; margin:0; width:100%; }
.fm-form__types legend, .fm-form__field label { font-family:var(--mono); font-size:.6875rem; letter-spacing:.08em; text-transform:uppercase; color:var(--gray-500); margin-bottom:.6rem; }
.fm-form__types label { display:inline-flex; align-items:center; gap:.5rem; min-height:44px; padding:.5rem 1rem; border:1px solid var(--gray-200); border-radius:4px; background:var(--white); font-size:.9375rem; cursor:pointer; }
.fm-form__types label:has(:checked) { border-color:var(--black); box-shadow:inset 0 0 0 1px var(--black); }
.fm-form__types input { accent-color:var(--black); }
.fm-form__grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.25rem 1.5rem; width:100%; }
.fm-form__field { display:flex; flex-direction:column; }
.fm-form__field--wide { grid-column:1 / -1; }
.fm-form__field label span { text-transform:none; letter-spacing:0; color:var(--gray-400); }
.fm-form__field input, .fm-form__field select, .fm-form__field textarea { width:100%; min-height:48px; padding:.75rem 1rem; font:inherit; font-size:1rem; color:var(--black); background:var(--white); border:1px solid var(--gray-200); border-radius:4px; }
.fm-form__field textarea { resize:vertical; min-height:8rem; line-height:1.5; }
.fm-form__field input::placeholder, .fm-form__field textarea::placeholder { color:var(--gray-400); }
.fm-form__field [aria-invalid="true"] { border-color:#B42318; box-shadow:inset 0 0 0 1px #B42318; }
.fm-form__error { font-size:.875rem; color:#B42318; margin-top:.4rem; }
.fm-form__error:empty { display:none; }
.fm-form .btn-dark { min-width:12rem; }
.fm-form .btn-dark:disabled { opacity:.6; cursor:progress; }
.fm-form__note { font-size:.875rem; color:var(--gray-500); margin-top:-.75rem; }
.fm-form__result { font-size:1rem; line-height:1.6; max-width:60ch; }
.fm-form__result:empty { display:none; }
.fm-form__trap { position:absolute; left:-9999px; width:1px; height:1px; opacity:0; }

/* Legal pages retain their text, with a separate index and reading measure. */
.fm-privacy .page-hero, .fm-terms .page-hero { padding:8rem 0 3rem; }
.fm-privacy .page-hero > .container, .fm-terms .page-hero > .container { width:100%; text-align:left; }
.fm-privacy .page-hero .breadcrumb, .fm-terms .page-hero .breadcrumb { color:var(--gray-300); }
.fm-legal-layout { display:grid; grid-template-columns:16rem minmax(0,1fr); gap:clamp(2rem,6vw,6rem); align-items:start; }
.fm-legal-index { position:sticky; top:6rem; border-top:1px solid var(--gray-200); padding-top:1rem; }
.fm-legal-index p { font-family:var(--mono); text-transform:uppercase; font-size:.75rem; margin-bottom:.75rem; }
.fm-legal-index a { display:block; padding:.5rem 0; font-size:.9375rem; color:var(--gray-500); text-underline-offset:.2em; }
.fm-legal-index a:hover { text-decoration:underline; color:var(--black); }
.fm-legal-layout .editorial-col { max-width:68ch; }
.fm-legal-layout h2 { scroll-margin-top:6rem; font-size:1.5rem; line-height:1.25; font-weight:500; margin-top:2.75rem; padding-top:1.25rem; border-top:1px solid var(--gray-200); }
.fm-legal-layout h2:first-child { margin-top:0; }
.fm-legal-layout a { text-decoration:underline; text-underline-offset:.2em; }
.fm-legal-layout li { color:var(--gray-500); font-size:1rem; line-height:1.8; margin-bottom:.75rem; }
.fm-legal-layout ul { list-style:disc; padding-left:1.25rem; }
.fm-error-content { max-width:1000px; text-align:left; }
.fm-error-actions { display:flex; gap:1rem; flex-wrap:wrap; }
.fm-404 .error-num { font-weight:200; font-size:clamp(6rem,16vw,12rem); line-height:1; text-align:left; }

@media (max-width:1000px) {
    .fm-interior .hm-hero--product { padding-bottom:0; }
    .fm-interior .hm-hero--product > .container { padding-right:2rem; padding-bottom:2.5rem; }
    .fm-interior .hm-hero--product .hm-hero__bg { position:relative; inset:auto; order:2; height:clamp(220px,45vw,400px); }
    .fm-interior .hm-hero--product .hm-hero__title { max-width:24ch; }
    .fm-interior .hm-hero--product .hm-hero__meta { max-width:650px; }
    .fm-contact #direct-lines .hm-prods { grid-template-columns:1fr; }
    .fm-contact #next-steps .hm-stats { grid-template-columns:1fr 1fr; }
    .fm-enquiry { grid-template-columns:1fr; }
    .fm-resources main .hm-doc { grid-template-columns:1fr 1.5fr; gap:1rem 2rem; }
    .fm-resources main .hm-doc__cat { grid-column:1 / -1; }
    .fm-resources main .hm-doc__cta { grid-column:2; }
    .fm-legal-layout { grid-template-columns:12rem minmax(0,1fr); gap:2rem; }
}
@media (max-width:720px) {
    .fm-interior .hm-hero--product > .container { padding-inline:1rem; }
    .fm-interior .hm-hero--product .hm-hero__title { font-size:clamp(2.25rem,9vw,3.5rem); }
    .fm-interior #documents .product-card, .fm-product-alloys #specifications .hm-prod { grid-template-columns:1fr; gap:1rem; }
    .fm-product-alloys #specifications .hm-prod__tag { grid-column:auto; }
    .fm-interior #buying .hm-buying { padding:1.5rem; }
    .fm-stage { grid-template-columns:1fr; gap:1.25rem; padding:2rem 0; }
    .fm-stage__image { grid-column:1; aspect-ratio:4 / 3; }
    .fm-stage__number { display:flex; gap:.75rem; align-items:baseline; }
    .fm-logistics #shipping .hm-step { grid-template-columns:2.5rem 1fr; gap:.75rem 1rem; }
    .fm-logistics #shipping .hm-step p { grid-column:2; }
    .fm-logistics #transit .hm-stats { grid-template-columns:1fr; }
    .fm-about #campus .hm-stats { grid-template-columns:1fr; }
    .fm-about #campus .hm-stat { border-right:0!important; }
    .fm-about #certifications .hm-prods, .fm-materials, .fm-industries-brokers #partnership .hm-prods { grid-template-columns:1fr; }
    .fm-industries-batteries .bm-grid { grid-template-columns:1fr; }
    .fm-industries-batteries .bm-app { grid-template-columns:1fr; gap:.75rem; }
    .fm-industries-batteries .bm-app p { grid-column:1; }
    .fm-resources main .hm-doc { grid-template-columns:1fr; }
    .fm-resources main .hm-doc__cat, .fm-resources main .hm-doc__cta { grid-column:1; }
    .fm-contact #next-steps .hm-stats { grid-template-columns:1fr; }
    .fm-form__grid { grid-template-columns:1fr; }
    .fm-form .btn-dark { width:100%; }
    .fm-legal-layout { grid-template-columns:1fr; }
    .fm-legal-index { position:static; }
    .fm-legal-index a { min-height:44px; }
}
