/* Annai DX — quiet Japanese editorial typography, photographs and ruled layouts. */
:root {
  --cyan:#21bddb; --cyan-dark:#006b80; --ink:#263b40; --body:#46575d;
  --muted:#5f7279; --line:#dce5e8; --gray:#f6f8f9; --pale:#f2f9fa;
  --font:"Helvetica Neue",Arial,"Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP",Meiryo,sans-serif;
  --heading:var(--font); --serif:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;
  --tracking-heading:.065em; --tracking-body:.025em;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:32px; }
body { margin:0; font:1rem/1.95 var(--font); color:var(--ink); background:#fff; -webkit-font-smoothing:antialiased; letter-spacing:var(--tracking-body); font-kerning:normal; line-break:strict; overflow-wrap:break-word; }
a { color:inherit; text-decoration:none; text-underline-offset:.3em; text-decoration-thickness:1px; }
button { font:inherit; }
img { display:block; max-width:100%; }
h1,h2,h3,h4,p { margin:0; }
h1,h2,h3,h4 { font-family:var(--heading); font-weight:700; word-break:normal; line-break:strict; }
h2 { font-size:clamp(1.75rem,3.1vw,2.625rem); line-height:1.65; letter-spacing:var(--tracking-heading); }
h3,h4 { line-height:1.7; letter-spacing:.05em; }
p { color:var(--body); }
a,button { -webkit-tap-highlight-color:transparent; }
a:focus-visible,button:focus-visible { outline:2px solid var(--cyan-dark); outline-offset:6px; }
::selection { background:#d3eef3; color:#173d47; }
.wrap { width:min(1200px,calc(100% - 112px)); margin-inline:auto; }
.section { padding-block:112px; }
.heading-line { display:inline-block; max-width:100%; vertical-align:top; overflow-wrap:break-word; }
.eyebrow { font:600 .75rem/1.8 var(--heading); letter-spacing:.13em; color:var(--cyan-dark); margin-bottom:24px; }
.sr-only { position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position:fixed; top:12px; left:12px; transform:translateY(-180%); z-index:1000; background:#fff; padding:12px 20px; }
.skip-link:focus { transform:none; }
.lucide { display:inline-block; width:1.15em; height:1.15em; flex-shrink:0; vertical-align:-.14em; }
.lucide-external-link { width:16px; height:16px; }
.button { display:inline-flex; align-items:center; justify-content:space-between; gap:36px; min-height:56px; padding:14px 22px; border:1px solid #a3c8d0; border-radius:3px; background:#fff; color:var(--cyan-dark); font-size:.875rem; font-weight:600; letter-spacing:.04em; transition:background .2s,border-color .2s; max-width:100%; }
.button-arrow { display:inline-flex; align-items:center; font-size:20px; }
.button:hover { background:var(--pale); border-color:var(--cyan-dark); }

/* Opening statement. Keep the Mincho vertical rhythm and the live text. */
.manifesto { background:#fff; }
.manifesto-inner { min-height:100svh; display:flex; flex-direction:column; padding-block:36px 28px; }
.manifesto-label { font-size:.8125rem; letter-spacing:.11em; color:#465c62; line-height:1.8; }
.manifesto-stage { display:flex; flex-direction:row-reverse; justify-content:center; align-items:flex-start; gap:88px; padding:64px 0 60px; flex:1; }
.manifesto-title { writing-mode:vertical-rl; text-orientation:mixed; font-family:var(--serif); font-weight:500; font-size:clamp(2rem,3.1vw,2.875rem); line-height:1.9; letter-spacing:.11em; color:#293e42; flex-shrink:0; }
.manifesto-title>span { display:block; white-space:nowrap; }
.manifesto-title>span:last-child { color:#2b6270; }
.manifesto-poem { display:flex; flex-direction:row-reverse; gap:38px; padding-top:56px; }
.manifesto-stanza { writing-mode:vertical-rl; text-orientation:mixed; font-family:var(--serif); font-size:1.0625rem; font-weight:500; line-height:2.4; letter-spacing:.09em; color:#435457; white-space:nowrap; }
.manifesto-foot { display:flex; justify-content:space-between; gap:24px; align-items:center; padding-top:16px; border-top:1px solid #d7e2e5; }
.manifesto-foot>span { font-size:.75rem; letter-spacing:.1em; color:#465c62; }
.manifesto-foot>a { display:flex; align-items:center; gap:18px; min-height:44px; font-size:.875rem; letter-spacing:.055em; color:#3e5d66; }
.manifesto-foot>a>span { display:inline-flex; font-size:18px; }
.manifesto-foot>a:hover { text-decoration:underline; }
.purpose-bridge { background:#f5fafb; padding-block:96px 64px; scroll-margin-top:24px; }
.purpose-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.12fr); gap:72px; max-width:1120px; }
.purpose-layout h2,.everyday-story-heading h2 { font-family:var(--serif); font-weight:500; font-size:clamp(1.5rem,2.55vw,2.125rem); line-height:1.9; letter-spacing:.075em; color:#344f55; }
.purpose-text p,.everyday-story-body p { font-size:1rem; line-height:2.15; letter-spacing:.035em; color:#465c62; }
.purpose-text p+p,.everyday-story-body p+p { margin-top:1.5em; }

/* Business introduction: imagery is framed simply, with no floating badges. */
.hero { background:#fff; border-bottom:1px solid var(--line); }
.hero-inner { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); align-items:center; gap:64px; padding-block:112px 64px; }
.hero-copy { min-width:0; }
.hero-title { font-size:clamp(2.625rem,4.6vw,4.125rem); line-height:1.4; letter-spacing:.055em; font-weight:700; }
.hero-title>span { color:var(--cyan-dark); }
.hero-description { margin-block:28px 32px; font-size:1rem; line-height:2; max-width:32em; }
.hero-visual { height:470px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:1fr 22px; gap:14px; min-width:0; }
.hero-photo { position:relative; overflow:hidden; border-radius:3px; background:#d9e5e9; isolation:isolate; }
.hero-photo>img { width:100%; height:100%; object-fit:cover; }
.hero-photo:after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(13,32,39,.06),rgba(13,32,39,.62) 48%,rgba(13,32,39,.9)); pointer-events:none; }
.hero-photo-main { min-width:0; }
.hero-photo-main>img { object-position:49% center; }
.hero-photo-mapco>img { object-position:59% center; }
.photo-caption { position:absolute; left:18px; right:18px; bottom:18px; z-index:1; color:#fff; }
.photo-kicker { display:block; font-size:.875rem; line-height:1.7; letter-spacing:.025em; }
.photo-product { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:10px; }
.photo-product>.photo-logo { display:flex; align-items:center; justify-content:center; width:170px; max-width:calc(100% - 26px); height:46px; padding:5px 9px; background:#fff; border-radius:2px; }
.photo-logo .product-logo { width:100%; height:100%; object-position:center; }
.photo-product>span:last-child { display:inline-flex; flex-shrink:0; }
.hero-visual-foot { grid-column:1/3; display:flex; justify-content:flex-end; font-size:.75rem; color:var(--muted); }
.hero-bottom { display:flex; justify-content:space-between; align-items:center; gap:16px 32px; flex-wrap:wrap; padding-bottom:28px; color:#546b73; }
.hero-bottom>span { font-size:.8125rem; letter-spacing:.04em; }
.scroll-link { display:inline-flex; align-items:center; gap:16px; min-height:44px; font-size:.875rem; }
.scroll-link>span { display:inline-flex; }
.scroll-link:hover { text-decoration:underline; }

/* People choose the destination; digital guidance supplies the way there. */
.philosophy-heading { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.8fr); gap:64px; align-items:start; }
.philosophy-heading>p { padding-top:46px; font-size:1rem; line-height:2.1; max-width:35em; }
.guidance-model { margin:48px 0 0; }
.guidance-roles { display:grid; grid-template-columns:minmax(0,1fr) 64px minmax(0,1fr); align-items:center; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding-block:32px; }
.guidance-choice { padding:0; min-width:0; }
.guidance-role-label { font-size:.875rem; font-weight:600; letter-spacing:.065em; color:var(--cyan-dark); margin-bottom:18px; }
.guidance-photo { display:block; aspect-ratio:1672/941; overflow:hidden; border-radius:3px; background:var(--gray); }
.guidance-photo img { width:100%; height:100%; object-fit:cover; }
.guidance-choice h3 { margin-top:20px; font-family:var(--serif); font-weight:500; font-size:clamp(1.375rem,2.1vw,1.75rem); line-height:1.85; letter-spacing:.075em; color:#344f55; }
.guidance-choice-context { margin-top:8px; font-size:1rem; line-height:1.95; }
.guidance-photo-note { display:block; margin-top:12px; color:var(--muted); font-size:.75rem; line-height:1.7; letter-spacing:.03em; }
.guidance-transfer { display:flex; align-items:center; justify-content:center; color:#557b86; }
.guidance-transfer .lucide { width:26px; height:26px; }
.guidance-delivery { min-width:0; padding:30px 32px; background:var(--pale); border-left:2px solid #79b5c3; }
.guidance-delivery h3 { font-size:clamp(1.125rem,1.8vw,1.375rem); line-height:1.8; letter-spacing:.045em; }
.destination-examples { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 24px; list-style:none; margin:26px 0; padding:0; }
.destination-examples li { display:flex; align-items:center; gap:12px; font-size:1rem; line-height:1.6; color:#365d68; }
.destination-examples .lucide { width:24px; height:24px; color:var(--cyan-dark); }
.guidance-answer { display:flex; align-items:flex-start; gap:16px; border-top:1px solid #c7dee5; padding-top:24px; }
.guidance-answer>.lucide { width:26px; height:26px; margin-top:4px; color:var(--cyan-dark); }
.guidance-answer>div { min-width:0; }
.guidance-answer strong { display:block; font-size:1.125rem; line-height:1.8; letter-spacing:.045em; color:#285a68; }
.guidance-answer p { font-size:.875rem; line-height:1.9; margin-top:5px; }
.guidance-model figcaption { text-align:center; margin-top:24px; color:#4c6872; font-size:1rem; line-height:2; }
.guidance-principles { margin-top:48px; }
.guidance-principles-heading { display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; gap:8px 24px; margin-bottom:24px; }
.guidance-principles-heading h3 { font-size:1.25rem; letter-spacing:.055em; }
.guidance-principles-heading p { color:#546d77; font-size:.875rem; }
.guidance-principle-list { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); list-style:none; margin:0; padding:24px 0 0; border-top:1px solid var(--line); }
.guidance-principle-list li { min-width:0; padding-inline:24px; border-left:1px solid var(--line); }
.guidance-principle-list li:first-child { padding-left:0; border-left:0; }
.guidance-principle-list li:last-child { padding-right:0; }
.guidance-principle-number { display:block; margin-bottom:10px; color:#5b7078; font-size:.75rem; line-height:1.5; letter-spacing:.12em; font-variant-numeric:tabular-nums; }
.guidance-principle-list h4 { font-size:clamp(1.25rem,1.8vw,1.5rem); letter-spacing:.085em; color:var(--cyan-dark); }
.guidance-principle-list p { margin-top:10px; font-size:.875rem; line-height:1.9; }
@media(max-width:1099px) { .philosophy-heading { gap:40px; } .guidance-roles { grid-template-columns:minmax(0,1fr) 40px minmax(0,1fr); } .guidance-delivery { padding:26px; } .destination-examples { gap:16px; } .destination-examples li { gap:8px; font-size:.9375rem; } .guidance-principle-list { grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px 0; } .guidance-principle-list li { padding-inline:24px; } .guidance-principle-list li:nth-child(4) { border-left:0; padding-left:0; } }
@media(max-width:799px) { .philosophy-heading { grid-template-columns:1fr; gap:24px; } .philosophy-heading>p { padding-top:0; max-width:none; } .guidance-roles { grid-template-columns:1fr; gap:20px; padding-block:28px; } .guidance-choice { padding:0; } .guidance-transfer { justify-content:flex-start; } .guidance-transfer .lucide { transform:rotate(90deg); } .guidance-delivery { padding:26px; } .guidance-model figcaption { text-align:left; } .guidance-principle-list { grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px 0; } .guidance-principle-list li:nth-child(4) { border-left:0; padding-left:0; } }
@media(max-width:499px) { .guidance-model { margin-top:32px; } .guidance-choice h3 { font-size:1.5rem; } .guidance-delivery { padding:24px 20px; } .destination-examples { gap:18px 12px; } .destination-examples li { align-items:flex-start; gap:7px; font-size:.875rem; } .destination-examples .lucide { width:21px; height:21px; } .guidance-answer { gap:12px; } .guidance-answer strong { font-size:1.0625rem; } .guidance-principles { margin-top:36px; } .guidance-principles-heading h3 { font-size:1.125rem; } .guidance-principle-list { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 0; } .guidance-principle-list li:nth-child(n) { padding:0 16px; border-left:1px solid var(--line); } .guidance-principle-list li:nth-child(odd) { padding-left:0; border-left:0; } .guidance-principle-list h4 { font-size:1.25rem; } }

/* Two services share the same editorial image-and-copy rhythm. */
.services { background:var(--gray); }
.services-heading { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.7fr); gap:64px; align-items:start; margin-bottom:56px; }
.services-heading>p { padding-top:46px; line-height:2; }
.services-grid { display:grid; gap:0; }
.service-card { display:grid; grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr); column-gap:64px; padding-block:56px; border-top:1px solid #d4e0e4; scroll-margin-top:32px; min-width:0; --service-color:#006b80; }
.service-card:last-child { padding-bottom:0; }
.service-card.mapco { --service-color:#007e64; }
.service-photo { position:relative; align-self:start; aspect-ratio:1.18; overflow:hidden; border-radius:3px; background:#dae6e9; }
.service-photo>img { width:100%; height:100%; object-fit:cover; }
.service-index { position:absolute; left:18px; top:18px; padding:6px 10px; background:#fff; color:#425d66; font-size:.75rem; line-height:1.5; letter-spacing:.1em; font-variant-numeric:tabular-nums; }
.service-body { display:flex; flex-direction:column; min-width:0; padding:0; }
.service-brand-line { display:flex; align-items:center; height:64px; margin-bottom:16px; }
.service-brand { display:flex; align-items:center; min-width:0; height:64px; }
.product-logo { display:block; object-fit:contain; object-position:left center; }
.service-brand .product-logo { width:250px; max-width:100%; height:64px; }
.service-brand .product-logo-mapco { width:215px; }
.service-category { display:block; font-size:.875rem; color:#596f77; letter-spacing:.055em; margin-bottom:10px; }
.service-body h4 { font-size:clamp(1.375rem,2vw,1.75rem); line-height:1.65; letter-spacing:.055em; color:var(--ink); }
.service-description { margin-top:24px; font-size:1rem; line-height:2; }
.service-use { display:grid; grid-template-columns:7em minmax(0,1fr); gap:16px; margin-top:28px; padding-top:20px; border-top:1px solid var(--line); }
.service-use>span { font-size:.875rem; line-height:1.9; color:#596f77; }
.service-use p { font-size:.9375rem; line-height:1.9; }
.service-tags { display:flex; flex-wrap:wrap; gap:6px 20px; list-style:none; padding:0; margin:16px 0 0; }
.service-tags li { font-size:.875rem; line-height:1.8; color:#50656e; }
.service-tags li+li { border-left:1px solid #bacbd1; padding-left:20px; }
.service-cta { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:52px; margin-top:24px; padding-block:12px; border-bottom:1px solid #9ebfc8; color:var(--service-color); font-size:.875rem; font-weight:600; letter-spacing:.035em; transition:border-color .2s; }
.service-cta-meta { display:inline-flex; align-items:center; gap:10px; flex-shrink:0; }
.service-cta-meta>span { font-size:.75rem; font-weight:400; color:#566d75; }
.service-cta:hover { border-color:var(--service-color); }
.service-cta:hover>span:first-child { text-decoration:underline; }
.image-note { font-size:.75rem; color:#586f77; line-height:1.9; margin-top:32px; }

/* Four linked uses. Subtle structural lines replace heavy containers. */
.value-heading { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.85fr); gap:64px; margin-bottom:56px; align-items:start; }
.value-heading>p { padding-top:46px; line-height:2; }
.value-wheel { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); grid-auto-rows:1fr; gap:88px 80px; position:relative; }
.value-card { display:flex; flex-direction:column; min-width:0; padding:30px 32px; background:var(--pale); border-top:1px solid #a8ccd5; }
.value-card-top { display:flex; align-items:center; gap:14px; margin-bottom:20px; }
.value-icon { display:inline-flex; align-items:center; color:var(--cyan-dark); }
.value-icon .lucide { width:25px; height:25px; }
.value-card-top>span:last-child { font-size:.75rem; color:#456772; letter-spacing:.13em; }
.value-card h3 { font-size:1.375rem; line-height:1.8; color:#284851; }
.value-card>p { font-size:1rem; line-height:1.95; margin-block:18px 24px; }
.value-card-tag { align-self:flex-start; margin-top:auto; padding-top:12px; border-top:1px solid #cbdde2; font-size:.875rem; color:#496773; }
.value-center { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:228px; text-align:center; background:#fff; padding:12px 20px; z-index:1; }
.value-center>span { display:block; color:#476c78; font-size:.75rem; letter-spacing:.14em; margin-bottom:3px; }
.value-center strong { font-size:.9375rem; line-height:1.7; letter-spacing:.045em; color:#295762; }
.value-arrow { position:absolute; display:flex; align-items:center; justify-content:center; width:32px; height:32px; background:#fff; color:#578794; transform:translate(-50%,-50%); pointer-events:none; }
.value-arrow .lucide { width:20px; height:20px; }
.value-arrow-top { left:50%; top:calc(25% - 22px); }
.value-arrow-right { left:calc(75% + 20px); top:50%; }
.value-arrow-bottom { left:50%; top:calc(75% + 22px); }
.value-arrow-left { left:calc(25% - 20px); top:50%; }
.value-arrow-bottom .lucide,.value-arrow-left .lucide { transform:rotate(180deg); }
.value-caption { text-align:center; max-width:48em; margin:28px auto 0; font-size:.875rem; line-height:2; color:#516b75; }

/* A continuing commitment, supported by the everyday guidance business. */
.foundation { border-block:1px solid var(--line); background:#fbfcfc; }
.foundation-layout { display:grid; grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr); gap:80px; align-items:center; }
.foundation-copy { min-width:0; }
.foundation-copy>p:not(.eyebrow) { font-size:1rem; line-height:2.1; margin-top:24px; max-width:33em; }
.commitment-promise { min-width:0; padding:40px; background:#eef6f8; border-top:3px solid #34899b; border-radius:0 0 3px 3px; }
.commitment-scope { display:flex; align-items:center; gap:12px; color:var(--cyan-dark); }
.commitment-scope .lucide { width:28px; height:28px; }
.commitment-scope p { font-size:.875rem; font-weight:600; line-height:1.8; letter-spacing:.055em; color:inherit; }
.commitment-promise h3 { display:flex; align-items:baseline; flex-wrap:wrap; gap:0 .04em; margin-top:24px; color:var(--cyan-dark); font-size:clamp(2.625rem,4.8vw,4rem); line-height:1.5; letter-spacing:.055em; }
.commitment-promise h3>span { display:inline-block; }
.commitment-duration { font-size:.48em; font-weight:500; letter-spacing:.075em; }
.commitment-everyday { margin-top:14px; font-size:1rem; line-height:2; letter-spacing:.055em; color:#3e606b; }
.commitment-continuity { margin-top:30px; padding-top:24px; border-top:1px solid #bed4db; }
.commitment-continuity h4 { font-size:1rem; line-height:1.8; letter-spacing:.055em; color:#2f5561; }
.commitment-continuity p { margin-top:10px; font-size:1rem; line-height:2; color:#4b6570; }

/* Partnerships and the origin story share an unhurried reading column. */
.partners-layout { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:80px; }
.partners-copy h2 { font-size:clamp(1.75rem,2.7vw,2.375rem); }
.partners-copy>p:not(.eyebrow) { margin-top:26px; font-size:1rem; line-height:2; }
.partner-list { border-top:1px solid var(--line); }
.partner-row { display:grid; grid-template-columns:24px minmax(0,1fr); gap:18px; padding-block:24px; border-bottom:1px solid var(--line); }
.partner-number { color:var(--cyan-dark); font-size:.8125rem; font-variant-numeric:tabular-nums; padding-top:4px; }
.partner-row h3 { font-size:1.125rem; line-height:1.75; }
.partner-row p { font-size:.9375rem; line-height:1.9; margin-top:8px; }
.partner-en { display:none; }
.everyday-story { border-top:1px solid var(--line); }
.everyday-story-inner { display:grid; grid-template-columns:minmax(0,.83fr) minmax(0,1.17fr); gap:72px; max-width:1120px; align-items:start; }
.everyday-story-caption { margin-top:24px; color:#526c75; font-size:.875rem; line-height:1.9; }
.everyday-story-body { min-width:0; }
.everyday-story-body a { color:#235b6a; text-decoration:underline; text-decoration-color:#83a8b4; text-decoration-skip-ink:auto; }
.everyday-story-body a:hover { text-decoration-color:currentColor; }
.everyday-story-body a .lucide { width:13px; height:13px; margin-left:2px; }
.everyday-story-turn { border-top:1px solid var(--line); margin-top:32px; padding-top:32px; }
.scan-reference { display:block; max-width:280px; margin-top:32px; padding:24px 0 0; border-top:1px solid #b6cdd4; }
.scan-reference .product-logo { width:184px; height:auto; margin-left:-9px; }
.scan-reference-description { display:block; margin-top:12px; color:#506a75; font-size:.875rem; line-height:1.9; }
.scan-reference-link { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:16px; padding-block:10px; min-height:44px; border-bottom:1px solid #a9c3cd; font-size:.875rem; color:var(--cyan-dark); }
.scan-reference:hover .scan-reference-link { border-color:var(--cyan-dark); }

/* The next era of guidance, in the same reading rhythm as the origin story. */
.outlook { background:#f5f9fa; border-top:1px solid var(--line); }
.outlook-inner { display:grid; grid-template-columns:minmax(0,.83fr) minmax(0,1.17fr); gap:72px; max-width:1120px; align-items:start; }
.outlook-heading,.outlook-perspectives { min-width:0; }
.outlook-heading h2 { font-family:var(--serif); font-weight:500; font-size:clamp(1.5rem,2.55vw,2.125rem); line-height:1.9; letter-spacing:.075em; color:#344f55; }
.outlook-intro { margin-top:28px; max-width:29em; font-size:1rem; line-height:2.1; letter-spacing:.035em; color:#465c62; }
.outlook-point { padding-block:28px; border-top:1px solid #d2e0e5; }
.outlook-point:first-child { padding-top:0; border-top:0; }
.outlook-point:last-child { padding-bottom:0; }
.outlook-point h3 { font-size:1.125rem; line-height:1.8; letter-spacing:.045em; color:#2c505b; text-wrap:pretty; }
.outlook-point p { margin-top:14px; font-size:1rem; line-height:2.1; letter-spacing:.035em; color:#465c62; }
@media(max-width:1199px) { .outlook-inner { gap:40px; } }
@media(max-width:959px) { .outlook-inner { grid-template-columns:1fr; max-width:640px; gap:36px; } .outlook-intro { max-width:none; } .outlook-point:first-child { border-top:1px solid #d2e0e5; padding-top:28px; } }
@media(max-width:699px) { .outlook-heading h2 { font-size:clamp(1.4375rem,5.5vw,1.875rem); } .outlook-intro { margin-top:24px; } .outlook-point { padding-block:24px; } .outlook-point h3 { font-size:1.0625rem; } .outlook-intro,.outlook-point p { line-height:2.05; letter-spacing:.02em; } }

/* Closing and footer. */
.closing-message { padding:112px 0 104px; text-align:center; border-block:1px solid #e0eaee; background:#eef9fb; }
.closing-message h2 { font-family:var(--serif); font-size:clamp(1.875rem,3.4vw,3rem); font-weight:500; line-height:1.85; letter-spacing:.085em; color:#365a65; }
.closing-message .eyebrow { color:#4c6a73; margin-bottom:26px; }
.closing-message p:not(.eyebrow) { font-size:1rem; line-height:2.2; letter-spacing:.045em; margin:28px auto 0; }
.closing-signature { display:block; font-size:.875rem; color:#465c62; margin-top:36px; letter-spacing:.055em; }
.site-footer { padding-block:40px; display:flex; justify-content:space-between; align-items:center; gap:32px; }
.brand { display:inline-flex; align-items:center; gap:18px; }
.wordmark { font:800 32px/1 var(--heading); letter-spacing:-1.5px; }
.brand-period { color:#00889d; }
.brand-department { border-left:1px solid #c5d5db; padding-left:18px; font-size:.75rem; line-height:1.8; }
.brand-department strong { font-size:.875rem; }
.footer-right { display:flex; flex-wrap:wrap; justify-content:flex-end; align-items:center; gap:8px 24px; }
.footer-right>a { display:inline-flex; align-items:center; gap:7px; min-height:44px; font-size:.875rem; color:#3d5b65; }
.footer-right>a>span { display:inline-flex; }
.footer-right>a:hover { text-decoration:underline; }
.footer-right small { width:100%; text-align:right; color:#5b7078; font-size:.75rem; }

/* Soft emphasis and restrained entrances. */
.scroll-mark { color:inherit; background-color:transparent; background-image:linear-gradient(transparent 51%,rgba(246,222,86,.44) 51%,rgba(246,222,86,.44) 90%,transparent 90%); background-repeat:no-repeat; background-position:left top; background-size:100% 100%; padding-inline:.035em; margin-inline:-.035em; -webkit-box-decoration-break:clone; box-decoration-break:clone; }
.scroll-mark.mark-pending { background-size:0% 100%; transition:background-size 1.2s cubic-bezier(.18,.65,.25,1) .2s; }
.scroll-mark.is-drawn { background-size:100% 100%; }
.scroll-mark.vertical-mark { background-image:linear-gradient(to left,transparent 46%,rgba(246,222,86,.44) 46%,rgba(246,222,86,.44) 87%,transparent 87%); }
.scroll-mark.vertical-mark.mark-pending { background-size:100% 0%; transition-delay:.4s; }
.scroll-mark.vertical-mark.is-drawn { background-size:100% 100%; }
@media(prefers-reduced-motion:no-preference) {
  .reveal.ready { opacity:0; transform:translateY(10px); transition:opacity .65s ease,transform .65s ease; }
  .reveal.ready.visible { opacity:1; transform:none; }
  .manifesto-title { animation:purpose-appear 1s ease-out both; }
  .manifesto-stanza { animation:purpose-appear 1.1s .12s ease-out both; }
  @keyframes purpose-appear { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:none; } }
}

/* Tablet: preserve all three service previews and generous text measures. */
@media(max-width:1199px) {
  .wrap { width:calc(100% - 72px); }
  .manifesto-stage { gap:56px; }
  .manifesto-poem { gap:26px; }
  .manifesto-stanza { font-size:1rem; line-height:2.25; }
  .hero-inner { gap:36px; }
  .hero-visual { height:490px; gap:10px; }
  .photo-caption { left:14px; right:14px; bottom:14px; }
  .section-intro>div,.services-heading,.service-card,.value-heading,.foundation-layout,.partners-layout,.purpose-layout,.everyday-story-inner { column-gap:40px; }
  .challenge-grid { gap:28px; }
  .value-wheel { gap:80px 56px; }
  .value-arrow-top { top:calc(25% - 20px); }
  .value-arrow-bottom { top:calc(75% + 20px); }
  .value-arrow-right { left:calc(75% + 14px); }
  .value-arrow-left { left:calc(25% - 14px); }
  .value-card { padding:26px; }
}
@media(max-width:959px) {
  .section { padding-block:88px; }
  .manifesto-stage { gap:36px; }
  .manifesto-title { font-size:2rem; line-height:1.8; }
  .manifesto-poem { gap:22px; padding-top:40px; }
  .manifesto-stanza { font-size:.9375rem; line-height:2.05; }
  .hero-inner { grid-template-columns:1fr; padding-block:88px 40px; gap:40px; }
  .hero-title { font-size:clamp(2.75rem,6vw,3.75rem); }
  .hero-visual { height:380px; grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:1fr 24px; }
  .hero-photo-main { grid-row:auto; margin-top:0; }
  .hero-visual-foot { grid-column:1/-1; }
  .hero-description { max-width:38em; }
  .challenge-grid { grid-template-columns:1fr; gap:32px; }
  .challenge { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); column-gap:40px; }
  .challenge-label { grid-column:1; }
  .challenge h3 { grid-column:1; font-size:1.375rem; }
  .challenge p { grid-column:2; grid-row:1/3; margin:0 0 16px; }
  .challenge a { grid-column:2; }
  .services-heading>p,.value-heading>p { padding-top:40px; }
  .service-card { grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr); gap:32px; padding-block:40px; }
  .service-photo { aspect-ratio:.86; }
  .service-brand .product-logo { max-width:230px; }
  .service-body h4 { font-size:1.375rem; }
  .service-use { grid-template-columns:1fr; gap:6px; }
  .purpose-bridge { padding-top:72px; }
  .purpose-layout h2 { font-size:1.625rem; }
  .foundation-layout,.partners-layout,.everyday-story-inner { grid-template-columns:1fr; gap:40px; }
  .foundation-copy>p:not(.eyebrow),.partners-copy>p:not(.eyebrow) { max-width:38em; }
  .commitment-promise { width:100%; max-width:600px; }
  .partner-list { width:100%; }
  .partner-row { grid-template-columns:24px minmax(0,1fr); }
  .everyday-story-inner { max-width:640px; }
  .scan-reference { max-width:100%; display:grid; grid-template-columns:180px minmax(0,1fr); column-gap:24px; }
  .scan-reference .product-logo { grid-row:1/3; align-self:center; }
  .scan-reference-description { margin-top:0; }
  .scan-reference-link { margin-top:8px; }
  .site-footer { align-items:flex-start; }
  .footer-right { max-width:320px; }
}
@media(max-width:799px) {
  .purpose-layout { grid-template-columns:1fr; max-width:600px; gap:30px; }
  .purpose-text .desktop-break { display:none; }
  .value-heading { grid-template-columns:1fr; gap:24px; }
  .value-heading>p { padding-top:0; }
  .value-wheel { grid-template-columns:1fr; grid-auto-rows:auto; gap:20px; }
  .value-center { position:static; transform:none; grid-row:1; width:100%; text-align:left; padding:0 0 24px; border-bottom:1px solid var(--line); }
  .value-center strong { font-size:1.125rem; }
  .value-center strong br { display:none; }
  .value-card { padding:28px; }
  .value-arrow { display:none; }
  .value-caption { text-align:left; }
}
@media(max-width:699px) {
  .wrap { width:calc(100% - 48px); }
  .section { padding-block:72px; }
  .manifesto-inner { min-height:0; padding-block:28px 22px; }
  .manifesto-label { font-size:.75rem; letter-spacing:.08em; }
  .manifesto-stage { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:32px 0; padding:48px 0 36px; max-width:420px; width:100%; margin:auto; }
  .manifesto-title { grid-column:2; grid-row:1; font-size:clamp(1.375rem,5.4vw,1.875rem); line-height:1.65; letter-spacing:.1em; justify-self:end; min-width:0; }
  .manifesto-poem { display:contents; }
  .manifesto-stanza:first-child { grid-column:1; grid-row:1; justify-self:start; padding-top:27px; font-size:clamp(.875rem,2.65vw,1rem); line-height:1.95; letter-spacing:.06em; }
  .manifesto-stanza:last-child { grid-column:1/3; grid-row:2; writing-mode:horizontal-tb; white-space:normal; font-size:1rem; line-height:2.15; letter-spacing:.03em; padding-top:26px; border-top:1px solid #d2e0e5; }
  .manifesto-foot { flex-wrap:wrap; gap:10px 16px; }
  .manifesto-foot>span { width:100%; font-size:.75rem; letter-spacing:.075em; }
  .manifesto-foot>a { margin-left:auto; gap:10px; font-size:.875rem; }
  .purpose-bridge { padding-top:64px; }
  .purpose-layout h2,.everyday-story-heading h2 { font-size:clamp(1.4375rem,5.5vw,1.875rem); }
  .purpose-text p,.everyday-story-body p { line-height:2.05; letter-spacing:.02em; }
  .hero-inner { padding-block:72px 28px; }
  .hero-title { font-size:clamp(2.625rem,10.4vw,3.75rem); }
  .hero-description { margin-block:24px 28px; }
  .hero-description br,.intro-copy br,.services-heading>p br,.partners-copy>p br,.value-heading>p br,.value-caption br,.desktop-break { display:none; }
  .hero-visual { height:354px; grid-template-columns:1fr 1fr; grid-template-rows:1fr 22px; gap:10px; }
  .hero-visual-foot { grid-column:1/3; }
  .photo-caption { left:12px; right:12px; bottom:12px; }
  .photo-kicker { font-size:.75rem; line-height:1.7; }
  .photo-product { gap:8px; margin-top:8px; }
  .photo-product>.photo-logo { max-width:calc(100% - 24px); height:38px; padding:4px 6px; }
  .hero-bottom { gap:6px 24px; }
  h2,.partners-copy h2 { font-size:clamp(1.5rem,5.8vw,1.875rem); line-height:1.75; }
  .eyebrow { margin-bottom:20px; }
  .section-intro>div,.services-heading { grid-template-columns:1fr; gap:24px; }
  .intro-copy,.services-heading>p { padding-top:0; }
  .challenge-grid { margin-top:40px; }
  .challenge { display:flex; padding-top:24px; }
  .challenge h3 { font-size:1.25rem; }
  .challenge p { margin-block:16px 20px; }
  .services-heading { margin-bottom:32px; }
  .service-card { grid-template-columns:1fr; gap:26px; padding-block:32px 40px; }
  .service-photo { aspect-ratio:1.65; }
  .service-brand-line,.service-brand { height:56px; }
  .service-brand .product-logo { height:56px; width:224px; }
  .service-brand .product-logo-mapco { width:195px; }
  .service-description { margin-top:20px; }
  .service-use { margin-top:24px; }
  .service-use p br { display:none; }
  .service-tags { gap:8px 14px; }
  .service-tags li+li { padding-left:14px; }
  .service-cta { gap:12px; margin-top:20px; }
  .value-heading { margin-bottom:36px; }
  .value-card { padding:24px; }
  .value-card h3 { font-size:clamp(1.125rem,4.7vw,1.375rem); }
  .value-card>p { margin-block:16px 22px; }
  .value-card-tag { font-size:.875rem; }
  .foundation-layout,.partners-layout { gap:32px; }
  .commitment-promise { padding:28px 24px; }
  .commitment-promise h3 { margin-top:20px; }
  .commitment-continuity { margin-top:24px; }
  .partner-row { grid-template-columns:22px minmax(0,1fr); gap:14px; }
  .partner-row h3 { font-size:1.0625rem; }
  .scan-reference { grid-template-columns:1fr; max-width:280px; }
  .scan-reference .product-logo { grid-row:auto; }
  .scan-reference-description { margin-top:12px; }
  .everyday-story-inner { gap:36px; }
  .closing-message { padding:76px 0 72px; }
  .closing-message h2 { font-size:clamp(1.625rem,6.1vw,2.125rem); }
  .closing-message p:not(.eyebrow) { letter-spacing:.025em; }
  .closing-signature { margin-top:28px; }
  .site-footer { display:block; padding-block:32px; }
  .wordmark { font-size:30px; }
  .footer-right { justify-content:flex-start; max-width:none; margin-top:24px; gap:6px 24px; }
  .footer-right small { text-align:left; margin-top:8px; }
}
@media(max-width:359px) {
  .wrap { width:calc(100% - 36px); }
  .manifesto-stage { display:flex; flex-direction:column; align-items:center; gap:28px; }
  .manifesto-title { align-self:center; }
  .manifesto-stanza:first-child { writing-mode:horizontal-tb; white-space:normal; padding-top:0; font-size:1rem; line-height:2.1; align-self:stretch; }
  .manifesto-stanza:last-child { align-self:stretch; }
  .manifesto-foot>a { font-size:.8125rem; gap:8px; }
  .value-card { padding:20px; }
  .service-cta { font-size:.8125rem; }
  .photo-caption { left:10px; right:10px; }
  .photo-kicker { letter-spacing:0; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation:none!important; transition:none!important; }
  .reveal { opacity:1!important; transform:none!important; }
  .scroll-mark.mark-pending,.scroll-mark.vertical-mark.mark-pending { background-size:100% 100%; }
}
