@charset "UTF-8";
:root{--ink:#202326;--muted:#6d7278;--paper:#f7f6f3;--line:#deddd8;--accent:#d6a925;--white:#fff;--max:1180px;--serif:"Yu Mincho","Hiragino Mincho ProN",serif;--sans:Inter,"Noto Sans JP","Hiragino Kaku Gothic ProN",Meiryo,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--sans);line-height:1.85;font-size:16px}img{max-width:100%;height:auto;display:block}a{color:inherit}button{font:inherit}.site-header{position:static;top:0;z-index:100;background:rgba(247,246,243,.94);backdrop-filter:blur(14px);border-bottom:1px solid rgba(32,35,38,.08)}.header-inner{max-width:var(--max);margin:auto;min-height:86px;padding:0 26px;display:flex;align-items:center;gap:40px}.brand img{width:156px;height:auto}.site-nav{margin-left:auto;display:flex;align-items:center;gap:4px}.site-nav a{padding:10px 12px;text-decoration:none;font-size:13px;letter-spacing:.04em;position:relative}.site-nav a:after{content:"";position:absolute;left:12px;right:12px;bottom:4px;height:1px;background:var(--ink);transform:scaleX(0);transform-origin:right;transition:transform .3s ease}.site-nav a:hover:after{transform:scaleX(1);transform-origin:left}.menu-toggle{display:none;margin-left:auto;border:0;background:none;padding:10px}.menu-toggle span{display:block;width:25px;height:2px;background:var(--ink);margin:5px 0}.menu-toggle b{font-size:9px;letter-spacing:.14em;font-weight:500}.hero{max-width:1400px;margin:0 auto;padding:24px 24px 0}.hero img{width:100%;border-radius:2px;box-shadow:0 18px 45px rgba(20,22,24,.10)}.section{max-width:var(--max);margin:0 auto;padding:100px 26px}.section-label{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#8a8d91}.quick-links{padding-top:58px;padding-bottom:76px}.quick-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.quick-card{position:relative;padding:26px 18px;display:flex;align-items:center;gap:18px;text-decoration:none;min-height:92px;transition:background .3s ease,transform .3s ease}.quick-card+.quick-card{border-left:1px solid var(--line)}.quick-card:hover{background:var(--white);transform:translateY(-3px)}.quick-card .num{font-size:11px;color:#9b9b97;letter-spacing:.12em}.quick-card span:nth-child(2){font-family:var(--serif);font-size:20px}.quick-card i{margin-left:auto;font-style:normal;font-size:20px}.intro{display:grid;grid-template-columns:120px 1fr;gap:28px;align-items:start;padding-top:58px}.intro-label{padding-top:8px}.intro-copy{font-family:var(--serif);font-size:19px;max-width:760px}.intro-copy p{margin:0 0 24px}.intro-copy b{font-weight:700}.information{padding-top:70px}.section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:38px;border-bottom:1px solid var(--line);padding-bottom:18px}.section-head h2{margin:5px 0 0;font-family:var(--serif);font-size:clamp(28px,4vw,46px);font-weight:500;letter-spacing:.03em}.text-link{font-size:12px;text-decoration:none}.news-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.news-card{background:var(--white);border:1px solid rgba(32,35,38,.08);min-height:100%;padding-bottom:24px;transition:transform .35s ease,box-shadow .35s ease}.news-card:hover{transform:translateY(-5px);box-shadow:0 18px 38px rgba(20,22,24,.09)}.news-card img{width:100%;aspect-ratio:1/1;object-fit:cover}.news-card.no-image{padding-top:28px}.news-card .news-meta{font-size:10px;color:#8d8f92;letter-spacing:.12em;padding:20px 22px 0}.news-card h3{font-family:var(--serif);font-size:19px;font-weight:600;line-height:1.55;padding:0 22px;margin:8px 0}.news-card p{font-size:13px;line-height:1.9;padding:0 22px;margin:10px 0 0;color:#555}.news-card a{color:#444;text-underline-offset:3px}.latest{padding-top:40px}.latest-list{border-top:1px solid var(--line)}.latest-list article{display:grid;grid-template-columns:120px 1fr;gap:28px;padding:26px 0;border-bottom:1px solid var(--line)}.latest-list time{font-size:12px;color:#8d8f92;letter-spacing:.08em;padding-top:5px}.latest-list h3{font-family:var(--serif);font-size:20px;margin:5px 0 4px;font-weight:600}.latest-list p{font-size:14px;margin:0;color:#555}.tag{display:inline-block;font-size:10px;letter-spacing:.08em;border:1px solid #c9c7c0;padding:2px 8px;color:#666}.latest-list a{display:inline-block;margin-top:8px;font-size:13px}.partners{padding-top:50px;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.partner-card{background:var(--white);border:1px solid rgba(32,35,38,.08);padding:18px;display:flex;align-items:center;justify-content:center;min-height:120px}.partner-card img{max-height:80px;object-fit:contain}.site-footer{background:#343536;color:#f3f2ee;margin-top:60px}.footer-inner{max-width:var(--max);margin:auto;padding:70px 26px 34px}.footer-brand img{width:130px;filter:invert(1) grayscale(1) brightness(2)}.footer-links{display:flex;flex-wrap:wrap;gap:8px 20px;margin:35px 0 60px}.footer-links a{text-decoration:none;font-size:12px;color:#e2e1dc}.footer-links a:hover{color:#fff}.footer-inner p{font-size:10px;color:#b7b6b1;margin:0}.to-top{position:fixed;right:24px;bottom:24px;width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.7);background:#202326;color:#fff;box-shadow:0 10px 30px rgba(0,0,0,.18);cursor:pointer;opacity:0;visibility:hidden;transform:translateY(10px);transition:.3s;z-index:200}.to-top.show{opacity:1;visibility:visible;transform:none}.reveal{opacity:0;transform:translateY(20px);transition:opacity .7s ease,transform .7s ease}.reveal.is-visible{opacity:1;transform:none}@media(max-width:1024px){.header-inner{min-height:74px}.site-nav{position:absolute;left:0;right:0;top:74px;background:rgba(52,53,54,.98);display:grid;grid-template-columns:1fr 1fr;gap:0;padding:8px 18px;transform:translateY(-8px);opacity:0;pointer-events:none;transition:.25s}.site-nav.open{transform:none;opacity:1;pointer-events:auto}.site-nav a{color:#fff;padding:15px 12px;border-bottom:1px solid rgba(255,255,255,.12)}.site-nav a:after{background:#fff}.menu-toggle{display:block}.news-grid{grid-template-columns:repeat(2,1fr)}.intro{grid-template-columns:1fr;gap:15px}.intro-label{padding-top:0}.intro-copy{font-size:18px}.partners{grid-template-columns:1fr 1fr}.partner-card:last-child{grid-column:1/-1}}@media(max-width:700px){body{font-size:15px}.header-inner{padding:0 18px}.brand img{width:132px}.hero{padding:0}.hero img{border-radius:0;box-shadow:none}.section{padding:70px 18px}.quick-links{padding-top:35px}.quick-grid{grid-template-columns:1fr}.quick-card{min-height:70px;padding:18px 10px}.quick-card+.quick-card{border-left:0;border-top:1px solid var(--line)}.quick-card span:nth-child(2){font-size:18px}.intro{padding-top:25px}.intro-copy{font-size:16px}.news-grid{grid-template-columns:1fr;gap:14px}.news-card h3{font-size:18px}.latest-list article{grid-template-columns:1fr;gap:4px}.latest-list h3{font-size:18px}.partners{grid-template-columns:1fr}.partner-card:last-child{grid-column:auto}.footer-inner{padding:55px 18px 28px}.footer-links{margin:28px 0 45px;gap:10px 15px}.footer-links a{font-size:11px}.to-top{right:16px;bottom:18px;width:44px;height:44px}.site-nav{top:74px;grid-template-columns:1fr}}

/* ===== Shared subpage layout ===== */
.subpage{
  max-width:1180px;
  margin:0 auto;
  padding:0 26px 110px;
}
.subpage-hero{
  padding:86px 0 58px;
  border-bottom:1px solid var(--line);
}
.subpage-hero h1{
  margin:12px 0 0;
  font-family:var(--serif);
  font-weight:500;
  font-size:clamp(34px,5vw,58px);
  line-height:1.35;
  letter-spacing:.01em;
}
.subpage-content{
  padding:62px 0 0;
  max-width:940px;
}
.subpage-content .post,
.subpage-content > div{
  font-size:16px;
  line-height:2;
}
.subpage-content p{margin:0 0 1.4em}
.subpage-content a{
  text-underline-offset:3px;
  text-decoration-thickness:1px;
}
.subpage-content img{
  max-width:100%;
  height:auto;
  margin:28px auto;
}
.subpage-content .comment_yellow{
  background:#fff;
  border-left:3px solid var(--accent);
  padding:24px 28px;
  margin:0 0 42px;
}
.subpage-content .merit_title{
  margin:54px 0 18px;
  padding:12px 0;
  border-bottom:1px solid var(--ink);
  font-family:var(--serif);
  font-size:24px;
  line-height:1.5;
}
.subpage-content .merit_title i{display:none}
.subpage-content h2,
.subpage-content h3{
  font-family:var(--serif);
  font-weight:600;
  line-height:1.5;
}
.subpage-content table{
  width:100%;
  border-collapse:collapse;
  margin:18px 0 35px;
  background:#fff;
}
.subpage-content th,
.subpage-content td{
  padding:16px 18px;
  border-bottom:1px solid var(--line);
  vertical-align:top;
  text-align:left;
}
.subpage-content th{
  width:23%;
  background:#efede8;
  font-weight:600;
}
.subpage-content ul{padding-left:1.4em}
.subpage-content li{margin:.25em 0}
.subpage-content .smaller,
.subpage-content .comment_dantai{font-size:.88em;color:var(--muted)}
.subpage-content .title,
.subpage-content .title.first{
  display:none;
}
.subpage-content .content,
.subpage-content article{
  width:100%;
}
.subpage-content .media_title,
.subpage-content .media_subtitle{
  margin-top:48px;
  padding:13px 0;
  border-bottom:1px solid var(--ink);
  font-family:var(--serif);
  font-size:24px;
}
.subpage-content .media_block{
  margin:0 0 40px;
}
.subpage-content .media_block table{
  margin-top:12px;
}
.subpage-content .comment_blue,
.subpage-content .comment_green{
  background:#fff;
  padding:24px 28px;
  border:1px solid var(--line);
  margin:18px 0 30px;
}
.subpage-content iframe{
  width:100%;
  min-height:450px;
  border:0;
}
.subpage-content form{
  max-width:720px;
}
.subpage-content input,
.subpage-content textarea,
.subpage-content select{
  max-width:100%;
  border:1px solid #ccc;
  padding:10px;
}
.subpage-content .box,
.subpage-content .box_inner{
  max-width:100%;
}
.subpage-content .fa,
.subpage-content .fas{display:none}

@media(max-width:700px){
  .subpage{padding:0 18px 75px}
  .subpage-hero{padding:56px 0 38px}
  .subpage-hero h1{font-size:32px}
  .subpage-content{padding-top:40px}
  .subpage-content .post,
  .subpage-content > div{font-size:15px}
  .subpage-content .comment_yellow,
  .subpage-content .comment_blue,
  .subpage-content .comment_green{padding:20px}
  .subpage-content .merit_title{font-size:21px;margin-top:40px}
  .subpage-content table{display:block;overflow-x:auto;white-space:normal}
  .subpage-content th,
  .subpage-content td{min-width:150px;padding:13px 12px}
}


/* ===== v4 refinements requested by client ===== */

/* Softer charcoal footer */
.site-footer{background:#3b3b39}
.footer-links a{color:#e0dfda}
.footer-inner p{color:#b9b8b3}

/* Large "お知らせ" heading */
.latest .section-head h2{color:var(--ink)}

/* Information / news cards: all image cards remain square */
.information .news-card img{
  width:100%;
  aspect-ratio:1 / 1;
  object-fit:cover;
}

/* News category tags: subtle color coding */
.latest-list .tag{
  border-radius:999px;
  padding:3px 10px;
  line-height:1.45;
  font-weight:600;
  letter-spacing:.04em;
}
.latest-list .tag-newmedia{
  border-color:#b9c9dc;
  background:#eef3f8;
  color:#45627f;
}
.latest-list .tag-customer{
  border-color:#c9c0b2;
  background:#f4f0ea;
  color:#6c6255;
}
.latest-list .tag-deal{
  border-color:#d8c58e;
  background:#fbf6e5;
  color:#78651d;
}
.latest-list .tag-info{
  border-color:#c9ccc9;
  background:#f1f2f0;
  color:#555a56;
}

/* Two remaining footer-ad banners */
.partners{
  grid-template-columns:repeat(2,minmax(0,1fr));
  max-width:820px;
  margin-left:auto;
  margin-right:auto;
}
.partner-card{min-height:128px}

/* Representative: small round portrait + speech bubble */
.subpage-content #daihyou{
  margin:58px 0 18px;
}
#daihyou .comment{
  display:flex;
  align-items:flex-start;
  gap:22px;
}
#daihyou .balloon1{
  position:relative;
  display:flex;
  align-items:center;
  gap:20px;
  width:100%;
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
  padding:20px 24px;
  box-shadow:0 12px 28px rgba(32,35,38,.05);
}
#daihyou .balloon1:before{
  content:"";
  position:absolute;
  left:-11px;
  top:31px;
  width:20px;
  height:20px;
  background:#fff;
  border-left:1px solid var(--line);
  border-bottom:1px solid var(--line);
  transform:rotate(45deg);
}
#daihyou .icon{
  position:relative;
  z-index:2;
  flex:0 0 auto;
}
#daihyou .member{
  width:78px;
  height:78px;
  border-radius:50%;
  overflow:hidden;
  border:4px solid var(--paper);
  box-shadow:0 4px 14px rgba(32,35,38,.10);
}
#daihyou .member img{
  width:100%;
  height:100%;
  object-fit:cover;
  margin:0;
}
#daihyou .representative-message{
  margin:0;
  font-family:var(--serif);
  font-size:15px;
  line-height:1.9;
  color:#444;
}
#daihyou + .link{
  margin-top:20px;
}

