/* ===============================
   TOHTO2025 Footer Styles — Refactored
   - Fewer !important, deduped rules, clearer breakpoints
   - Mobile rules consolidated into a single block
   - Keep a *very small* number of !important only where
     third‑party inline styles (JS) must be neutralized
   =============================== */

/* --------------------------------
 * 0) Tokens & Utilities
 * -------------------------------- */
:root{
  --blue:#265ba6;
  --blue-dark:#1f4a8d;
  --ink:#222;
  --muted:#666;
  --border:#e5e6ea;
}
.wrap{max-width:1120px;margin-inline:auto;padding-inline:20px;box-sizing:border-box;}
html{overflow-x:clip;} /* keep sticky elements intact */
@supports not (overflow:clip){html{overflow-x:hidden;}}
body{overflow-x:visible;overflow-y:visible;}

/* --------------------------------
 * 1) Top Banners
 * -------------------------------- */
.ftbnr{background:#F5F8F7;}
.ftbnr .wrap{padding-block:50px;}
.bnr-row{list-style:none;display:flex;gap:20px;align-items:center;padding:0;margin:0;}
.bnr4{justify-content:center;}
.bnr3{justify-content:center;padding-top:50px;}
.bnr-row img{width:auto;display:block;}

/* Banner sizing tweaks */
.ftbnr .bnr-row img{height:auto;width:auto;display:block;object-fit:contain;}
.ftbnr .bnr3 img{max-height:44px;}

@media (max-width:750px){
  .bnr-row{flex-wrap:wrap;gap:14px 12px;justify-content:center;}
  .bnr-row li{flex:0 1 calc(33.333% - 12px);text-align:center;}
  .bnr-row img{height:44px;margin-inline:auto;}
  .ftbnr .bnr4{justify-content:center;gap:24px;}
  .ftbnr .bnr3{justify-content:center;gap:18px;}
  .ftbnr .bnr4 li{flex:0 0 calc(50% - 12px);} /* 2col */
  .ftbnr .bnr3 li{flex:0 0 calc(33.333% - 12px);} /* 3col */
  .ftbnr .bnr3.is-onecol-sp li{flex-basis:100%;}
}

/* --------------------------------
 * 2) Sitemap / Company block
 * -------------------------------- */
.ftrsitemap{background:#EBEBEC;}
.ftrsitemap .wrap{padding-block:30px;}
.ftrsitemap-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:48px;align-items:start;}
@media (max-width:1024px){.ftrsitemap-grid{gap:32px;}}
@media (max-width:750px){.ftrsitemap-grid{grid-template-columns:1fr;gap:28px;}}

.company-contact .about{display:flex;gap:24px;align-items:center;}
.company-contact .ftrlogo img{height:auto;max-width:220px;}
.company-contact .catch{color:#6b6f75;line-height:1.8;margin:6px 0 0;font-size:14px;}
.company-contact .corp{margin:22px 0 0;color:#333;line-height:1.9;}
.company-contact .corp p{margin:0;}

.tel-cta{margin-top:18px;}
.tel-cta .telcap{font-size:14px;color:#333;margin:0 0 6px;}
.tel-cta .tel{font-weight:700;font-size:34px;letter-spacing:0.02em;margin:0;}
.tel-cta .tel a{color:#000;text-decoration:none;}

.btnwrap{margin-top:16px;}
.btn-contact{display:inline-flex;align-items:center;gap:10px;padding:18px 26px;border-radius:999px;background:var(--blue);color:#fff;text-decoration:none;font-weight:700;box-shadow:0 6px 20px rgba(0,0,0,.08);transition:.2s ease;}
.btn-contact:hover{background:var(--blue-dark);transform:translateY(1px);box-shadow:0 3px 10px rgba(0,0,0,.06);} 
.btn-contact .arr{opacity:.9;}

.ftr-nav h3{font-weight:800;font-size:20px;color:var(--blue);letter-spacing:.04em;margin:0 0 12px;text-align:left;}
.ftr-nav ul{list-style:none;margin:0;padding:0;display:grid;gap:6px;}
.ftr-nav li a{color:#111;text-decoration:none;padding-block:6px;display:inline-block;border-bottom:1px solid transparent;}
.ftr-nav li a:hover{border-bottom-color:var(--blue);} 

@media (max-width:750px){
  .company-contact{order:1;text-align:center;}
  .company-contact .about{flex-direction:column;gap:10px;}
  .company-contact .catch{font-size:13px;}
  .tel-cta .tel{font-size:28px;}
  .btn-contact{width:100%;justify-content:center;padding:16px 22px;margin-inline:auto;}
  .ftr-nav{order:2;}
  .ftr-nav h3{text-align:center;margin-top:6px;}
  .ftr-nav ul{gap:8px;}
  .ftr-nav li a{display:block;text-align:center;padding:8px 6px;border-bottom:1px dashed #cfd3d8;}
}

/* --------------------------------
 * 3) Privacy row
 * -------------------------------- */
.ftr-privacy{background:#666;}
.ftr-privacy .wrap{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;padding:15px 0;}
.ftr-privacy .ftr-links{display:flex;flex-wrap:wrap;gap:18px;list-style:none;margin:0;padding:0 20px;}
.ftr-privacy a,.copyright{color:#fff;font-size:12px;text-decoration:none;}
.copyright{margin-left:auto;}
@media (max-width:750px){
  .ftr-privacy .wrap{justify-content:center;}
  .copyright{width:100%;text-align:center;margin:4px 0 0;}
}

/* --------------------------------
 * 4) RELO GROUP strip
 * -------------------------------- */
#footerGroup{background:#fff;border-top:1px solid var(--border);} 
#footerGroup .wrap{display:flex;align-items:center;padding:9px 20px;gap:28px;}
#footerGroup img{height:47px;width:auto;}
#footerGroup p{margin:0;font-weight:500;font-size:12px;color:#333;}
@media (max-width:750px){#footerGroup .wrap{justify-content:flex-start;}}

/* --------------------------------
 * 5) Page‑Top (PC only)
 * -------------------------------- */
@media (min-width:751px){
  #footerButtons #toTop{position:fixed;right:18px;bottom:18px;width:80px;height:80px;border-radius:50%;background:#000;color:#fff;display:flex;align-items:center;justify-content:center;flex-direction:column;text-decoration:none;z-index: 10000;}
  #footerButtons #toTop span{font-size:12px;font-weight:600;line-height:1.2;text-align:center;}
  #footerButtons #toTop:hover{filter:brightness(1.1);} 
}
@media print, screen and (min-width:1044px){
  #footerButtons #toTop img{height:7px;margin-bottom:7px;}
}
@media screen and (min-width:751px) and (max-width:1043px){
  #footerButtons #toTop img{height:calc(7 * 100vw / 1044);margin-bottom:5px;}
}

/* --------------------------------
 * 6) Mobile fixed buttons (#footerButtons)
 *     — consolidated, deduped, minimal !important
 * -------------------------------- */
@media (max-width:750px){
  /* Bar */
  #footerButtons{
    position:fixed;bottom:0;left:0;right:0;z-index:10000;
    background:#005ba8;overflow:hidden;transform:none;margin:0;
    padding-bottom:env(safe-area-inset-bottom);
  }

  /* Layout: 4 equal columns */
  #footerButtons > ul{
    display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
    gap:0;margin:0;padding:0;list-style:none;width:100%;
  }

  /* Items */
  #footerButtons > ul > li{
    display:block;min-width:0;height:80px;list-style:none;
  }

  /* Links */
  #footerButtons a{
    display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;
    height:100%;width:100%;text-align:center;color:#fff;text-decoration:none;background:transparent;
  }
  #footerButtons li + li a{border-left:1px solid rgba(255,255,255,.15);} 
  #footerButtons a img,#footerButtons a svg{max-height:28px;width:auto;}

  /* Role switches */
  #footerButtons .is-pc{display:none;}
  #footerButtons .is-sp{display:block;}

  /* Ensure content below isn’t hidden */
  body{padding-bottom:88px;}

  /* Hide PC top button on mobile */
  #footerButtons #toTop{display:none;}

  /* — Inline-style neutralizers (last resort) —
     Some sliders/utilities inject inline width/transform/display.
     Keep to the strict minimum and *scope narrowly*. */
  #footerButtons > ul[style]{width:100% !important;transform:none !important;}
  #footerButtons > ul > li[style*="display:none"]{display:block !important;}
}

/* --------------------------------
 * 7) Small Viewport Units (optional)
 * -------------------------------- */
@supports (width:100svw){
  @media (max-width:750px){
    #footerButtons{width:100svw;max-width:100svw;}
  }
}
