:root { --ink:#071b2c; --ink-2:#0d2d44; --paper:#f3f4ef; --white:#fff; --lime:#c8f238; --line:rgba(7,27,44,.16); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:"Hiragino Kaku Gothic ProN","Yu Gothic","YuGothic","Noto Sans JP",sans-serif; font-feature-settings:"palt"; }
a { color:inherit; text-decoration:none; }
main { overflow:hidden; }

.site-header { position:absolute; z-index:20; top:0; left:0; width:100%; height:108px; display:flex; align-items:center; justify-content:space-between; padding:0 5vw; color:var(--white); }
.brand,.footer-brand { display:flex; align-items:center; gap:14px; }
.brand-mark { width:50px; height:50px; border-radius:50%; display:grid; place-items:center; color:var(--ink); background:var(--lime); font:900 16px/1 Arial,sans-serif; letter-spacing:-.05em; }
.brand-name { display:grid; gap:2px; }
.brand-name strong,.footer-brand strong { font:800 12px/1.2 Arial,sans-serif; letter-spacing:.12em; }
.brand-name small,.footer-brand small { font-size:10px; letter-spacing:.06em; }
.desktop-nav { display:flex; align-items:center; gap:34px; font-size:13px; font-weight:700; }
.desktop-nav a { position:relative; }
.desktop-nav a:not(.nav-contact)::after { content:""; position:absolute; left:0; bottom:-7px; width:0; height:1px; background:var(--lime); transition:width .25s ease; }
.desktop-nav a:hover::after { width:100%; }
.nav-contact { color:var(--ink); background:var(--lime); padding:15px 24px; border-radius:999px; }
.mobile-menu { display:none; }

.hero { position:relative; min-height:820px; height:100svh; color:var(--white); background:var(--ink); }
.hero-image,.hero-shade,.hero-grid { position:absolute; inset:0; }
.hero-image { background:url('images/osaka.jpg') center 52%/cover no-repeat; transform:scale(1.02); }
.hero-shade { background:linear-gradient(90deg,rgba(4,17,29,.94) 0%,rgba(4,17,29,.69) 44%,rgba(4,17,29,.24) 75%,rgba(4,17,29,.42) 100%),linear-gradient(0deg,rgba(4,17,29,.72),transparent 55%); }
.hero-grid { opacity:.25; background-image:linear-gradient(rgba(255,255,255,.13) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.13) 1px,transparent 1px); background-size:90px 90px; mask-image:linear-gradient(90deg,black 0%,transparent 70%); }
.hero-content { position:relative; z-index:2; padding:24vh 5vw 8vh; max-width:980px; }
.eyebrow { display:flex; align-items:center; gap:12px; margin:0 0 28px; font:700 11px/1 Arial,sans-serif; letter-spacing:.18em; }
.eyebrow span { width:48px; height:2px; background:var(--lime); }
.eyebrow.light { color:rgba(255,255,255,.75); }
.hero h1,.manifesto h2,.services h2,.approach h2,.company h2,.contact h2 { margin:0; font-weight:800; letter-spacing:-.055em; line-height:1.15; }
.hero h1 { font-size:clamp(62px,7.4vw,116px); }
.hero h1 em { font-style:normal; color:var(--lime); }
.hero-copy { margin:34px 0 0; font-size:16px; line-height:2; letter-spacing:.07em; }
.round-link { margin-top:42px; width:210px; height:64px; padding:0 14px 0 24px; border:1px solid rgba(255,255,255,.42); border-radius:999px; display:flex; align-items:center; justify-content:space-between; font-size:13px; font-weight:700; transition:background .25s,color .25s; }
.round-link b { width:38px; height:38px; border-radius:50%; display:grid; place-items:center; color:var(--ink); background:var(--lime); }
.round-link:hover { background:var(--white); color:var(--ink); }
.hero-index { position:absolute; z-index:2; right:5vw; bottom:9vh; display:flex; align-items:baseline; gap:12px; }
.hero-index span { font:900 108px/1 Arial,sans-serif; color:transparent; -webkit-text-stroke:1px rgba(255,255,255,.35); }
.hero-index b { font:700 13px/1 Arial,sans-serif; color:var(--lime); }
.scroll-note { position:absolute; z-index:2; right:30px; top:50%; margin:0; writing-mode:vertical-rl; font:700 9px/1 Arial; letter-spacing:.18em; color:rgba(255,255,255,.7); }
.scroll-note i { display:inline-block; width:1px; height:55px; margin-top:14px; background:var(--lime); }