/* Media page: category badges */
.subpage-content .new,
.subpage-content .area_zenkoku,
.subpage-content .area_chihou{
  display:inline-block;
  vertical-align:middle;
  margin:0 7px 4px 0;
  padding:3px 9px;
  border:1px solid;
  border-radius:999px;
  font-size:10px;
  line-height:1.4;
  letter-spacing:.04em;
  font-weight:600;
}
.subpage-content .new{
  border-color:#d9a3a3;
  background:#fbefef;
  color:#8b4d4d;
}
.subpage-content .area_zenkoku{
  border-color:#a9c4d8;
  background:#edf5fa;
  color:#456b83;
}
.subpage-content .area_chihou{
  border-color:#c8bca9;
  background:#f5f1ea;
  color:#6e604f;
}

/* Media section labels: tighter and cleaner */
.subpage-content .merit_title{
  display:flex;
  align-items:baseline;
  flex-wrap:wrap;
  gap:8px;
  margin-top:46px;
  margin-bottom:12px;
  padding:12px 0 8px;
}
.subpage-content .merit_title .junjhudou{
  display:inline-block;
  margin:0;
  padding:0;
  font-size:10px;
  line-height:1.4;
  color:#96958f;
  letter-spacing:.03em;
}
.subpage-content .merit_title + table{
  margin-top:0;
}
.subpage-content .smaller.junjhudou{
  font-size:10px;
}

