@font-face {font-family:"Inter";src:url("fonts/inter-base.woff2") format("woff2");font-style:normal;font-weight:100 900;font-display:swap;}
@font-face {font-family:"Inter";src:url("fonts/inter-supplement.woff2") format("woff2");font-style:normal;font-weight:100 900;font-display:swap;unicode-range:U+004B;}
@font-face {font-family:"Noto Sans JP";src:url("fonts/notosansjp-base.woff2") format("woff2");font-style:normal;font-weight:100 900;font-display:swap;}
@font-face {font-family:"Noto Sans JP";src:url("fonts/notosansjp-supplement.woff2") format("woff2");font-style:normal;font-weight:100 900;font-display:swap;unicode-range:U+0040,U+0047,U+004B,U+0051,U+0052,U+00B7,U+2192,U+3046,U+3053,U+305A,U+3061,U+3073,U+3088,U+30A8,U+30A9,U+30AB,U+30BB,U+30BC,U+30C0,U+30C9,U+30DD,U+30EC,U+4F1D,U+4F4D,U+4F7F,U+4FE1,U+4FEE,U+50CF,U+5185,U+5358,U+53D7,U+540D,U+5730,U+5927,U+5BB9,U+5EA6,U+5F85,U+627F,U+62E1,U+63B2,U+6587,U+66F8,U+6C7A,U+6E2F,U+6E80,U+73FE,U+751F,U+753B,U+793A,U+7A4D,U+7D30,U+7D61,U+8868,U+8A66,U+8A73,U+8F09,U+9001,U+9762,U+9999,U+FF1A;}
:root { --navy:#16213B; --soft:#C7D2E0; --gray:#94A3B8; --gold:#FFD54A; --blue:#4781E8; --sky:#6AA9FF; --raised:#242F48; --inset:#131C32; --line:#36425A; background:var(--navy); color:var(--soft); color-scheme:dark; font-family:Inter,'Noto Sans JP',system-ui,sans-serif; font-size:100%; font-synthesis:none; }
* { box-sizing:border-box; }
body { margin:0; font-size:1rem; line-height:1.65; overflow-wrap:anywhere; }
[hidden] { display:none!important; }
a { color:inherit; text-underline-offset:.2em; }
a,summary { min-width:max(44px,2.75rem); min-height:max(44px,2.75rem); }
a:focus-visible,summary:focus-visible { outline:2px solid var(--sky); outline-offset:3px; }
button { font:inherit; }
.content { max-width:80rem; margin:auto; padding:0 3rem; }
.site-header { border-bottom:1px solid var(--line); }
.header-inner { min-height:5.875rem; display:flex; align-items:center; gap:1.5rem; flex-wrap:wrap; padding-top:.75rem; padding-bottom:.75rem; }
.brand { display:inline-flex; align-items:center; gap:.875rem; text-decoration:none; flex-shrink:0; }
.brand .ico { display:block; flex-shrink:0; width:2.25rem; height:2.25rem; }
.wordmark { color:#fff; font-size:1.375rem; font-weight:700; letter-spacing:-.02em; white-space:nowrap; }
.wordmark>span { color:var(--blue); }
.desktop-nav { display:flex; gap:1.5rem; margin-left:auto; }
.nav-link,.language-link { display:inline-flex; align-items:center; padding:.375rem .125rem; font-size:.875rem; font-weight:500; line-height:1.5; text-decoration:none; }
.nav-link:hover,.nav-link:focus-visible { text-decoration:underline; }
.languages { display:flex; flex-wrap:wrap; gap:.75rem; align-items:center; }
.language-link { color:var(--gray); }
.language-link[aria-current=true] { color:var(--soft); text-decoration:underline; }
.mobile-menu { display:none; margin-left:auto; }
.mobile-menu summary { padding:.5rem .75rem; border:1px solid var(--gray); cursor:pointer; list-style:none; font-weight:500; line-height:1.5; }
.mobile-menu summary::-webkit-details-marker { display:none; }
.menu-open { display:none; }
.mobile-menu[open] .menu-open { display:inline; }
.mobile-menu[open] .menu-closed { display:none; }
.mobile-menu[open] { flex-basis:100%; margin-left:0; }
.mobile-menu[open] summary { width:fit-content; margin-left:auto; max-width:100%; }
.mobile-menu nav { display:flex; flex-direction:column; gap:.5rem; padding:1rem 0; }
.mobile-menu nav .nav-link { font-size:1rem; }
.mobile-menu nav .languages { border-top:1px solid var(--line); padding-top:.75rem; }
.skip-link { position:absolute; top:1rem; left:1.25rem; z-index:10; padding:.75rem 1rem; background:var(--soft); color:var(--navy); transform:translateY(-250%); }
.skip-link:focus { transform:translateY(0); }
.hero { padding:4rem 0 4.5rem; }
.hero-layout { display:grid; grid-template-columns:1.05fr 1.15fr; gap:3rem; align-items:center; }
.hero-main,.hero-products { min-width:0; }
h1,h2,h3,p { margin:0; }
h1,h2,h3 { font-weight:600; }
h1 { font-size:3.5625rem; line-height:1.12; letter-spacing:-.04em; max-width:100%; }
.keyword-accent { color:var(--gold); font-weight:700; }
.hero-signature { display:block; font-size:1.125rem; font-weight:400; color:var(--gray); line-height:1.6; letter-spacing:0; margin-top:1.5rem; }
.kicker { color:var(--gray); font-size:.875rem; font-weight:500; letter-spacing:.03em; line-height:1.5; margin-bottom:1.25rem; }
.hero-description { color:var(--soft); font-size:1.0625rem; line-height:1.8; max-width:47ch; margin-top:1.5rem; }
.actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; width:fit-content; max-width:100%; margin-top:1.875rem; }
.action { display:flex; align-items:center; justify-content:center; padding:.8125rem 1rem; min-width:11rem; min-height:max(48px,3rem); background:var(--soft); color:var(--navy); font-size:.875rem; font-weight:500; line-height:1.5; text-align:center; text-decoration:none; border:1px solid var(--soft); }
.action:hover,.action:focus-visible { transform:translateY(-2px); text-decoration:underline; }
.action:active { box-shadow:inset 0 0 0 2px var(--navy); }
.hero-products { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.5rem; width:100%; max-width:42rem; margin:auto; align-items:start; }
.product-shot { display:block; min-width:0; max-width:20rem; width:100%; justify-self:center; text-decoration:none; }
.product-shot:nth-child(2) { margin-top:2.5rem; }
.shot-caption { display:flex; align-items:center; flex-wrap:wrap; gap:.75rem; margin-bottom:1rem; font-size:1rem; line-height:1.5; }
.app-icon { display:block; width:2.25rem; height:2.25rem; flex-shrink:0; object-fit:contain; }
.screen-frame { padding:.5rem; background:var(--inset); border:1px solid var(--line); border-radius:.75rem; }
.screenshot { display:block; width:100%; height:auto; max-width:100%; object-fit:contain; filter:none; }
.product-shot:hover .screen-frame,.product-shot:focus-visible .screen-frame { transform:translateY(-4px); }
.section { padding:4.5rem 0; border-top:1px solid var(--line); }
.section-heading { display:grid; grid-template-columns:1.2fr 1fr; gap:3rem; align-items:end; margin-bottom:2.25rem; }
h2 { font-size:2.125rem; line-height:1.25; letter-spacing:-.025em; }
h3 { font-size:1.375rem; line-height:1.35; letter-spacing:-.015em; }
.section-heading p { color:var(--gray); max-width:40ch; }
.service-item { display:grid; grid-template-columns:2rem 1fr 2rem; gap:1.5rem; padding:1.75rem .25rem; border-top:1px solid var(--line); text-decoration:none; }
.service-item h3 { font-size:1.75rem; margin-bottom:.75rem; }
.service-item p { max-width:60ch; color:var(--soft); }
.service-item:hover,.service-item:focus-visible { transform:translateX(2px); background:var(--raised); }
.service-item:hover h3,.service-item:focus-visible h3 { text-decoration:underline; text-underline-offset:.2em; }
.ordinal { color:var(--gray); font-size:.875rem; line-height:1.5; display:block; }
.service-item .ordinal { padding-top:.375rem; }
.arrow { justify-self:end; }
.service-item:hover .arrow,.service-item:focus-visible .arrow { transform:translateX(2px); }
.text-link,.image-link { display:inline-flex; align-items:center; padding:.5rem .125rem; font-weight:500; line-height:1.5; }
.text-link:hover,.text-link:focus-visible,.image-link:hover,.image-link:focus-visible,.brand:hover,.brand:focus-visible { transform:translateY(-2px); }
.section-link { margin-top:1.25rem; }
.products-section { background:var(--inset); }
.image-note { color:var(--gray); font-size:.875rem; margin-bottom:2rem; }
.product-features { display:grid; gap:3rem; }
.product-feature { display:grid; grid-template-columns:.8fr 1.2fr; gap:3rem; align-items:center; border-top:1px solid var(--line); padding-top:2.5rem; }
.tripdatahub-feature .feature-media { grid-column:1; grid-row:1; }
.tripdatahub-feature .feature-copy { grid-column:2; grid-row:1; }
.tripdatahub-feature { grid-template-columns:1.2fr .8fr; }
.feature-media,.feature-copy { min-width:0; }
.feature-title { display:flex; align-items:center; flex-wrap:wrap; gap:.875rem; margin-bottom:1.25rem; }
.feature-title h3 { font-size:2rem; }
.feature-title .app-icon { width:3rem; height:3rem; }
.feature-copy>p:not(.kicker) { margin-bottom:1.25rem; font-size:1.0625rem; color:var(--soft); }
figure { margin:0; min-width:0; }
figcaption { margin-top:.375rem; color:var(--gray); font-size:.875rem; }
.converter-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.5rem; max-width:42rem; margin:auto; }
.converter-pair figure { max-width:20rem; width:100%; justify-self:center; }
.approach-grid { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2rem; }
.approach-grid li { border-top:1px solid var(--line); padding-top:1.25rem; }
.approach-grid h3 { margin:.75rem 0; font-size:1.125rem; }
.approach-grid p { color:var(--soft); }
.about-content { display:grid; grid-template-columns:.9fr 1.2fr; gap:3rem; align-items:center; }
.about-brand { margin-bottom:1.5rem; }
.about-brand .ico { width:3.5rem; height:3.5rem; }
.about-brand .wordmark { font-size:2.125rem; }
.brand-message { max-width:30ch; color:var(--soft); font-size:1.125rem; }
.about-content h2 { margin-bottom:1.25rem; }
.text-links { display:flex; gap:1rem; flex-wrap:wrap; margin-top:1.25rem; }
.contact-section { background:var(--raised); }
.contact-content { display:grid; grid-template-columns:1fr auto; gap:3rem; align-items:center; }
.contact-content h2 { font-size:2.625rem; max-width:19ch; margin-bottom:1.25rem; }
.contact-content p { max-width:45ch; }
.contact-content .actions { grid-template-columns:1fr; margin:0; }
.footer { padding:2rem 0; border-top:1px solid var(--line); color:var(--gray); }
.footer-top,.footer-bottom { display:flex; justify-content:space-between; gap:1.5rem; flex-wrap:wrap; align-items:center; }
.footer-nav { display:flex; flex-wrap:wrap; gap:1rem; }
.footer-bottom { margin-top:1.5rem; font-size:.875rem; }
a,summary,.screen-frame,.arrow { transition:transform 180ms ease; }
html[lang=ja] { font-family:'Noto Sans JP',Inter,system-ui,sans-serif; }
html[lang=ja] [lang=en] { font-family:Inter,'Noto Sans JP',system-ui,sans-serif; }
html[lang=ja] body { line-height:1.8; }
html[lang=ja] h1 { font-size:2.6875rem; line-height:1.5; letter-spacing:0; }
html[lang=ja] h2 { line-height:1.5; letter-spacing:0; }
html[lang=ja] h3 { line-height:1.5; letter-spacing:0; }
.ja-unit { display:inline-block; max-width:100%; vertical-align:top; }
@media (max-width:79.999rem) { .hero-layout { grid-template-columns:1fr; gap:3rem; } .hero-main { max-width:48rem; } h1 { font-size:3rem; } }
@media (max-width:63.999rem) {
 .content { padding:0 2rem; } .header-inner { min-height:4.5rem; padding-top:.75rem; padding-bottom:.75rem; }
 .desktop-nav,.desktop-languages { display:none; } .mobile-menu { display:block; }
 .section-heading,.product-feature,.tripdatahub-feature,.about-content,.contact-content { grid-template-columns:1fr; gap:2rem; }
 .tripdatahub-feature .feature-copy,.tripdatahub-feature .feature-media { grid-column:auto; grid-row:auto; }
 .product-feature .feature-copy { order:0; } .product-feature .feature-media { order:1; }
 .feature-media { max-width:48rem; width:100%; }
 .approach-grid { grid-template-columns:1fr; }
 .contact-content .actions { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .section { padding:3.5rem 0; }
}
@media (max-width:47.999rem) {
 .content { padding:0 1.25rem; } .hero { padding:3rem 0; } h1 { font-size:2.25rem; letter-spacing:-.025em; }
 html[lang=ja] h1 { font-size:2rem; } .hero-signature { font-size:1.0625rem; margin-top:1.25rem; }
 .actions,.contact-content .actions { width:100%; grid-template-columns:minmax(0,1fr); }
 .action { min-width:0; width:100%; font-size:1rem; }
 .hero-products,.converter-pair { grid-template-columns:1fr; gap:2.5rem; }
 .product-shot:nth-child(2) { margin-top:0; } .service-item { grid-template-columns:1.5rem minmax(0,1fr) 1rem; gap:.75rem; }
 .service-item h3 { font-size:1.5rem; } h2 { font-size:1.75rem; } .section { padding:3rem 0; }
 .feature-title h3 { font-size:1.875rem; } .contact-content h2 { font-size:2.125rem; }
 .footer-top,.footer-bottom { align-items:flex-start; flex-direction:column; } .footer-nav { gap:.5rem 1rem; }
}
@media (prefers-reduced-motion:reduce) {
 *,*::before,*::after { transition:none!important; scroll-behavior:auto!important; }
 a:hover,a:focus-visible,summary,.screen-frame,.arrow { transform:none!important; }
 .fcur { animation:none!important; opacity:1!important; }
}




.brand { max-width:100%; flex-shrink:1; flex-wrap:wrap; }
.wordmark { max-width:100%; white-space:normal; }
.actions { width:100%; max-width:27rem; }
.action { min-width:0; }

@media (max-width:79.999rem) {
 .product-feature,.tripdatahub-feature { grid-template-columns:1fr; gap:2rem; }
 .tripdatahub-feature .feature-copy,.tripdatahub-feature .feature-media { grid-column:auto; grid-row:auto; }
 .product-feature .feature-copy { order:0; } .product-feature .feature-media { order:1; max-width:48rem; width:100%; }
}


.skip-link { transition:none; }
.image-note,figcaption,.footer-bottom { line-height:1.5; }


@media (max-width:47.999rem) {
 .hero { padding:2.5rem 0 2rem; }
 .hero-layout { gap:2rem; }
 .hero-products { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; align-items:stretch; }
 .hero-products .product-shot { max-width:none; min-width:0; padding:.75rem; border:1px solid var(--line); height:100%; }
 .hero-products .shot-caption { margin:0; gap:.5rem; font-size:.875rem; }
 .hero-products .app-icon { width:2rem; height:2rem; }
 .hero-products .screen-frame { display:none; }
 .hero-products .product-shot:nth-child(2) { margin-top:0; }
 .hero-products .product-shot:hover,.hero-products .product-shot:focus-visible { transform:translateY(-2px); }
 .converter-pair { grid-template-columns:1fr; max-width:20rem; }
 .secondary-screenshot { display:none; }
}
@media (prefers-reduced-motion:reduce) {
 .hero-products .product-shot:hover,.hero-products .product-shot:focus-visible { transform:none!important; }
}


html[lang=ja] [data-hero-ctas] { grid-auto-rows:1fr; }


html[lang=ja] .products-section .section-heading { display:block; }

/* Corporate destination pages reuse approved blocks with page-level headings. */
.corporate-page h1 { font-size:2.125rem; line-height:1.25; letter-spacing:-.025em; }
html[lang=ja] .corporate-page h1 { line-height:1.5; letter-spacing:0; }
@media(max-width:47.999rem){.corporate-page h1{font-size:1.75rem;}}
/* Existing Contact channels and form, relocated without changing the submission contract. */
.contact-page .lead { margin-top:1.25rem; max-width:50ch; }
.contact-page .eyebrow,.contact-page .note { color:var(--gray); }
.contact-page .note { margin-top:1.5rem; }
.chan { display:grid; gap:.75rem; margin-top:2rem; }
.chan>a { display:flex; gap:1rem; align-items:center; border:1px solid var(--line); padding:1rem; text-decoration:none; }
.chan .ic { width:2.5rem; flex-shrink:0; }.chan .em,.chan .lb {display:block;}.chan .lb{color:var(--gray);font-size:.875rem;}.chan .ar{margin-left:auto;}
.contact-page .links {display:flex;gap:1rem;flex-wrap:wrap;margin-top:2rem;}.contact-page .links a {padding:.5rem .125rem;}
.contact-form-wrap {max-width:48rem;}
.contact-form-section[lang=ja] {font-family:"Noto Sans JP",Inter,system-ui,sans-serif;}
.cform {background:var(--raised);border:1px solid var(--line);padding:2rem;}
.cform .frow{display:flex;flex-direction:column;gap:7px;margin-bottom:16px;}
.cform .frow.two{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.cform label{font-size:1rem;font-weight:600;color:var(--soft);}
.cform input,.cform textarea{width:100%;background:var(--inset);border:1px solid var(--gray);padding:11px 13px;color:var(--soft);font:inherit;min-height:max(48px,3rem);}
.cform textarea{resize:vertical;min-height:104px;}
.cform .turnstile-slot{margin:4px 0 16px;min-height:0;}
.cform .submit{width:100%;background:var(--soft);color:var(--navy);font:inherit;font-weight:500;padding:13px;border:1px solid var(--soft);cursor:pointer;min-height:max(48px,3rem);}
.cform input:focus-visible,.cform textarea:focus-visible,.cform button:focus-visible{outline:2px solid var(--sky);outline-offset:3px;}
.cform-ok{display:none;align-items:center;gap:11px;padding:18px;border:1px solid rgba(63,208,127,.32);background:rgba(63,208,127,.07);border-radius:13px;color:#3FD07F;font-size:14.5px;font-weight:600;}
.cform-err{display:none;margin-top:12px;font-size:13px;color:#FF6B6B;}
.cform[hidden]{display:none;}.cform-ok[show]{display:flex;}.cform-err[show]{display:block;}
@media(max-width:47.999rem){.cform{padding:1rem;}.cform .frow.two{grid-template-columns:1fr;}}