.section-label { width:100%; max-width:1320px; margin:0 auto; padding:0 5vw; display:flex; align-items:center; gap:15px; font:700 10px/1 Arial; letter-spacing:.16em; }
.section-label span { width:34px; height:34px; border:1px solid var(--line); border-radius:50%; display:grid; place-items:center; color:#4b5b64; }
.section-label p { margin:0; }
.section-label.inverse span { border-color:rgba(255,255,255,.25); color:var(--lime); }
.manifesto { padding:118px 0 140px; }
.manifesto-body { width:min(1120px,90vw); margin:95px auto 84px; display:grid; grid-template-columns:1.15fr .85fr; gap:8vw; align-items:end; }
.manifesto h2 { font-size:clamp(48px,6vw,88px); }
.manifesto-copy { border-left:1px solid var(--line); padding-left:44px; }
.manifesto-copy p { margin:0 0 20px; font-size:15px; line-height:2.15; letter-spacing:.05em; }
.about-visual { width:min(1180px,90vw); height:540px; margin:0 auto; position:relative; }
.about-photo { width:78%; height:100%; margin-left:auto; background:url('images/network.jpg') center/cover no-repeat; filter:saturate(.85) contrast(1.05); }
.about-card { position:absolute; left:0; top:62px; width:34%; min-width:320px; padding:52px 45px; background:var(--lime); display:grid; gap:30px; }
.about-card span,.about-card i { font:700 10px/1 Arial; letter-spacing:.18em; font-style:normal; }
.about-card strong { font-size:34px; line-height:1.5; letter-spacing:-.03em; }
.about-card i { padding-top:26px; border-top:1px solid rgba(7,27,44,.3); }

.services { background:var(--ink); color:var(--white); padding:120px 0 130px; position:relative; }
.services::after { content:"CONNECT"; position:absolute; right:-20px; top:180px; font:900 12vw/1 Arial; color:transparent; -webkit-text-stroke:1px rgba(255,255,255,.055); pointer-events:none; }
.services-heading { width:min(1120px,90vw); margin:82px auto 72px; display:grid; grid-template-columns:1.1fr .9fr; gap:6vw; position:relative; z-index:1; }
.services-heading .eyebrow { grid-column:1/-1; margin-bottom:0; }
.services h2 { font-size:clamp(45px,5vw,76px); }
.services-heading>p:last-child { margin:12px 0 0; align-self:end; max-width:460px; font-size:15px; line-height:2; color:rgba(255,255,255,.68); }
.service-list { width:min(1180px,90vw); margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid rgba(255,255,255,.18); }
.service-card { position:relative; min-height:490px; padding:40px 36px; border-right:1px solid rgba(255,255,255,.18); transition:background .3s,color .3s; }
.service-card:first-child { border-left:1px solid rgba(255,255,255,.18); }
.service-card:hover { background:var(--lime); color:var(--ink); }
.service-number { font:700 11px/1 Arial; color:var(--lime); }
.service-card:hover .service-number { color:var(--ink); }
.service-english { margin:58px 0 12px; font:700 10px/1 Arial; letter-spacing:.16em; color:rgba(255,255,255,.5); }
.service-card:hover .service-english { color:rgba(7,27,44,.6); }
.service-card h3 { margin:0 0 25px; font-size:28px; letter-spacing:-.03em; }
.service-body { min-height:108px; margin:0; font-size:14px; line-height:2; color:rgba(255,255,255,.66); }
.service-card:hover .service-body { color:var(--ink); }
.service-card ul { list-style:none; padding:25px 0 0; margin:0; border-top:1px solid rgba(255,255,255,.18); display:flex; flex-wrap:wrap; gap:8px; }
.service-card li { padding:6px 9px; border:1px solid rgba(255,255,255,.2); border-radius:999px; font-size:10px; }
.service-card:hover li { border-color:rgba(7,27,44,.3); }
.service-arrow { position:absolute; right:30px; bottom:28px; font-size:20px; }

.approach { min-height:740px; position:relative; padding:145px max(5vw,calc((100vw - 1180px)/2)); display:grid; grid-template-columns:.85fr 1.15fr; gap:10vw; align-items:center; }
.approach-word { position:absolute; left:-20px; top:55px; font:900 500px/.8 Arial; letter-spacing:-.12em; color:rgba(7,27,44,.035); }
.approach-copy,.approach ol { position:relative; z-index:1; }
.approach h2 { font-size:clamp(48px,5.3vw,82px); }
.approach ol { list-style:none; padding:0; margin:0; border-top:1px solid var(--line); }
.approach li { display:grid; grid-template-columns:70px 1fr; align-items:center; padding:28px 0; border-bottom:1px solid var(--line); }
.approach li>span { color:#76838a; font:700 11px/1 Arial; }
.approach li strong { display:block; margin-bottom:8px; font:800 20px/1 Arial; letter-spacing:.08em; }
.approach li p { margin:0; font-size:13px; color:#617079; }

.company { background:var(--white); padding:120px 0 140px; }
.company-heading { width:min(1120px,90vw); margin:80px auto 55px; display:grid; grid-template-columns:1fr 1fr; align-items:end; gap:6vw; }
.company-heading .eyebrow { grid-column:1/-1; margin-bottom:0; }
.company h2 { font-size:clamp(54px,6vw,86px); }
.company-heading>p:last-child { margin:0 0 10px; font-size:14px; line-height:2; color:#617079; }
.company-table { width:min(1000px,90vw); margin:0 auto; }
.company-table div { display:grid; grid-template-columns:240px 1fr; border-top:1px solid var(--line); padding:28px 0; }
.company-table div:last-child { border-bottom:1px solid var(--line); }
.company-table dt { font-size:12px; font-weight:700; color:#66757d; }
.company-table dd { margin:0; font-size:15px; line-height:1.9; font-weight:600; letter-spacing:.04em; }

.contact { background:var(--lime); color:var(--ink); text-align:center; padding:90px 5vw 105px; }
.contact-line { display:flex; justify-content:center; align-items:center; gap:12px; margin-bottom:40px; }
.contact-line span { width:65px; height:1px; background:var(--ink); }
.contact-line i { width:9px; height:9px; border-radius:50%; background:var(--ink); }
.contact>p:first-of-type { margin:0 0 28px; font:800 11px/1 Arial; letter-spacing:.18em; }
.contact h2 { font-size:clamp(45px,6vw,80px); }
.contact-copy { margin:30px 0; font-size:14px; }
.contact>a { display:inline-flex; align-items:center; gap:45px; margin-top:12px; padding:18px 22px 18px 30px; border:1px solid var(--ink); border-radius:999px; font-size:13px; font-weight:700; }
.contact>a b { width:35px; height:35px; border-radius:50%; display:grid; place-items:center; color:var(--lime); background:var(--ink); }

footer { background:var(--ink); color:var(--white); padding:80px 5vw 32px; }
.footer-brand .brand-mark { width:64px; height:64px; }
.footer-brand div { display:grid; gap:5px; }
.footer-address { margin:55px 0 70px; display:flex; gap:55px; font-size:12px; line-height:1.8; color:rgba(255,255,255,.65); }
.footer-address p { margin:0; }
.footer-bottom { padding-top:25px; border-top:1px solid rgba(255,255,255,.14); display:flex; justify-content:space-between; font:700 8px/1 Arial; letter-spacing:.13em; color:rgba(255,255,255,.45); }
.footer-main { display:flex; justify-content:space-between; align-items:center; }
.footer-nav { display:flex; gap:28px; font-size:11px; font-weight:700; color:rgba(255,255,255,.72); }

/* Secondary pages */
.inner-header { position:absolute; }
.sub-hero { position:relative; min-height:560px; padding:190px 5vw 90px; color:var(--white); background:var(--ink); overflow:hidden; }
.sub-hero::before { content:""; position:absolute; inset:0 0 0 48%; background:url('images/osaka.jpg') center/cover no-repeat; opacity:.36; }
.sub-hero-service::before { background-image:url('images/development.jpg'); opacity:.4; }
.sub-hero-company::before { background-position:center 35%; opacity:.32; }
.sub-hero::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,var(--ink) 0%,rgba(7,27,44,.96) 45%,rgba(7,27,44,.25) 100%); }
.sub-hero-grid { position:absolute; inset:0; z-index:1; background-image:linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px); background-size:80px 80px; }
.sub-hero-copy { position:relative; z-index:2; max-width:920px; }
.sub-hero-copy h1 { margin:0 0 30px; font-size:clamp(62px,8vw,112px); line-height:1; letter-spacing:-.06em; }
.sub-hero-copy>p:last-child { margin:0; font-size:16px; line-height:2; letter-spacing:.06em; }
.sub-hero-mark { position:absolute; z-index:2; right:4vw; bottom:-30px; font:900 230px/.8 Arial; color:transparent; -webkit-text-stroke:1px rgba(255,255,255,.15); }
.breadcrumb { width:min(1180px,90vw); margin:0 auto; height:88px; display:flex; align-items:center; gap:15px; border-bottom:1px solid var(--line); font:700 10px/1 Arial; letter-spacing:.12em; color:#6b7880; }
.breadcrumb p { margin:0; color:var(--ink); }
.sub-intro { width:min(1120px,90vw); margin:0 auto; padding:125px 0 140px; display:grid; grid-template-columns:1fr .8fr; gap:9vw; align-items:start; }
.sub-intro h2,.values h2,.philosophy h2,.profile-heading h2,.process h2 { margin:0; font-size:clamp(48px,5.5vw,82px); line-height:1.18; letter-spacing:-.055em; }
.sub-intro-text { margin-top:34px; padding-left:42px; border-left:1px solid var(--line); }
.sub-intro-text p { margin:0 0 24px; font-size:15px; line-height:2.2; letter-spacing:.04em; }
.purpose-banner { min-height:620px; display:flex; align-items:center; background:linear-gradient(90deg,rgba(7,27,44,.93),rgba(7,27,44,.5)),url('images/network.jpg') center/cover no-repeat; color:var(--white); }
.purpose-banner>div { width:min(1120px,90vw); margin:0 auto; }
.purpose-banner span { font:700 10px/1 Arial; letter-spacing:.18em; color:var(--lime); }
.purpose-banner h2 { max-width:780px; margin:34px 0; font-size:clamp(48px,6vw,86px); line-height:1.2; letter-spacing:-.05em; }
.purpose-banner p { max-width:550px; font-size:14px; line-height:2; color:rgba(255,255,255,.7); }
.values { padding:130px 0; }
.values-heading { width:min(1120px,90vw); margin:70px auto 55px; }
.value-grid { width:min(1120px,90vw); margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); }
.value-grid article { min-height:340px; padding:38px 32px; border-right:1px solid var(--line); }
.value-grid article:first-child { border-left:1px solid var(--line); }
.value-grid span { font:700 10px/1 Arial; color:#7b878e; }
.value-grid h3 { margin:70px 0 22px; font-size:25px; }
.value-grid p { margin:0; font-size:13px; line-height:2; color:#63717a; }

.service-intro { padding-bottom:110px; }
.service-details { width:min(1180px,90vw); margin:0 auto 140px; border-top:1px solid var(--line); }
.service-details article { display:grid; grid-template-columns:.85fr 1.15fr; gap:8vw; padding:80px 0; border-bottom:1px solid var(--line); }
.detail-title>span { font:700 11px/1 Arial; color:#75838b; }
.detail-title>p { margin:52px 0 12px; font:700 10px/1 Arial; letter-spacing:.16em; color:#75838b; }
.detail-title h2 { margin:0; font-size:40px; letter-spacing:-.04em; }
.detail-content>p { margin:0 0 42px; font-size:15px; line-height:2.15; }
.detail-content h3 { margin:0 0 18px; font-size:12px; letter-spacing:.12em; }
.detail-content ul { list-style:none; padding:0; margin:0; border-top:1px solid var(--line); }
.detail-content li { padding:18px 8px; border-bottom:1px solid var(--line); font-size:13px; font-weight:700; }
.detail-content li::before { content:"↗"; margin-right:15px; color:#779311; }
.process { padding:125px 0 135px; color:var(--white); background:var(--ink); }
.process-heading { width:min(1120px,90vw); margin:70px auto 65px; display:grid; grid-template-columns:1fr .8fr; gap:8vw; align-items:end; }
.process-heading p { margin:0 0 10px; font-size:14px; line-height:2; color:rgba(255,255,255,.65); }
.process ol { width:min(1120px,90vw); list-style:none; padding:0; margin:0 auto; display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid rgba(255,255,255,.2); }
.process li { position:relative; min-height:240px; padding:30px 24px; border-right:1px solid rgba(255,255,255,.2); }
.process li:first-child { border-left:1px solid rgba(255,255,255,.2); }
.process li b { display:block; color:var(--lime); font:700 11px/1 Arial; }
.process li strong { display:block; margin:70px 0 14px; font-size:19px; }
.process li p { margin:0; font-size:11px; color:rgba(255,255,255,.58); }

.philosophy { padding:120px 0 140px; }
.philosophy-body { width:min(1000px,90vw); margin:85px auto 0; text-align:center; }
.philosophy-body .eyebrow { justify-content:center; }
.philosophy-body>p:last-child { max-width:680px; margin:42px auto 0; font-size:15px; line-height:2.2; }
.profile-section { padding:125px 0 140px; color:var(--white); background:var(--ink); }
.profile-heading { width:min(1000px,90vw); margin:0 auto 65px; }
.profile-table { width:min(1000px,90vw); margin:0 auto; }
.profile-table div { display:grid; grid-template-columns:250px 1fr; padding:28px 0; border-top:1px solid rgba(255,255,255,.18); }
.profile-table div:last-child { border-bottom:1px solid rgba(255,255,255,.18); }
.profile-table dt { font-size:12px; color:rgba(255,255,255,.56); }
.profile-table dd { margin:0; font-size:15px; line-height:1.9; font-weight:600; }
.location { width:min(1180px,90vw); margin:140px auto; min-height:540px; position:relative; }
.location-image { width:78%; height:540px; margin-left:auto; background:url('images/osaka.jpg') center/cover no-repeat; }
.location-card { position:absolute; left:0; top:55px; width:38%; min-width:350px; padding:52px 44px; color:var(--ink); background:var(--lime); }
.location-card>p,.location-card>span { font:700 10px/1 Arial; letter-spacing:.18em; }
.location-card h2 { margin:32px 0 24px; font-size:38px; }
.location-card address { font-size:13px; line-height:2; font-style:normal; }
.location-card>span { display:block; margin-top:40px; padding-top:25px; border-top:1px solid rgba(7,27,44,.25); }
.page-next { padding:95px 5vw 105px; text-align:center; background:var(--lime); }
.page-next>p { margin:0 0 20px; font:700 10px/1 Arial; letter-spacing:.18em; }
.page-next h2 { margin:0 0 38px; font-size:clamp(42px,5vw,70px); letter-spacing:-.05em; }
.page-next a { display:inline-flex; align-items:center; gap:38px; padding:15px 18px 15px 26px; border:1px solid var(--ink); border-radius:999px; font-size:12px; font-weight:700; }
.page-next a b { width:34px; height:34px; display:grid; place-items:center; border-radius:50%; color:var(--lime); background:var(--ink); }

@media (max-width:900px) {
  .site-header { height:84px; padding:0 22px; }
  .brand-mark { width:43px; height:43px; }
  .brand-name strong { font-size:10px; }
  .brand-name small { font-size:8px; }
  .desktop-nav { display:none; }
  .mobile-menu { display:block; position:relative; }
  .mobile-menu summary { list-style:none; width:48px; height:48px; border-radius:50%; background:var(--lime); display:grid; place-content:center; gap:7px; cursor:pointer; }
  .mobile-menu summary::-webkit-details-marker { display:none; }
  .mobile-menu summary span { width:19px; height:2px; background:var(--ink); }
  .mobile-menu nav { position:absolute; right:0; top:58px; width:min(280px,80vw); padding:18px; background:var(--white); color:var(--ink); box-shadow:0 16px 40px rgba(0,0,0,.2); }
  .mobile-menu nav a { display:block; padding:14px 8px; border-bottom:1px solid var(--line); font-size:13px; font-weight:700; }
  .hero { min-height:720px; }
  .hero-content { padding:20vh 22px 8vh; }
  .hero h1 { font-size:clamp(48px,15vw,74px); }
  .hero-copy { font-size:13px; line-height:1.9; }
  .hero-index { right:20px; bottom:35px; }
  .hero-index span { font-size:65px; }
  .scroll-note,.desktop-only { display:none; }
  .section-label { padding:0 22px; }
  .manifesto,.services,.company { padding-top:85px; padding-bottom:90px; }
  .manifesto-body { margin:65px auto 55px; display:block; }
  .manifesto h2,.services h2,.approach h2 { font-size:48px; }
  .manifesto-copy { margin-top:42px; padding-left:22px; }
  .about-visual { height:auto; }
  .about-photo { width:100%; height:390px; }
  .about-card { position:relative; left:auto; top:auto; width:calc(100% - 30px); min-width:0; margin:-60px 0 0; padding:38px 30px; }
  .about-card strong { font-size:28px; }
  .services-heading { margin:60px auto 45px; display:block; }
  .services-heading h2 { margin:25px 0 30px; }
  .service-list { grid-template-columns:1fr; }
  .service-card,.service-card:first-child { border-left:1px solid rgba(255,255,255,.18); border-bottom:1px solid rgba(255,255,255,.18); min-height:400px; }
  .service-body { min-height:auto; margin-bottom:32px; }
  .approach { padding:95px 22px; display:block; }
  .approach-word { font-size:280px; }
  .approach ol { margin-top:65px; }
  .company-heading { margin:55px auto 42px; display:block; }
  .company-heading h2 { margin:22px 0 25px; font-size:52px; }
  .company-table div { grid-template-columns:1fr; gap:12px; padding:24px 0; }
  .contact { padding:75px 22px 85px; }
  .contact h2 { font-size:42px; }
  .footer-address { display:grid; gap:8px; }
  .footer-bottom { display:grid; gap:12px; }
}

@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition-duration:.01ms !important; } }

@media (max-width:900px) {
  .footer-main { display:block; }
  .footer-nav { margin-top:35px; flex-wrap:wrap; gap:18px 24px; }
  .sub-hero { min-height:500px; padding:165px 22px 70px; }
  .sub-hero::before { inset:0; opacity:.24; }
  .sub-hero::after { background:linear-gradient(90deg,rgba(7,27,44,.96),rgba(7,27,44,.48)); }
  .sub-hero-copy h1 { font-size:52px; }
  .sub-hero-copy>p:last-child { font-size:13px; }
  .sub-hero-mark { font-size:130px; }
  .breadcrumb { height:70px; }
  .sub-intro { padding:85px 0; display:block; }
  .sub-intro h2,.values h2,.philosophy h2,.profile-heading h2,.process h2 { font-size:46px; }
  .sub-intro-text { margin-top:45px; padding-left:22px; }
  .purpose-banner { min-height:560px; }
  .purpose-banner h2 { font-size:46px; }
  .values { padding:90px 0; }
  .values-heading { margin-top:55px; }
  .value-grid { grid-template-columns:1fr; }
  .value-grid article,.value-grid article:first-child { min-height:280px; border-left:1px solid var(--line); border-bottom:1px solid var(--line); }
  .value-grid h3 { margin-top:45px; }
  .service-details article { grid-template-columns:1fr; gap:45px; padding:65px 0; }
  .detail-title>p { margin-top:38px; }
  .process { padding:90px 0; }
  .process-heading { display:block; margin:55px auto 45px; }
  .process-heading p { margin-top:28px; }
  .process ol { grid-template-columns:1fr 1fr; }
  .process li:nth-child(3) { border-left:1px solid rgba(255,255,255,.2); }
  .philosophy { padding:90px 0; }
  .profile-section { padding:90px 0; }
  .profile-table div { grid-template-columns:1fr; gap:12px; }
  .location { margin:90px auto; }
  .location-image { width:100%; height:420px; }
  .location-card { position:relative; left:auto; top:auto; width:calc(100% - 25px); min-width:0; margin-top:-55px; padding:38px 30px; }
  .page-next { padding:75px 22px 85px; }
  .page-next h2 { font-size:42px; }
}