/* Avoid a large blank gap below "(順不同)" */
.subpage-content .merit_title p{
  margin-bottom:0;
}

@media(max-width:700px){
  .partners{
    grid-template-columns:1fr;
    max-width:none;
  }
  #daihyou .balloon1{
    flex-direction:column;
    align-items:flex-start;
    padding:18px;
  }
  #daihyou .balloon1:before{
    left:34px;
    top:-11px;
    border-left:1px solid var(--line);
    border-bottom:0;
    border-top:1px solid var(--line);
    transform:rotate(45deg);
  }
  #daihyou .member{width:70px;height:70px}
  #daihyou .representative-message{font-size:14px}
}

/* v5 refinements */
.intro-copy{max-width:760px}
.latest .section-head h2{color:var(--ink)}
.site-footer{background:#353638}
#daihyou .comment{align-items:center;gap:18px}
#daihyou .balloon1{
  display:block;
  position:relative;
  width:auto;
  margin-left:0;
  padding:20px 24px;
  border-radius:18px;
}
#daihyou .icon{
  position:absolute;
  left:-112px;
  top:50%;
  transform:translateY(-50%);
}
#daihyou .member{
  width:82px;height:82px;
  border:4px solid var(--paper);
}
#daihyou .balloon1:before{
  left:-11px;
  top:50%;
  margin-top:-10px;
}
#daihyou .representative-message{padding-left:0}
@media(max-width:1024px){
  .intro{grid-template-columns:120px 1fr;gap:24px}
}
@media(max-width:700px){
  .intro{grid-template-columns:1fr;gap:10px}
  #daihyou .comment{display:block}
  #daihyou .balloon1{margin-top:54px}
  #daihyou .icon{left:20px;top:-42px;transform:none}
  #daihyou .balloon1:before{left:44px;top:-11px;margin:0}
}


