/* www.airtrunk.co.jp 静的版
   数値は原本（Wix）の実測値: research/wix-crawl-20260926/layout/*.json
   PC = 幅 1000px 以上（内容幅 980px を中央寄せ）/ スマホ = 999px 以下（原本の幅 320px 基準。u(N) は build.js が展開） */

:root {
  --text: #555563;
  --green: #33c381;
  --green-link: #15ae68;
  --blue: #008afc;
  --line: rgba(85, 85, 99, .25);
  --jp: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  --en: "Jost", "Futura", "Century Gothic", var(--jp);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; color: var(--text); font-family: var(--jp); font-weight: 400; font-size: 16px; line-height: 1.5; background: #fff; }
img { max-width: 100%; height: auto; display: block; }
p, h1, h2, h3, dl, dd, ul, ol { margin: 0; }
ul, ol { padding: 0; }
a { color: inherit; }
em { font-style: normal; color: var(--green); }

.skip { position: absolute; left: 8px; top: -100px; z-index: 100; padding: 8px 16px; background: #fff; color: var(--text); clip-path: inset(50%); }
.skip:focus { top: 8px; clip-path: none; }

.container { width: 980px; margin: 0 auto; }

/* ---------- header ---------- */
.site-header { height: 86px; background: #fff; }
.header-inner { width: 1060px; margin: 0 auto; height: 100%; display: flex; align-items: flex-start; justify-content: space-between; padding-top: 19px; }
.logo img { width: 190px; height: 40px; }
.gnav { display: flex; gap: 22px; }
.gnav a { display: block; padding: 10px 10px; font-size: 18px; line-height: 23px; letter-spacing: .05em; font-weight: 500; text-decoration: none; color: var(--text); }
.gnav a:hover { color: var(--green); }
.menu-toggle { display: none; }

/* ---------- buttons ---------- */
.btns { display: flex; flex-direction: column; align-items: center; gap: 29px; }
.btn { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 263px; height: 54px; border: 1px solid var(--green); border-radius: 40px; background: #fff; color: var(--green); font-size: 18px; font-weight: 700; text-decoration: none; line-height: 1; padding: 0 28px; }
.btn::after { content: ""; position: absolute; right: 24px; top: 50%; width: 8px; height: 8px; border-top: 2px solid currentColor; border-right: 2px solid currentColor; transform: translateY(-50%) rotate(45deg); }
.btn:hover { background: var(--green); color: #fff; }
.btn-blue { border-color: var(--blue); color: var(--blue); }
.btn-blue:hover { background: var(--blue); color: #fff; }

/* ---------- home: hero ---------- */
.hero { position: relative; height: 760px; overflow: hidden; }
.hero picture, .hero-img { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero-img { object-fit: cover; object-position: center bottom; }
.hero-text { position: absolute; top: 92px; left: calc(50% + 26px); }
.hero-title { font-size: 50px; line-height: 75px; font-weight: 400; }
.hero-title .l { display: block; }
.hero-title .tight { letter-spacing: -5px; }
.hero-lead { margin-top: 14px; font-size: 21px; line-height: 46.2px; }

/* ---------- home: sections ---------- */
.sec-title { font-family: var(--en); font-weight: 400; font-size: 64px; line-height: 84px; letter-spacing: .05em; color: var(--green); }
.sec-service { padding: 72px 0 109px; }
.sec-service .sec-title { margin-bottom: 50px; }
.svc { display: flex; justify-content: space-between; align-items: flex-start; }
.svc-media { width: 460px; }
.svc-body { width: 490px; }
.sec-service .svc-body { margin-top: -14px; }
.svc-title { font-size: 36px; line-height: 50.4px; letter-spacing: -.02em; font-weight: 600; color: var(--green); }
/* TOP の本文は 16px・行間 1.5 倍・段落の間は空けない（決定録 D9） */
.svc-text { margin-top: 19px; font-size: 16px; line-height: 1.8; }
/* SERVICE・Air Luggage の本文（右側の列）だけ行間 1.8 倍。空行は【革新的なB2Bモデル】の前の 1 つだけ（決定録 D10） */
.svc-text .blank { height: 1.8em; }
.sec-service .btns { margin-top: 49px; }

.sec-al { padding: 29px 0 110px; }
.al-media { width: 470px; }
.al-media img { width: 100%; object-fit: cover; }
.al-1 { aspect-ratio: 470 / 294; }
.al-2, .al-3 { aspect-ratio: 470 / 170; }
.al-4 { aspect-ratio: 470 / 164; }
.al-2 { margin-top: 60px; }
.al-3 { margin-top: 61px; }
.al-4 { margin-top: 52px; }
.sec-al .svc-body { width: 483px; margin-right: 7px; }
.al-title { font-size: 30px; line-height: 42px; color: var(--blue); }
.btns-al { margin-top: 38px; }

.sec-news { padding: 26px 0 0; }
.news-list { list-style: none; margin-top: 4px; }
.news-row { display: flex; align-items: flex-start; gap: 0; padding: 17px 0; border-bottom: 1px solid var(--line); }
.news-row time { flex: 0 0 107px; padding-top: 3px; font-size: 13px; line-height: 19px; font-weight: 500; }
.news-row p { flex: 1; font-size: 16px; line-height: 1.5; }
.btns-center { margin-top: 133px; }

.sec-about { padding: 171px 0 120px; } /* D17: 下はフッターまでの空きを下層ページ（.page-sub main）と同じに。原本は 373px */
.sec-about .sec-title { margin-bottom: 18px; }
.about { display: flex; justify-content: space-between; align-items: flex-start; }
.about-main { width: 452px; }
.about-table > div { display: flex; padding: 14px 0 15px; border-bottom: 1px solid rgba(51, 195, 129, .5); }
.about-table dt { flex: 0 0 129px; font-size: 16px; line-height: 1.5; letter-spacing: -.01em; color: var(--green); }
.about-table dd { flex: 1; font-size: 16px; line-height: 1.5; letter-spacing: -.01em; }
.about-main .btns-center { margin-top: 52px; }
.about-map { width: 486px; height: 622px; margin-top: 1px; }
.about-map iframe { width: 100%; height: 100%; border: 0; display: block; }

/* ---------- sub pages ---------- */
.page-sub main { padding: 60px 0 120px; }
.page-title { font-size: 45px; line-height: 65px; font-weight: 300; color: var(--green); text-align: center; }
.page-title-en { font-family: var(--en); font-size: 56px; line-height: 78px; letter-spacing: .05em; }
.btn-back { width: 81px; height: 30px; font-size: 13px; padding: 0; margin-top: -35px; }
.btn-back::after { display: none; }

.page-news .news-list { margin-top: 38px; }
.page-news .news-row { padding: 17px 0; }
/* ニュース一覧ページは原本の大きさのまま（D9 の対象外） */
.page-news .news-row p { font-size: 17px; line-height: 25.5px; }
.page-news .news-row time { flex-basis: 123px; font-size: 14px; line-height: 14px; font-weight: 400; padding-top: 3px; }

.sctl-table { width: 797px; margin: 50px auto 0; }
.sctl-table > div { display: flex; padding: 17px 0 32px; border-bottom: 1px solid rgba(85, 85, 99, .15); }
.sctl-table dt { flex: 0 0 205px; padding-left: 23px; font-size: 16px; line-height: 24px; color: var(--green); }
.sctl-table dd { flex: 1; font-size: 16px; line-height: 24px; }
.sctl-table a { color: var(--green-link); }
.sctl-table a.plain { color: var(--green); text-decoration: none; }

.legal { width: 780px; }
.legal-body { margin-top: 45px; font-size: 16px; line-height: 28.8px; }
.legal-body p:empty { min-height: 1em; }
.legal-body ol, .legal-body ul { padding-left: 1.8em; }
.legal-body li > p { margin: 0; }
.legal-body ul ul { list-style: circle; }
.legal-body ul ul ul { list-style: square; }
/* 本文は特定商取引のページの本文（16px）に揃える（決定録 D8）。見出し（18px の小見出し・24px の緑の見出し）は原本の大きさ */
.legal [data-fs="12"], .legal [data-fs="14"], .legal [data-fs="16"], .legal [data-fs="17"] { font-size: 16px; }
.legal [data-fs="18"] { font-size: 18px; }
.legal [data-fs="24"] { font-size: 24px; }
.legal [data-fs="12"][data-lh="2.4"] { line-height: 1.8; }
/* 行の高さは原本の比率（行の高さ÷文字の大きさ）を data-lh で持つ */
.legal [data-lh="1.4"] { line-height: 1.4; }
.legal [data-lh="1.5"] { line-height: 1.5; }
.legal [data-lh="1.6"] { line-height: 1.6; }
.legal [data-lh="1.7"] { line-height: 1.7; }
.legal [data-lh="1.8"] { line-height: 1.8; }
.legal [data-lh="2.4"] { line-height: 2.4; }
.legal a, .news-row a { text-decoration: none; }
.legal .g { color: var(--green); }
.legal .r { text-align: right; }
.legal .c { text-align: center; }
.legal .b { font-weight: 600; }
.legal-contact { display: flex; gap: 18px; align-items: flex-start; margin: 60px 0 0 31px; font-size: 16px; line-height: 1.6; }
.legal-contact img { flex: 0 0 100px; }
.legal-contact-text [data-fs] { font-size: 16px; }
.legal-contact-text p:first-child::first-line { font-weight: 700; }

/* ---------- footer ---------- */
.site-footer { background: var(--green); color: #fff; height: 190px; }
.footer-inner { width: 940px; margin: 0 auto; display: flex; justify-content: space-between; padding-top: 60px; }
.footer-logo img { width: 189px; height: 40px; }
.copyright { margin-top: 7px; font-size: 14px; line-height: 21px; font-weight: 500; }
.footer-nav { display: flex; gap: 8px; margin-right: 2px; }
.footer-nav a { display: inline-flex; align-items: center; justify-content: center; height: 34px; padding: 0 20px; min-width: 136px; border: 1px solid #fff; border-radius: 40px; color: #fff; text-decoration: none; font-size: 12px; font-weight: 700; }
.footer-nav a + a { min-width: 198px; }
.footer-nav a:hover { background: #fff; color: var(--green); }

/* ================= スマホ（原本は幅 320px 基準） ================= */
@media (max-width: 999px) {
  /* 767px 前後のタブレット幅でも写真が大きくなりすぎないよう、内容幅は最大 460px で中央に寄せる */
  .container, .legal { width: auto; max-width: 460px; margin: 0 max(min(calc(20 * 100vw / 320), 24px), calc((100% - 460px) / 2)); }

  .site-header { height: min(calc(61 * 100vw / 320), 73.2px); position: relative; z-index: 20; }
  .header-inner { width: auto; padding: min(calc(19 * 100vw / 320), 22.8px) min(calc(15 * 100vw / 320), 18px) 0; align-items: center; }
  .logo img { width: min(calc(131 * 100vw / 320), 157.2px); height: min(calc(28 * 100vw / 320), 33.6px); }
  .menu-toggle { display: block; position: relative; width: min(calc(40 * 100vw / 320), 48px); height: min(calc(40 * 100vw / 320), 48px); margin-top: min(calc(-6 * 100vw / 320), -7.2px); border: 0; border-radius: 50%; background: var(--green); cursor: pointer; }
  .menu-toggle span, .menu-toggle span::before, .menu-toggle span::after { position: absolute; left: 50%; width: min(calc(16 * 100vw / 320), 19.2px); height: 2px; margin-left: min(calc(-8 * 100vw / 320), -9.6px); background: #fff; content: ""; transition: transform .2s; }
  .menu-toggle span { top: 50%; margin-top: -1px; }
  .menu-toggle span::before { top: min(calc(-5 * 100vw / 320), -6px); left: 0; margin-left: 0; }
  .menu-toggle span::after { top: min(calc(5 * 100vw / 320), 6px); left: 0; margin-left: 0; }
  .menu-toggle[aria-expanded="true"] span { background: transparent; }
  .menu-toggle[aria-expanded="true"] span::before { transform: translateY(min(calc(5 * 100vw / 320), 6px)) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span::after { transform: translateY(min(calc(-5 * 100vw / 320), -6px)) rotate(-45deg); }
  .gnav { display: none; position: fixed; inset: min(calc(61 * 100vw / 320), 73.2px) 0 0 0; flex-direction: column; align-items: center; gap: min(calc(8 * 100vw / 320), 9.6px); padding-top: min(calc(40 * 100vw / 320), 48px); background: rgba(255, 255, 255, .97); }
  .gnav.is-open { display: flex; }
  .gnav a { font-size: min(calc(18 * 100vw / 320), 21.6px); }

  .btn { width: min(calc(240 * 100vw / 320), 288px); height: min(calc(40 * 100vw / 320), 48px); font-size: min(calc(17 * 100vw / 320), 20.4px); padding: 0 min(calc(24 * 100vw / 320), 28.8px); }
  .btn::after { right: min(calc(18 * 100vw / 320), 21.6px); width: min(calc(7 * 100vw / 320), 8.4px); height: min(calc(7 * 100vw / 320), 8.4px); }
  .btns { gap: min(calc(10 * 100vw / 320), 12px); }

  .hero { height: min(calc(386 * 100vw / 320), 463.2px); }
  .hero-img { object-position: center; }
  .hero-text { top: min(calc(18 * 100vw / 320), 21.6px); left: min(calc(15 * 100vw / 320), 18px); }
  .hero-title { font-size: min(calc(26 * 100vw / 320), 31.2px); line-height: min(calc(39 * 100vw / 320), 46.8px); }
  .hero-title .tight { letter-spacing: min(calc(-2.6 * 100vw / 320), -3.12px); }
  .hero-lead { margin-top: min(calc(14 * 100vw / 320), 16.8px); font-size: min(calc(13 * 100vw / 320), 15.6px); line-height: min(calc(28.6 * 100vw / 320), 34.32px); }

  .sec-title { font-size: min(calc(31 * 100vw / 320), 37.2px); line-height: min(calc(41 * 100vw / 320), 49.2px); }
  .sec-service { padding: min(calc(25 * 100vw / 320), 30px) 0 0; }
  .sec-service .sec-title { margin-bottom: min(calc(7 * 100vw / 320), 8.4px); }
  .svc { display: block; }
  .svc-media, .svc-body, .al-media, .sec-al .svc-body { width: auto; margin: 0; }
  .sec-service .svc-body { margin-top: min(calc(27 * 100vw / 320), 32.4px); }
  .svc-title { font-size: min(calc(23 * 100vw / 320), 27.6px); line-height: min(calc(32.2 * 100vw / 320), 38.64px); }
  .svc-text { margin-top: min(calc(9 * 100vw / 320), 10.8px); font-size: min(calc(12 * 100vw / 320), 14.4px); }
  .sec-service .btns { margin-top: min(calc(15 * 100vw / 320), 18px); }

  .sec-al { padding: min(calc(69 * 100vw / 320), 82.8px) 0 0; }
  .al-1 { aspect-ratio: 280 / 246; }
  .al-2, .al-3 { aspect-ratio: 280 / 101; }
  .al-4 { aspect-ratio: 280 / 98; }
  .al-2, .al-3, .al-4 { margin-top: min(calc(10 * 100vw / 320), 12px); }
  .sec-al .svc-body { margin-top: min(calc(39 * 100vw / 320), 46.8px); }
  .al-title { font-size: min(calc(21 * 100vw / 320), 25.2px); line-height: min(calc(29.4 * 100vw / 320), 35.28px); }
  .btns-al { margin-top: min(calc(20 * 100vw / 320), 24px); }
  .btns-al .btn { width: min(calc(160 * 100vw / 320), 192px); height: min(calc(42 * 100vw / 320), 50.4px); font-size: min(calc(12 * 100vw / 320), 14.4px); padding: 0 min(calc(22 * 100vw / 320), 26.4px) 0 min(calc(10 * 100vw / 320), 12px); overflow: hidden; white-space: nowrap; }

  .sec-news { padding: min(calc(60 * 100vw / 320), 72px) 0 0; }
  .sec-news .sec-title { font-size: min(calc(34 * 100vw / 320), 40.8px); line-height: min(calc(45 * 100vw / 320), 54px); }
  .news-list { margin-top: min(calc(10 * 100vw / 320), 12px); }
  .news-row { display: block; padding: min(calc(14 * 100vw / 320), 16.8px) 0 min(calc(20 * 100vw / 320), 24px); border-bottom: 0; }
  .news-row time { display: block; padding: 0; font-size: min(calc(12 * 100vw / 320), 14.4px); line-height: min(calc(17 * 100vw / 320), 20.4px); }
  .news-row p { margin-top: min(calc(8 * 100vw / 320), 9.6px); font-size: min(calc(12 * 100vw / 320), 14.4px); }
  .btns-center { margin-top: min(calc(40 * 100vw / 320), 48px); }
  .sec-news .btns-center .btn { width: min(calc(200 * 100vw / 320), 240px); font-size: min(calc(14 * 100vw / 320), 16.8px); }

  .sec-about { padding: min(calc(77 * 100vw / 320), 92.4px) 0 min(calc(60 * 100vw / 320), 72px); } /* D17: 下はフッターまでの空きを下層ページ（.page-sub main）と同じに。原本は min(calc(386 * 100vw / 320), 463.2px) */
  .sec-about .sec-title { font-size: min(calc(32 * 100vw / 320), 38.4px); line-height: min(calc(43 * 100vw / 320), 51.6px); margin-bottom: min(calc(14 * 100vw / 320), 16.8px); }
  .about { display: block; }
  .about-main { width: auto; }
  .about-table > div { display: block; padding: min(calc(0 * 100vw / 320), 0px) 0 min(calc(25 * 100vw / 320), 30px); border-bottom: 0; }
  .about-table dt { font-size: min(calc(12 * 100vw / 320), 14.4px); }
  .about-table dd { margin-top: min(calc(6 * 100vw / 320), 7.2px); padding: 0; font-size: min(calc(12 * 100vw / 320), 14.4px); }
  .about-main .btns-center { margin-top: min(calc(32 * 100vw / 320), 38.4px); }
  .about-main .btns-center .btn { width: min(calc(199 * 100vw / 320), 238.8px); font-size: min(calc(14 * 100vw / 320), 16.8px); }
  .about-map { display: none; }

  .page-sub main { padding: min(calc(15 * 100vw / 320), 18px) 0 min(calc(60 * 100vw / 320), 72px); }
  .page-title { font-size: min(calc(21 * 100vw / 320), 25.2px); line-height: min(calc(30 * 100vw / 320), 36px); font-weight: 400; }
  .page-title-en { font-size: min(calc(28 * 100vw / 320), 33.6px); line-height: min(calc(39.2 * 100vw / 320), 47.04px); }
  .btn-back { display: flex; width: min(calc(60 * 100vw / 320), 72px); height: min(calc(24 * 100vw / 320), 28.8px); font-size: min(calc(10 * 100vw / 320), 12px); margin: 0 0 min(calc(10 * 100vw / 320), 12px) min(calc(24 * 100vw / 320), 28.8px); }
  .page-news .news-list { margin-top: min(calc(12 * 100vw / 320), 14.4px); }
  /* ニュース一覧ページは原本の大きさのまま（D9 の対象外） */
.page-news .news-row p { font-size: 17px; line-height: 25.5px; }
.page-news .news-row time { font-size: min(calc(12 * 100vw / 320), 14.4px); line-height: min(calc(17 * 100vw / 320), 20.4px); }
  .page-news .news-row p { font-size: min(calc(13.22 * 100vw / 320), 15.86px); line-height: min(calc(19.83 * 100vw / 320), 23.8px); }

  .sctl-table { width: auto; margin: min(calc(30 * 100vw / 320), 36px) min(calc(-5 * 100vw / 320), -6px) 0; }
  .sctl-table > div { display: block; padding: 0 0 min(calc(22 * 100vw / 320), 26.4px); border-bottom: 0; }
  .sctl-table dt { padding: 0; font-size: min(calc(15 * 100vw / 320), 18px); line-height: min(calc(19.5 * 100vw / 320), 23.4px); }
  .sctl-table dd { margin-top: min(calc(6 * 100vw / 320), 7.2px); font-size: min(calc(12 * 100vw / 320), 14.4px); line-height: min(calc(18 * 100vw / 320), 21.6px); }

  .legal-body { margin-top: min(calc(20 * 100vw / 320), 24px); font-size: min(calc(15 * 100vw / 320), 18px); line-height: min(calc(27 * 100vw / 320), 32.4px); }
  .legal [data-fs="12"], .legal [data-fs="14"], .legal [data-fs="16"], .legal [data-fs="17"] { font-size: min(calc(12 * 100vw / 320), 14.4px); }
  .legal [data-fs="18"] { font-size: min(calc(16 * 100vw / 320), 19.2px); }
  .legal [data-fs="24"] { font-size: min(calc(20 * 100vw / 320), 24px); }
  .legal-contact { display: block; margin: min(calc(40 * 100vw / 320), 48px) 0 0; font-size: min(calc(12 * 100vw / 320), 14.4px); line-height: 1.6; }
  .legal-contact img { width: min(calc(70 * 100vw / 320), 84px); height: min(calc(70 * 100vw / 320), 84px); margin: 0 auto min(calc(12 * 100vw / 320), 14.4px); }
  .legal-contact-text [data-fs] { font-size: min(calc(12 * 100vw / 320), 14.4px); }

  .site-footer { height: auto; padding: min(calc(26 * 100vw / 320), 31.2px) 0 min(calc(40 * 100vw / 320), 48px); }
  .footer-inner { width: auto; display: block; padding: 0; text-align: center; }
  .footer-brand { display: flex; flex-direction: column; align-items: center; }
  .footer-logo img { width: min(calc(185 * 100vw / 320), 222px); height: min(calc(26 * 100vw / 320), 31.2px); object-fit: contain; }
  .copyright { margin-top: min(calc(15 * 100vw / 320), 18px); font-size: min(calc(11 * 100vw / 320), 13.2px); line-height: min(calc(16.5 * 100vw / 320), 19.8px); }
  .footer-nav { flex-direction: column; align-items: center; gap: min(calc(7 * 100vw / 320), 8.4px); margin: min(calc(41 * 100vw / 320), 49.2px) 0 0; }
  .footer-nav a, .footer-nav a + a { min-width: 0; height: min(calc(26 * 100vw / 320), 31.2px); padding: 0 min(calc(12 * 100vw / 320), 14.4px); font-size: min(calc(12 * 100vw / 320), 14.4px); }
}
