:root{--bg:#fff7f1;--ink:#1c1c1c;--orange:#ff6b00;--shadow:0 4px 12px rgba(44,32,20,.13);--radius:16px;--container:1200px}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", YuGothic, Meiryo, sans-serif; color:var(--ink); background:var(--bg); line-height:1.6}
.mt10{margin-top:10px}
.mb20{margin-bottom:20px}
.pl10{padding-left:10px}
.fs10{font-size:10px}
.tc{text-align:center}
img{display:block;max-width:100%}
.hero-overlay{position:relative}
.hero-overlay picture{display:block}
.header-logo{width:116px;height:22px;display:block}
.section{padding:64px 24px 0}
.container{width:min(1080px,100%);margin-inline:auto}
.section-title{display:inline-flex;align-items:center;gap:10px;margin:0 0 38px;font-size:21px;line-height:1.3;font-weight:800;position:relative;padding-bottom:9px}
.section-title>span{width:23px;height:23px;border:4px solid var(--orange);border-radius:50%;flex:0 0 auto}
.section-title:after{content:"";position:absolute;left:28px;bottom:0;width:62%;border-bottom:4px dotted var(--orange)}
.section-heading-row{display:flex;align-items:flex-start;justify-content:space-between}
.text-link{font-size:15px;font-weight:700;color:var(--orange);padding-bottom:6px;border-bottom:3px dotted var(--orange)}
.company-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px 28px}
.company-card{min-height:85px;background:#fff;border-radius:12px;box-shadow:0 2px 7px rgba(0,0,0,.11);display:grid;place-items:center;transition:.22s ease}
.company-card img{width:auto;max-height:84px;object-fit:contain}
.company-card:hover{transform:translateY(-4px);box-shadow:0 9px 20px rgba(0,0,0,.15)}
.route-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px 26px}
.route-card{--c:#0054a6;position:relative;min-height:108px;background:#fff;border-radius:16px;box-shadow:var(--shadow);overflow:hidden;border-left:6px solid var(--c);padding:16px 48px 16px 18px;transition:.22s ease}
.route-card:hover{transform:translateY(-3px);box-shadow:0 10px 22px rgba(0,0,0,.16)}
.route-top{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:800;position:relative;z-index:2;padding-right:0;white-space:nowrap;line-height:1.2}
.route-top--subway,.route-top--minatomirai{font-size:14px}
.route-top img{display:block;width:20px;height:auto;object-fit:contain}
.route-top .company{color:var(--c)}
.route-stations{font-size:12px;font-weight:700;margin-top:8px;color:#262626;line-height:1.4;white-space:nowrap}
.route-arrow{position:absolute;right:16px;top:50%;width:30px;height:30px;display:grid;place-items:center;z-index:3;transform:translateY(-50%);transition:.2s}
.route-arrow img{width:18px;height:18px;display:block}
.route-card:hover .route-arrow{transform:translateX(2px) translateY(-50%) scale(1.06)}
.route-card::after{content:none}
.route-deco{display:none}
.area-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.area-card{display:block;position:relative;overflow:visible;transition:.22s ease;color:inherit;text-decoration:none}
.area-card:hover{transform:translateY(-4px);z-index:1}
.area-visual{height:220px;position:relative;overflow:hidden;border-radius:22px 22px 0 0}
.area-visual img{width:100%;height:100%;object-fit:cover}
.area-label{position:absolute;left:16px;top:16px;padding:8px 18px;border-radius:0 999px 999px 0;color:#fff;font-weight:800;font-size:15px;background:var(--area)}
.area-info{position:relative;z-index:1;margin-top:-40px;padding:0 0 12px}
.area-body{background:#fff;border-radius:22px;box-shadow:var(--shadow);padding:24px 22px 22px;position:relative}
.area-body small{font-family:'Ysabeau Infant','Yu Gothic',YuGothic,Meiryo,sans-serif;font-weight:800;color:var(--area);letter-spacing:.06em}
.area-body h3{font-size:28px;margin:0 0 10px;padding-bottom:8px;border-bottom:3px dotted var(--area)}
.area-body p{font-size:14px;min-height:76px;margin:0 0 18px;line-height:1.65}
.area-body .area-link{position:relative;width:100%;height:46px;border-radius:28px;background:var(--area);color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center;text-align:center;padding:0 56px;box-shadow:0 4px 0 color-mix(in srgb,var(--area),#000 18%)}
.area-body .area-link b{position:absolute;right:20px;top:50%;width:24px;height:24px;background:url("../img/area/Button_Arrow_3.png") center/contain no-repeat;color:transparent;display:block;font-size:0;line-height:0;transform:translateY(-50%)}
.area-orange{--area:#f97300}.area-green{--area:#7fc51f}.area-blue{--area:#0788ce}
.area-orange .area-body .area-link b{background-image:url("../img/area/Button_Arrow.png")}
.area-green .area-body .area-link b{background-image:url("../img/area/Button_Arrow_2.png")}
.area-blue .area-body h3{font-size:23px}
.category-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.category-card{--c:#00b8a9;--tint:#e3f5f2;display:grid;grid-template-columns:116px 1fr 44px;align-items:center;min-height:112px;background:var(--tint);border-radius:12px;overflow:hidden;box-shadow:0 3px 8px rgba(0,0,0,.12);transition:.22s ease}
.category-card:hover{transform:translateY(-3px)}
.category-thumb{width:116px;height:112px;padding:10px;display:block;background:var(--tint)}
.category-thumb img{width:100%;height:100%;object-fit:cover;border-radius:12px;background:var(--c)}
.category-card strong{font-size:16px;line-height:1.55;padding:16px 0 16px 22px}
.category-card .category-icon{width:31px;height:auto;justify-self:center}
.category-card span{display:none}
.footer{text-align:center;padding:70px 0;background:#FDF5F0 no-repeat center / cover;color:var(--ink)}
.footer-brand{font-size:21px}.footer-brand strong{font-family:serif}.footer-brand em{font-family:cursive;font-weight:700}.footer small{display:block;color:#555;font-size:10px;margin-top:4px}
.mobile-only{display:none}
@media(max-width:900px){.route-grid{grid-template-columns:repeat(2,1fr)}.category-grid{grid-template-columns:1fr}.area-grid{gap:14px}.area-body h3{font-size:23px}}
@media(max-width:767px){
  .section-title{font-size:19px;margin-bottom:25px;padding-bottom:7px;gap:7px}.section-title>span{width:20px;height:20px;border-width:4px;}.section-title:after{left:21px;border-bottom-width:3px}
  .desktop-only{display:none}.mobile-only{display:block}
  .company-grid{grid-template-columns:repeat(2,1fr);gap:12px}.company-card{min-height:72px;border-radius:10px}
  .company-card img{width:87px;height:auto}
  .route-grid{grid-template-columns:1fr;gap:10px}.route-card{min-height:91px;padding:13px 12px 10px;border-left-width:5px}.route-top{font-size:16px;padding-right:66px;padding-top:9px;}.route-top--subway,.route-top--minatomirai{font-size:15px}.route-stations{font-size:14px;margin-top:6px;}.route-arrow{width:26px;height:26px;right:9px;top:50%;transform:translateY(-50%)}.route-deco{right:38px;top:10px;transform:scale(.82);transform-origin:right top}
  .route-cta{margin-top:25px}.route-cta a{display:flex;align-items:center;justify-content:center;width:100%;gap:12px;background:var(--orange);color:#fff;border-radius:26px;padding:12px 20px;font-size:16px;font-weight:800;box-shadow:0 4px 0 color-mix(in srgb,var(--orange),#000 18%)}.route-cta-arrow{width:22px;height:22px;display:block;flex:0 0 auto}
  .area-grid{grid-template-columns:1fr;gap:22px}.area-card{border-radius:16px}.area-visual{height:165px}.area-body{padding:14px 16px 17px}.area-body h3{font-size:24px}.area-body p{font-size:14px;min-height:auto;font-weight: 500;}.area-body .area-link{height:40px;font-size:15px;padding:0 48px}.area-body .area-link b{right:16px;width:22px;height:22px}
  .category-grid{grid-template-columns:minmax(0,1fr);justify-items:center;width:100%;gap:11px}.category-card{grid-template-columns:87px minmax(0,1fr) 51px;width:100%;max-width:374px;height:87px;min-height:87px}.category-thumb{width:87px;height:87px;padding:8px}.category-thumb img{width:100%;height:100%}.category-card strong{min-width:0;font-size:14px;padding-left:3px;line-height: 18px;}.category-card span{width:24px;height:24px;font-size:18px}
  .footer{padding:35px 0 50px;background:url("../img/sp/footer_bg.png") #fff no-repeat bottom center / contain}.footer-brand{font-size:16px}
}
/* ========================================
   PC表示：FV以外を約90％のスケール感に調整
   ======================================== */
@media (min-width: 901px) {
  /* コンテンツ全体 */
  /* .container は既にデフォルトで 1080px に統一 */

  /* セクション見出し */
  /* .section-title は既にデフォルトで 21px に統一 */

  .section-title > span {
    /* 既にデフォルトで 16px に統一 */
  }

  .section-title::after {
    left: 25px;
  }

  .text-link {
    font-size: 14px;
    padding-bottom: 5px;
  }

  /* ピックアップ企業 */
  .company-grid {
    gap: 24px 28px;
  }

  .company-card {
    min-height: 95px;
  }

  .company-card img {
    width: 105px;
    height: auto;
    max-height: 84px;
  }

  /* 路線カード */
  .route-grid {
    gap: 18px 26px;
  }

  .route-card {
    min-height: 112px;
    padding: 30px 18px 16px;
  }

  .route-top {
    gap: 8px;
    font-size: 17px;
    padding-right: 72px;
  }

  .route-top--subway,
  .route-top--minatomirai {
    font-size: 16px;
  }

  .route-stations {
    letter-spacing: 1px;
    font-size: 14px;
    margin-top: 10px;
    padding-top: 0;
    padding-left: 4px;
  }

  .route-arrow img {
    width: 26px;
    height: 26px;
  }

  .route-card::after {
    width: 54px;
    height: 54px;
  }

  .route-arrow {
    right: 16px;
    top: 50%;
    width: 32px;
    height: 32px;
    font-size: 24px;
    transform: translateY(-50%);
  }

  .route-deco {
    right: 45px;
    top: 15px;
    width: 58px;
    height: 36px;
  }

  /* 人気エリア */
  .area-grid {
    gap: 20px;
  }

  .area-card {
    border-radius: 16px;
  }

  .area-visual {
    height: 185px;
  }

  .area-label {
    top: 16px;
    padding: 8px 18px;
    font-size: 14px;
  }

  .area-body {
    padding: 16px 20px 18px;
  }

  .area-body h3 {
    margin: 0px 0 9px;
    padding-bottom: 8px;
    font-size: 24px;
  }

  .area-body p {
    min-height: 61px;
    margin-bottom: 16px;
    font-size: 14px;
    font-weight: 500;
    padding: 9px 0px;
  }

  .area-body .area-link {
    height: 49px;
    font-size: 16px;
    padding: 0 48px;
  }

  .area-body .area-link b {
    right: 16px;
    width: 20px;
    height: 20px;
  }

  /* 条件カード */
  .category-grid {
    gap: 18px;
  }

  .category-card {
    grid-template-columns: 104px 1fr 90px;
    min-height: 101px;
  }
  .category-thumb {
    width: 104px;
    height: 101px;
    padding: 9px;
  }

  .category-card strong {
    padding: 14px;
    font-size: 15px;
  }

  .category-card span {
    width: 29px;
    height: 29px;
    font-size: 22px;
  }

  /* フッター */
  .footer {
    padding:92px 0px 33px 0px;
  }

  .footer-brand {
    font-size: 19px;
  }
}
.hero {
  position: relative;
  width: 100%;
  overflow: hidden;
  background: #fff7f1;
}

.hero picture {
  display: block;
  width: 100%;
}

.hero > picture > img {
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
}

@media(min-width:768px) {
  .hero {
    width: min(100%, 2880px);
    max-width: none;
    margin-inline: auto;
    aspect-ratio: 1440 / 421;
  }

  .hero picture {
    height: 100%;
  }

  .hero > picture > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
    max-width: none;
  }
}

@media(max-width:767px) {
  .hero{min-height:0}
  .section{padding:57px 16px 0}
}

.page-header{padding:24px 24px 0;}
.title_area{max-width:1080px;margin:0 auto 18px;padding:0 12px}
.title_area h1{font-size:28px;line-height:1.1;font-weight:800;margin:0;color:var(--ink)}
.lead{max-width:1080px;margin:0 auto 28px;padding:0 12px;color:#333}
.lead p{margin:0 0 10px;font-size:15px;line-height:1.8}
.lead span{display:inline-block;color:#666;font-size:13px}
#page-top-outer{position:fixed;z-index:1000}
.page-top{bottom:90px;cursor:pointer;display:block;position:fixed;right:45px;z-index:1000;width:60px;height:60px;text-decoration:none}
.page-top::before{background:#F07300;border-radius:50%;content:"";height:60px;position:absolute;right:0;top:0;width:60px}
.page-top::after{border-top:solid 2px #fff;border-right:solid 2px #fff;content:"";height:10px;position:absolute;right:24px;top:26px;transform:rotate(-45deg);width:10px}
.sns_area{margin:0 auto;width:min(1024px,100%);padding:0 24px}
.sns_area ul{align-items:center;display:flex;justify-content:flex-end;margin:0 0 58px;padding:0;list-style:none}
.sns_area li:nth-child(-n+2){margin-right:15px}
.sns_area a{display:block}
.sns_area img{display:block;width:50px;height:50px}
.type_logo_area{align-items:center;display:flex;flex-wrap:wrap;justify-content:center;margin:0 auto;width:400px;max-width:100%;padding:0;background:none}
.type_logo_area a{display:inline-flex;align-items:center;color:var(--ink);text-decoration:none}
.type_logo_area a:hover{opacity:.7}
.type_logo_area p{flex:0 0 100%;margin:10px 0 20px;color:#000;font-size:10px;line-height:1.5;text-align:center}
.header-logo{width:116px;height:22px;display:block}
.ml10{margin-left:10px}
.type-logo-link{padding-left:0}
.type-logo{width:116px;height:22px;display:block}
.category-card .category-icon{width:23px;height:auto;justify-self:center}

a.company-card.company-small.elgar img{
  width:auto;
  height:32px;
}

.company-small img{
  width: 122px;
  height:auto;
}

.header-logo-container {
  position: absolute;
  top: 10px;
  left: 10%;
  width: 116px;
  height: 22px;
  padding: 0;
  background: none;
  z-index: 10;
  pointer-events: none;
}

.header-logo-wrap {
  display: block;
  width: 116px;
  height: 22px;
  pointer-events: auto;
}

.header-logo {
  width: 116px;
  height: 22px;
  display: block;
}

a {
  color: inherit;
  text-decoration: none;
}

.route-card,
.route-card:hover,
.route-card:focus {
  color: var(--ink);
  text-decoration: none;
}
.route-all-card {
  border-left: 0;
  background: #fff6ec url("../img/image 30.png") right 4px bottom -14px / auto 140% no-repeat;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 30px 24px 22px 26px;
  color: var(--ink);
}

.route-all-card::after {
  content: "";
  position: absolute;
  right: 14px;
  bottom: 0;
  width: 170px;
  height: 72px;
  background: linear-gradient(to top, rgba(255,138,39,.22), rgba(255,138,39,0));
  opacity: .55;
  pointer-events: none;
}

.route-all-text {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 2px;
  font-weight: 800;
  line-height: 1.45;
}

.route-all-text span,
.route-all-text strong {
  display: block;
  font-size: 20px;
}

.route-all-arrow {
  position: relative;
  z-index: 1;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--orange);
  color: #fff;
  display: grid;
  place-items: center;
  font-size: 30px;
  line-height: 1;
  font-weight: 700;
  transition: transform .2s ease;
}

.route-all-card:hover .route-all-arrow {
  transform: translateX(2px) scale(1.06);
}

@media(max-width:900px){.route-all-card{display:none}}
@media(max-width:767px){.header-logo-container{top:10px;left:5%;width:116px;height:22px}.header-logo{width:116px;height:22px}.footer{padding:35px 0 50px;background: #FDF5F0 no-repeat bottom center / contain}.sns_area{width:100%;padding:0}.sns_area ul{justify-content:flex-end;margin:0 5% 20px 0}.sns_area li{width:10%;max-width:50px}.sns_area li:nth-child(-n+2){margin-right:3%}.sns_area a{display:block;position:relative;height:0;overflow:hidden;padding-top:100%;width:100%}.sns_area img{position:absolute;top:0;left:0;width:100%;height:100%}.type_logo_area{max-width:420px;width:auto}.type_logo_area .mt10{margin-top:10px}.page-top{bottom:76px;right:4%;width:50px;height:50px}.page-top::before{height:50px;width:50px}.page-top::after{right:19px;top:21px}}
@media (min-width: 901px) {
  .route-all-prefecture {
    color: #F07300;
    font-size: 23px;
    font-style: normal;
  }
}
/* 文字数が多い条件カードはSPで高さ内に収める */
.category-card--daily strong,
.category-card--style strong {
  font-size: 15px;
}

@media(max-width:767px) {
  .category-card--daily strong,
  .category-card--style strong {
    font-size: 13px;
    line-height: 16px;
    padding-top: 8px;
    padding-bottom: 8px;
  }
}
@media (min-width: 901px) {
  .route-all-card {
    border-left: 0;
    background: #fff6ec url(../img/image 30.png) right 27px bottom 2px / auto 100% no-repeat;
    overflow: hidden;
  }

  .route-all-card::after {
    content: none;
  }

  .route-all-prefecture {
    color: #F07300;
    font-size: 20px;
    font-style: normal;
  }

  .route-all-arrow {
    position: absolute;
    right: 18px;
    top: 50%;
    width: 44px;
    height: 44px;
    border-radius: 0;
    background: none;
    color: inherit;
    display: block;
    transform: translateY(-50%);
  }

  .route-all-arrow img {
    display: block;
    width: 78%;
    height: auto;
    object-fit: contain;
  }

  .route-all-card:hover .route-all-arrow {
    transform: translate(2px, -50%) scale(1.06);
  }
}
@media(max-width:767px){
  .company-card img{width:87px;height:auto}
  .company-small img{width:108px}
  a.company-card.company-small.elgar img{height:25px}
}

@media(max-width:767px) {
  .header-logo-container {
    top: 20px;
    left: 22px;
  }
}