/* v6: representative portrait outside the speech bubble */
.subpage-content #daihyou{
  margin:58px 0 18px;
}
#daihyou .comment{
  display:block;
  position:relative;
}
#daihyou .balloon1{
  margin-left:104px;
  width:calc(100% - 104px);
  min-height:82px;
  display:flex;
  align-items:center;
  padding:20px 24px;
}
#daihyou .icon{
  left:-104px;
  top:50%;
  transform:translateY(-50%);
}
#daihyou .member{
  width:82px;
  height:82px;
  border-radius:50%;
}
#daihyou .balloon1:before{
  left:-11px;
  top:50%;
  margin-top:-10px;
  transform:rotate(45deg);
}
@media(max-width:700px){
  #daihyou .balloon1{
    margin-left:0;
    width:100%;
    margin-top:54px;
    display:block;
  }
  #daihyou .icon{
    left:20px;
    top:-42px;
    transform:none;
  }
  #daihyou .balloon1:before{
    left:44px;
    top:-11px;
    margin:0;
  }
}

/* v7: softer charcoal and balanced page-top arrow */
.site-footer{background:#343536}
@media(max-width:1024px){
  .site-nav{background:rgba(52,53,54,.98)}
}
.to-top{
  font-size:0;
  display:grid;
  place-items:center;
}
.to-top::before{
  content:"↑";
  font-family:Arial,sans-serif;
  font-size:25px;
  font-weight:300;
  line-height:1;
  transform:translateY(-1px);
}
@media(max-width:700px){
  .to-top{
    width:44px;
    height:44px;
    right:16px;
    bottom:16px;
  }
  .to-top::before{font-size:23px}
}

/* v7: representative portrait must sit outside, not overlap, the bubble */
#daihyou .comment{
  position:relative;
  min-height:105px;
}
#daihyou .balloon1{
  position:relative;
  margin-left:112px;
  width:calc(100% - 112px);
  min-height:88px;
  display:flex;
  align-items:center;
}
#daihyou .icon{
  position:absolute;
  left:-108px;
  top:50%;
  transform:translateY(-50%);
  z-index:2;
}
#daihyou .member{
  width:82px;
  height:82px;
  border-radius:50%;
  overflow:hidden;
}
#daihyou .balloon1:before{
  left:-10px;
  top:50%;
  margin-top:-9px;
  transform:rotate(45deg);
}
@media(max-width:700px){
  #daihyou .comment{
    min-height:0;
    padding-top:70px;
  }
  #daihyou .balloon1{
    margin-left:0;
    width:100%;
    min-height:0;
    display:block;
  }
  #daihyou .icon{
    left:18px;
    top:0;
    transform:none;
  }
  #daihyou .balloon1:before{
    left:46px;
    top:-10px;
    margin:0;
    transform:rotate(45deg);
  }
}

/* v8: mobile representative portrait sits above the bubble */
@media (max-width:700px){
  #daihyou .comment{
    padding-top:0 !important;
  }
  #daihyou .balloon1{
    margin-top:88px !important;
    margin-left:0 !important;
    width:100% !important;
    min-height:0 !important;
    padding:24px 20px !important;
  }
  #daihyou .icon{
    left:20px !important;
    top:-72px !important;
    transform:none !important;
    z-index:2 !important;
  }
  #daihyou .member{
    width:72px !important;
    height:72px !important;
    border-radius:50% !important;
  }
  #daihyou .balloon1:before{
    left:47px !important;
    top:-11px !important;
    margin:0 !important;
    transform:rotate(45deg) !important;
  }
}

/* v9: mobile portrait and speech bubble are fully separated */
@media (max-width:700px){
  #daihyou .comment{
    display:flex !important;
    flex-direction:column !important;
    align-items:flex-start !important;
    min-height:0 !important;
    padding:0 !important;
  }
  #daihyou .icon{
    position:relative !important;
    left:20px !important;
    top:auto !important;
    transform:none !important;
    z-index:3 !important;
    margin:0 0 10px !important;
  }
  #daihyou .member{
    width:72px !important;
    height:72px !important;
  }
  #daihyou .balloon1{
    position:relative !important;
    margin:0 !important;
    width:100% !important;
    display:block !important;
    padding:22px 20px !important;
  }
  #daihyou .balloon1:before{
    left:46px !important;
    top:-11px !important;
    margin:0 !important;
    transform:rotate(45deg) !important;
  }
}

/* v9: page-top arrow closer to the requested reference */
.to-top{
  width:44px;
  height:44px;
  border-radius:50%;
  background:#cbab42;
  color:#fff;
  box-shadow:0 8px 20px rgba(0,0,0,.16);
}
.to-top::before{
  font-size:24px;
  font-weight:300;
  line-height:1;
  transform:translateY(-1px);
}

/* v10 final: mobile speech bubble has no tail; desktop keeps the tail */
@media (max-width:700px){
  #daihyou .balloon1:before{
    display:none !important;
  }
}


@media (max-width:700px){
  .menu-toggle[aria-expanded="true"] span:nth-child(1){
    transform:translateY(7px) rotate(45deg);
  }

  .menu-toggle[aria-expanded="true"] span:nth-child(2){
    opacity:0;
  }

  .menu-toggle[aria-expanded="true"] span:nth-child(3){
    transform:translateY(-7px) rotate(-45deg);
  }
}


