/* 湘南ツーエス 採用サイト — 全ページ共通スタイル（テンプレート単位のCSSを統合） */

/* ===== front ===== */
html { scroll-behavior:smooth; }
[id] { scroll-margin-top:100px; }
body { margin:0; background:#ffffff; }
.v2 { font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif; color:#17282c; -webkit-font-smoothing:antialiased; }
.v2 h1, .v2 h2, .v2 h3 { font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif; margin:0; }
.en { font-family:"Barlow","Noto Sans JP",sans-serif; letter-spacing:.1em; }
.v2 a { text-decoration:none; color:inherit; }
.lede { color:#5b666e; margin:0; }
.logo-mo { position:relative; display:block; width:244px; height:52px; line-height:0; flex:none; }
.logo-mo img { position:absolute; top:0; left:0; display:block; width:244px; height:52px; max-width:none; }
.logo-mark { clip-path:circle(30px at 28px 26px); transform-origin:28px 26px; transition:transform .62s cubic-bezier(.34,1.15,.42,1); }
.logo-text { clip-path:inset(0 0 0 25%); pointer-events:none; }
@media (hover:hover) and (pointer:fine) {
  .logo-mo:hover .logo-mark { transform:rotate(-18deg); }
}
.navlink { position:relative; padding-bottom:4px; }
.navlink::after { content:""; position:absolute; left:0; right:0; bottom:0; height:2px; background:#159fc9; transform:scaleX(0); transform-origin:left center; transition:transform .22s cubic-bezier(.4,0,.2,1); }
.navlink:hover { color:#159fc9; }
.navlink:hover::after { transform:scaleX(1); }
.navlink.cur { color:#0f8bab; }
.navcur { position:absolute; left:50%; bottom:-9px; transform:translateX(-50%); width:0; height:0; border-left:4px solid transparent; border-right:4px solid transparent; border-top:5px solid #0f8bab; }
.entry, .btn-navy { position:relative; overflow:hidden; transition:color .18s; }
.entry::before, .btn-navy::before { content:""; position:absolute; inset:0; background:#159fc9; transform:translateY(100%); transition:transform .26s cubic-bezier(.4,0,.2,1); }
.entry:hover::before, .btn-navy:hover::before { transform:translateY(0); }
.entry > *, .btn-navy > * { position:relative; z-index:1; }
.entry:hover .entry-sub { color:#ffffff; }
.jobcard:hover { border-color:#0f8bab; box-shadow:0 8px 24px rgba(10,111,128,.16); transform:translateY(-2px); }
.jobcard { transition:box-shadow .18s, transform .18s, border-color .18s; }
.blogcard:hover .thumb { filter:brightness(.94); }
.blogcard:hover h3 { color:#0f8bab; }
.btn-line:hover { background:#e7f0f7; }
.btn-wire { position:relative; overflow:hidden; transition:border-color .18s, color .18s; }
.btn-wire::before { content:""; position:absolute; inset:0; background:#0f8bab; transform:translateY(100%); transition:transform .26s cubic-bezier(.4,0,.2,1); }
.btn-wire > * { position:relative; z-index:1; transition:transform .26s cubic-bezier(.4,0,.2,1); }
.btn-wire:hover { border-color:#0f8bab; color:#ffffff; }
.btn-wire:hover::before { transform:translateY(0); }
.btn-wire:hover .arw { transform:translateX(4px); }
.btn-ghostwhite:hover { background:rgba(255,255,255,.12); }
.cta-apply { position:relative; overflow:hidden; transition:color .2s; }
.cta-apply::before { content:""; position:absolute; inset:0; background:#77ddbd; transform:translateX(-100%); transition:transform .28s cubic-bezier(.4,0,.2,1); }
.cta-apply > * { position:relative; z-index:1; transition:transform .28s cubic-bezier(.4,0,.2,1); }
.cta-apply:hover { color:#0d3f47; }
.cta-apply:hover > * { color:#0d3f47; }
.cta-apply:hover::before { transform:translateX(0); }
.cta-apply:hover .arw { transform:translateX(6px); }
.newsrow { transition:background-color .18s, border-color .18s; }
.newsrow:hover { background:#f5fafb; }
.newsrow:hover .newstitle { color:#0f8bab; }
.news-cat-link { transition:background-color .18s, border-color .18s, color .18s, transform .18s; }
.news-cat-link:hover { border-color:#0f8bab !important; color:#0f8bab !important; transform:translateX(3px); }
.news-cat-link.is-current:hover { color:#ffffff !important; }
.jobnav { transition:box-shadow .18s, transform .18s, border-color .18s; }
.jobnav:hover { border-color:#0f8bab; box-shadow:0 8px 24px rgba(10,111,128,.16); transform:translateY(-2px); }
.job-work-detail,
.job-work-summary { white-space:normal; word-break:break-word; }
.job-work-detail,
.job-work-summary,
.job-work-paragraph { line-height:1.45 !important; }
.job-work-paragraph { margin:0 0 24px; }
.job-work-paragraph:last-child { margin-bottom:0; }
@keyframes mvSlide {
  0%     { opacity:0; }
  2.5%   { opacity:1; }
  22.5%  { opacity:1; }
  27.5%  { opacity:0; }
  100%   { opacity:0; }
  }
@keyframes mvKen {
  0%   { transform:scale(1.06) translate(1.5%, 0.8%); }
  27.5%  { transform:scale(1.16) translate(-1.5%, -0.8%); }
  27.6%, 100% { transform:scale(1.06) translate(1.5%, 0.8%); }
  }
@keyframes mvKenImage {
  0%   { transform:scale(1.14) translate(2%, 1.2%); }
  100% { transform:scale(1.24) translate(-2%, -1.2%); }
  }
@keyframes mvDot {
  0%, 25%     { background:#ffffff; }
  27.5%, 100% { background:rgba(255,255,255,.38); }
  }
.mv-slide { position:absolute; inset:0; opacity:0; animation:mvSlide 36s linear infinite; overflow:hidden; will-change:opacity; }
.mv-slide img { transform-origin:center center; animation:mvKenImage 8s cubic-bezier(.33,0,.35,1) infinite alternate; will-change:transform; }
.mv-dot { width:32px; height:3px; background:rgba(255,255,255,.38); animation:mvDot 36s steps(1,end) infinite; }
.top-mv-title { display:block; }
.mv-title-line { display:block; white-space:nowrap; }
.sp-mv-break { display:none; }
@keyframes impFade {
  0%   { opacity:0; transform:translateY(6px); }
  2%   { opacity:1; transform:translateY(0); }
  33%  { opacity:1; transform:translateY(0); }
  37%  { opacity:0; transform:translateY(-6px); }
  100% { opacity:0; transform:translateY(-6px); }
  }
@keyframes impDot { 0%,34% { background:#ffffff; } 36%,100% { background:rgba(255,255,255,.4); } }
@keyframes impFade2 {
  0%   { opacity:0; transform:translateY(6px); }
  3%   { opacity:1; transform:translateY(0); }
  48%  { opacity:1; transform:translateY(0); }
  53%  { opacity:0; transform:translateY(-6px); }
  100% { opacity:0; transform:translateY(-6px); }
  }
@keyframes impDot2 { 0%,50% { background:#ffffff; } 53%,100% { background:rgba(255,255,255,.4); } }
.imp-item { position:absolute; inset:0; opacity:0; animation:impFade 15s cubic-bezier(.4,0,.2,1) infinite; pointer-events:none; }
.imp-count-0 .imp-item,
.imp-count-1 .imp-item { opacity:1; transform:none; animation:none; pointer-events:auto; }
.imp-count-2 .imp-item { animation:impFade2 10s cubic-bezier(.4,0,.2,1) infinite; }
.imp-count-2 .imp-dot { animation:impDot2 10s steps(1,end) infinite; }
.imp-count-3 .imp-item { animation-duration:15s; }
.imp-count-3 .imp-dot { animation-duration:15s; }
.imp-item:hover .imp-title { color:#0f8bab; }
.imp-dot { width:18px; height:8px; padding:0; border:0; border-radius:0; background:transparent; animation:impDot 15s steps(1,end) infinite; cursor:pointer; position:relative; appearance:none; -webkit-appearance:none; }
.imp-dot::before { content:""; position:absolute; left:0; right:0; top:50%; height:3px; transform:translateY(-50%); background:rgba(255,255,255,.4); animation:inherit; }
.imp-dot:focus-visible { outline:2px solid #ffffff; outline-offset:3px; }
.imp-count-1 .imp-dot::before { background:#ffffff; transform:translateY(-50%) scaleX(1.15); animation:none; }
.top-important.is-manual .imp-item { animation:none !important; opacity:0; transform:translateY(8px); pointer-events:none; transition:opacity .22s cubic-bezier(.4,0,.2,1), transform .22s cubic-bezier(.4,0,.2,1); }
.top-important.is-manual .imp-item.is-active { opacity:1; transform:translateY(0); pointer-events:auto; }
.top-important.is-manual .imp-dot { animation:none !important; }
.top-important.is-manual .imp-dot::before { animation:none !important; background:rgba(255,255,255,.4); transition:background-color .18s, transform .18s; }
.top-important.is-manual .imp-dot.is-active::before { background:#ffffff; transform:translateY(-50%) scaleX(1.15); }
footer a { transition:color .18s; }
footer a:hover { color:#a9e2f5; text-decoration:underline; text-underline-offset:3px; }

/* ===== company ===== */
.entry { position:relative; overflow:hidden; transition:color .18s; }
.entry::before { content:""; position:absolute; inset:0; background:#159fc9; transform:translateY(100%); transition:transform .26s cubic-bezier(.4,0,.2,1); }
.entry:hover::before { transform:translateY(0); }
.entry > * { position:relative; z-index:1; }
.cta-apply:hover, .cta-apply:hover > * { color:#0d3f47; }
.pdflink { color:#0f8bab; transition:color .18s; }
.pdflink:hover { color:#159fc9; text-decoration:underline; }
.crumb a:hover { color:#0f8bab; }

/* ===== editor content ===== */
.entry-content {
  overflow-wrap:anywhere;
  color:#17282c;
}
.entry-content > *:first-child { margin-top:0 !important; }
.entry-content > *:last-child { margin-bottom:0 !important; }
.entry-content p {
  margin:0 0 1.45em;
  line-height:2;
}
.entry-content h2 {
  margin:2.35em 0 1em;
  padding-left:16px;
  border-left:4px solid #0f8bab;
  font-size:30px;
  font-weight:900;
  line-height:1.45;
}
.entry-content h3 {
  margin:2em 0 .9em;
  font-size:23px;
  font-weight:900;
  line-height:1.5;
}
.entry-content strong { font-weight:800; }
.entry-content ul,
.entry-content ol {
  margin:0 0 1.6em;
  padding-left:1.4em;
}
.entry-content li { margin:.45em 0; }
.entry-content a:not(.btn-wire):not(.wp-block-button__link):not(.shonan2s-link-button) {
  color:#0f8bab;
  font-weight:700;
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:4px;
  transition:color .18s, background-color .18s;
}
.entry-content a:not(.btn-wire):not(.wp-block-button__link):not(.shonan2s-link-button):hover {
  color:#159fc9;
  background:rgba(21,159,201,.08);
}
.entry-content a:not(.btn-wire):not(.wp-block-button__link):not(.shonan2s-link-button):focus-visible,
.entry-content .wp-block-button__link:focus-visible,
.entry-content a.shonan2s-link-button:focus-visible,
.entry-content a.btn-wire:focus-visible {
  outline:2px solid #0f8bab;
  outline-offset:3px;
}
.entry-content .wp-block-buttons {
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin:30px 0;
}
.entry-content .wp-block-button { margin:0; }
.entry-content .wp-block-button__link,
.entry-content a.shonan2s-link-button,
.entry-content a.btn-wire {
  min-height:54px;
  padding:14px 26px;
  border:1px solid #17282c;
  border-radius:0;
  background:#ffffff;
  color:#17282c;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  font-size:15px;
  font-weight:700;
  line-height:1.4;
  text-decoration:none;
  transition:background-color .18s, border-color .18s, color .18s;
}
.entry-content .wp-block-button__link:hover,
.entry-content a.shonan2s-link-button:hover,
.entry-content a.btn-wire:hover {
  background:#0f8bab;
  border-color:#0f8bab;
  color:#ffffff;
}
.entry-content a.btn-wire::before {
  display:none;
}
.entry-content .wp-block-button__link::after,
.entry-content a.shonan2s-link-button::after,
.entry-content a.btn-wire::after {
  content:"→";
  font-family:"Barlow","Noto Sans JP",sans-serif;
  font-weight:700;
  letter-spacing:0;
}
.entry-content .wp-block-group.has-background {
  margin:32px 0;
  padding:30px 34px;
}
.entry-content .wp-block-group.has-background p:last-child { margin-bottom:0; }
.entry-content p.has-background {
  margin:32px 0;
  padding:24px 28px;
}
.entry-content .has-background:not(.wp-block-group):not(.wp-block-button__link):not(mark):not(span) {
  padding:24px 28px;
}
.entry-content mark {
  padding:.05em .16em;
  background:#fff36d;
  color:inherit;
}
.entry-content mark.has-inline-color {
  color:inherit;
}
.entry-content mark.has-background,
.entry-content span.has-background,
.entry-content span[style*="background-color"],
.entry-content .has-inline-color[style*="background-color"] {
  padding:.05em .16em;
}
.entry-content .has-luminous-vivid-amber-background-color { background-color:#fcb900 !important; }
.entry-content .has-luminous-vivid-orange-background-color { background-color:#ff6900 !important; }
.entry-content .has-vivid-red-background-color { background-color:#cf2e2e !important; }
.entry-content .has-pale-pink-background-color { background-color:#f78da7 !important; }
.entry-content .has-light-green-cyan-background-color { background-color:#7bdcb5 !important; }
.entry-content .has-vivid-green-cyan-background-color { background-color:#00d084 !important; }
.entry-content .has-pale-cyan-blue-background-color { background-color:#8ed1fc !important; }
.entry-content .has-vivid-cyan-blue-background-color { background-color:#0693e3 !important; }
.entry-content .has-vivid-purple-background-color { background-color:#9b51e0 !important; }
.entry-content .wp-block-columns {
  display:flex;
  gap:24px;
  margin:32px 0;
}
.entry-content .wp-block-column { flex:1; min-width:0; }
.entry-content blockquote {
  margin:32px 0;
  padding:26px 30px;
  border-left:4px solid #0f8bab;
  background:#eef2f5;
  color:#17282c;
}
.entry-content blockquote p { margin:0; }
.entry-content .wp-block-image { margin:30px 0; }
.entry-content .wp-block-image img {
  max-width:100%;
  height:auto;
  display:block;
}
.entry-content .wp-block-image.size-full img,
.entry-content .wp-block-image.size-large img {
  width:100%;
}
.entry-content .wp-element-caption {
  margin-top:12px;
  color:#5b666e;
  font-size:13px;
  line-height:1.7;
}
.entry-content .aligncenter {
  clear:both;
  margin-left:auto;
  margin-right:auto;
  text-align:center;
}
.entry-content .aligncenter img {
  margin-left:auto;
  margin-right:auto;
}
.entry-content .alignleft {
  float:left;
  margin:.35em 28px 18px 0;
}
.entry-content .alignright {
  float:right;
  margin:.35em 0 18px 28px;
}
.entry-content .alignleft + *,
.entry-content .alignright + * { margin-top:0; }
.entry-content::after {
  content:"";
  display:block;
  clear:both;
}
.entry-content .has-text-align-center { text-align:center; }
.entry-content .has-text-align-right { text-align:right; }
@media (max-width: 767px) {
  .entry-content p { line-height:1.9; }
  .entry-content h2 {
    font-size:23px;
    padding-left:12px;
  }
  .entry-content h3 { font-size:19px; }
  .entry-content .wp-block-columns { display:block; }
  .entry-content .wp-block-column + .wp-block-column { margin-top:18px; }
  .entry-content .wp-block-group.has-background { padding:22px 20px; }
  .entry-content p.has-background { padding:20px; }
  .entry-content .alignleft,
  .entry-content .alignright {
    float:none;
    margin:24px 0;
  }
  .entry-content .wp-block-button,
  .entry-content .wp-block-button__link,
  .entry-content a.shonan2s-link-button,
  .entry-content a.btn-wire {
    width:100%;
  }
}

/* ===== business ===== */
.biznav a { flex:1; background:#fff; padding:18px 20px; display:flex; flex-direction:column; gap:6px; transition:background .18s, color .18s; }
.biznav a:hover { background:#0f8bab; color:#fff; }
.biznav a:hover .n, .biznav a:hover .sub { color:#ffffff !important; }

/* ===== jobs ===== */
.jobcard { position:relative; cursor:pointer; transition:box-shadow .18s, transform .18s, border-color .18s; }
.jobcard:hover { z-index:8; }
.jobcard:hover .pop, .jobcard:focus-within .pop, .jobcard.pop-open .pop { opacity:1; pointer-events:auto; transform:scale(1); }
.jobcard.pop-open { z-index:9; border-color:#0f8bab; }
.pop { opacity:0; pointer-events:none; transform:scale(.985); transition:opacity .18s, transform .22s cubic-bezier(.4,0,.2,1); }
.jobcard:hover { border-color:#0f8bab; box-shadow:0 8px 24px rgba(12,32,48,.14); transform:translateY(-2px); }
.jobcard:hover .thumb { filter:brightness(.95); }
.jobcard:hover .more { color:#0f8bab; }
.sel { width:100%; height:52px; background:#ffffff; border:1px solid #c3cbd1; padding:0 14px; font-size:15px; font-family:inherit; color:#17282c; appearance:none; background-image:linear-gradient(45deg, transparent 50%, #0f8bab 50%), linear-gradient(135deg, #0f8bab 50%, transparent 50%); background-position:calc(100% - 20px) 23px, calc(100% - 14px) 23px; background-size:6px 6px, 6px 6px; background-repeat:no-repeat; transition:border-color .18s; }
.sel:hover { border-color:#0f8bab; }
.sel:focus-visible { outline:2px solid #0f8bab; outline-offset:2px; }
.job-feature-filter { grid-column:1 / -1; }
.filter-label { display:block; font-size:13px; font-weight:700; color:#5b666e; margin-bottom:10px; }
.filter-checks { display:flex; flex-wrap:wrap; gap:8px; }
.filter-check { display:inline-flex; align-items:center; min-height:40px; color:#17282c; font-size:13px; font-weight:700; cursor:pointer; }
.filter-check input { position:absolute; opacity:0; pointer-events:none; }
.filter-check span { display:inline-flex; align-items:center; min-height:40px; padding:0 12px; border:1px solid #c3cbd1; background:#ffffff; transition:background-color .18s, border-color .18s, color .18s; }
.filter-check input:checked + span { border-color:#0f8bab; background:#0f8bab; color:#ffffff; }
.btn-filter { height:52px; padding:0 28px; background:#0f8bab; color:#fff; border:0; font-size:15px; font-weight:700; font-family:inherit; cursor:pointer; position:relative; overflow:hidden; transition:background .2s; }
.btn-filter:hover { background:#159fc9; }
.btn-reset { background:#ffffff; color:#17282c; border:1px solid #c3cbd1; }
.btn-reset:hover { background:#eef2f5; }
.filter-check,
.filter-check span,
.btn-filter,
.btn-wire,
.btn-ghostwhite,
.cta-apply,
.entry,
.sp-fixed-cta a,
.sp-drawer a {
  -webkit-user-select:none;
  user-select:none;
}
.pg { transition:background .18s, border-color .18s, color .18s; }
a.pg:hover { background:#0f8bab; border-color:#0f8bab; color:#ffffff; }
a.pg-cur { pointer-events:none; }

/* ===== job ===== */
.v2 h1, .v2 h2, .v2 h3, .v2 h4 { font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif; margin:0; }
.inp { width:100%; height:52px; border:1px solid #c3cbd1; background:#fff; padding:0 14px; font-size:15px; font-family:inherit; color:#17282c; box-sizing:border-box; transition:border-color .18s; }
.inp:hover { border-color:#8fa1ab; }
.inp:focus-visible { outline:2px solid #0f8bab; outline-offset:2px; }
textarea.inp { height:120px; padding:12px 14px; resize:vertical; line-height:1.8; }
.req { font-size:11px; font-weight:700; background:#0f8bab; color:#fff; padding:3px 7px; margin-left:8px; }
.opt { font-size:11px; font-weight:700; background:#eef2f5; color:#5b666e; padding:3px 7px; margin-left:8px; }
.shot { transition:filter .18s, transform .18s; cursor:zoom-in; }
.shot:hover { filter:brightness(.94); transform:translateY(-2px); }
#lightbox { position:fixed; inset:0; z-index:60; background:rgba(12,32,48,.86); display:none; align-items:center; justify-content:center; padding:64px; }
#lightbox.open { display:flex; }
#lightbox .box { position:relative; width:min(900px,100%); aspect-ratio:4/3; background:#c9d1d7; display:flex; align-items:flex-end; padding:16px; font-size:13px; color:#3d474d; box-shadow:0 30px 80px rgba(0,0,0,.42); }
#lightbox .cap { position:absolute; left:0; right:0; bottom:-36px; text-align:center; color:rgba(255,255,255,.86); font-size:13px; }
#lightbox .close { position:absolute; top:18px; right:26px; width:44px; height:44px; display:flex; align-items:center; justify-content:center; color:#fff; font-size:30px; font-weight:300; line-height:1; cursor:pointer; transition:opacity .18s; }
#lightbox .close:hover { opacity:.6; }

/* ===== faq ===== */
details.faq { background:#ffffff; border-bottom:1px solid #e3e7ea; }
details.faq summary { list-style:none; cursor:pointer; display:flex; align-items:flex-start; gap:16px; padding:22px 24px; font-size:17px; font-weight:700; line-height:1.6; transition:background .18s, color .18s; }
details.faq summary::-webkit-details-marker { display:none; }
details.faq summary:hover { background:#f4f6f8; color:#0f8bab; }
details.faq summary .q { font-family:"Barlow",sans-serif; font-size:20px; font-weight:700; color:#0f8bab; line-height:1.3; flex:none; }
details.faq summary .mark { margin-left:auto; flex:none; width:22px; height:22px; position:relative; }
details.faq summary .mark::before, details.faq summary .mark::after { content:""; position:absolute; background:#0f8bab; transition:transform .22s cubic-bezier(.4,0,.2,1); }
details.faq summary .mark::before { left:0; right:0; top:10px; height:2px; }
details.faq summary .mark::after { top:0; bottom:0; left:10px; width:2px; }
details.faq[open] summary .mark::after { transform:scaleY(0); }
details.faq .ans { display:flex; align-items:flex-start; gap:16px; padding:6px 24px 26px; }
details.faq .ans p { color:#3d4a52 !important; margin:0; }
details.faq .ans .a { font-family:"Barlow",sans-serif; font-size:20px; font-weight:700; color:#8fa1ab; line-height:2; flex:none; }
.faqnav a { transition:background .18s, color .18s, border-color .18s; }
.faqnav a:hover { background:#0f8bab; border-color:#0f8bab; color:#ffffff; }
.contactcard { transition:background .18s, transform .18s, box-shadow .18s; }
.contactcard:hover { background:#ffffff !important; transform:translateY(-3px); box-shadow:0 10px 28px rgba(12,32,48,.14); }
.contactcard:hover .arw { color:#159fc9; }

/* ===== contact ===== */
.frame { width:100%; background:#ffffff; box-shadow:none; }
.cap { display:flex; align-items:baseline; gap:12px; margin:0 0 14px; }
.cap .id { font-size:12px; font-weight:700; background:#17282c; color:#fff; padding:4px 10px; letter-spacing:.06em; }
.cap .t { font-size:17px; font-weight:700; }
.cap .s { font-size:12px; color:#5b666e; }
.lbl { display:block; font-size:14px; font-weight:700; margin-bottom:8px; }
.inp.bad { border-color:#c0392b; background:#fdf6f5; }
.errmsg { display:flex; align-items:center; gap:6px; font-size:13px; font-weight:600; color:#c0392b; margin-top:8px; }
.fields { display:flex; flex-direction:column; gap:24px; }
.agree {
  display:flex;
  gap:12px;
  align-items:center;
  padding:18px 20px;
  background:#f4f8fa;
  border:1px solid #c3dce5;
  border-left:4px solid #0f8bab;
}
.agree .mwform-checkbox-field label {
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-size:16px;
  font-weight:700;
}
.agree a {
  font-weight:800;
  text-decoration:underline;
  text-underline-offset:3px;
}
.agree > span:last-child .req {
  display:none;
}
.agree .mwform-checkbox-field label::after {
  content:"必須";
  display:inline-flex;
  align-items:center;
  margin-left:8px;
  padding:3px 7px;
  background:#0f8bab;
  color:#ffffff;
  font-size:11px;
  font-weight:700;
  line-height:1.2;
}
.cbx { width:22px; height:22px; margin:0; accent-color:#0f8bab; flex:none; }
.mw_wp_form .fields .error { display:block; font-size:13px; font-weight:600; color:#c0392b; margin-top:8px; }
.mw_wp_form .fields input[type="text"],
.mw_wp_form .fields input[type="email"],
.mw_wp_form .fields input[type="tel"],
.mw_wp_form .fields select,
.mw_wp_form .fields textarea { width:100%; box-sizing:border-box; }
.mw_wp_form .cta-apply,
.mw_wp_form input.cta-apply,
.mw_wp_form button.cta-apply { width:100%; height:64px; border:0; background:#0f8bab; color:#fff; display:flex; align-items:center; justify-content:center; gap:12px; font-size:17px; font-weight:700; font-family:inherit; cursor:pointer; }

/* ===== sitemap ===== */
.v2 h1, .v2 h2, .v2 h3 { margin:0; }
.smlink { display:flex; align-items:center; justify-content:space-between; padding:16px 18px; background:#f4f6f8; font-size:16px; font-weight:700; transition:background .18s, color .18s, transform .18s; }
.smlink:hover { background:#0f8bab; color:#fff; transform:translateX(3px); }
.smlink:hover .a { color:#fff; }
.sub a { display:flex; align-items:center; justify-content:space-between; padding:13px 18px 13px 34px; font-size:14px; border-bottom:1px solid #e3e7ea; transition:color .18s, background .18s; }
.sub a:hover { color:#0f8bab; background:#f4f6f8; }

/* ===== privacy ===== */
.doc h2 { font-size:21px; font-weight:700; padding-bottom:12px; border-bottom:2px solid #0f8bab; margin-bottom:18px; }
.doc p { font-size:15px; line-height:2.05; color:#3d4a52; margin:0 0 16px; }
.doc ul { margin:0 0 16px; padding-left:1.4em; }
.doc li { font-size:15px; line-height:2.05; color:#3d4a52; }
.doc section { margin-bottom:44px; }
.toc a { display:block; font-size:14px; padding:11px 14px; border-bottom:1px solid #e3e7ea; transition:color .18s, background .18s; }
.toc a:hover { color:#0f8bab; background:#f4f6f8; }

/* ===== terms ===== */
.doc ul, .doc ol { margin:0 0 16px; padding-left:1.4em; }

/* ===== legal (terms / privacy) 追記 ===== */
/* site.css の「/* ===== terms ===== *​/」ブロックの直後に貼り付けてください */

.doc h3 { font-size:16px; font-weight:700; color:#17282c; line-height:1.6; margin:28px 0 10px; }
.doc section > h3:first-of-type { margin-top:0; }

.doc ol { margin:0 0 16px; padding-left:1.5em; }
.doc ol > li { font-size:15px; line-height:2.05; color:#3d4a52; margin-bottom:6px; }
.doc ol > li:last-child { margin-bottom:0; }
.doc li > ul,
.doc li > ol { margin:8px 0 4px; }

.doc strong { color:#17282c; font-weight:700; }

.doc a { color:#0f8bab; }
.doc a:hover { text-decoration:underline; }

.doc .box { background:#f4f6f8; border-left:3px solid #0f8bab; padding:20px 22px; margin:0 0 16px; }

.doc .tblwrap { overflow-x:auto; margin:0 0 16px; -webkit-overflow-scrolling:touch; }
.doc table { width:100%; min-width:560px; border-collapse:collapse; }
.doc th,
.doc td { font-size:14px; line-height:1.85; color:#3d4a52; text-align:left; vertical-align:top; padding:12px 14px; border:1px solid #e3e7ea; }
.doc th { background:#f4f6f8; color:#17282c; font-weight:700; white-space:nowrap; }

/* 条数が増えたため、サイドTOCが画面高を超える場合に内部スクロールさせる */
.toc { max-height:calc(100vh - 140px); overflow-y:auto; scrollbar-width:thin; }
.toc a { color:#3d4a52; }

@media (max-width: 767px) {
  /* SPでは grid → 1fr、sticky → static に一括上書きされるため、
     TOCは本文の上に積まれる。項目数が多いので2カラムに畳む */
  .toc {
    max-height:none;
    overflow:visible;
    display:grid;
    grid-template-columns:1fr 1fr;
    margin-bottom:32px;
    border-left:1px solid #e3e7ea;
  }
  .toc a {
    font-size:13px;
    padding:10px 12px;
    border-right:1px solid #e3e7ea;
  }
  .doc h3 { font-size:16px !important; margin:24px 0 10px; }
  .doc table { min-width:480px; }
  .doc .box { padding:18px 16px; }
}

/* ===== notfound ===== */
.navcard { transition:background .18s, transform .18s, box-shadow .18s; }
.navcard:hover { background:#ffffff !important; transform:translateY(-3px); box-shadow:0 10px 28px rgba(12,32,48,.14); }
.navcard:hover .arw { color:#159fc9; }

.archive-pager {
  display:flex;
  justify-content:center;
  gap:8px;
  flex-wrap:wrap;
}

.archive-pager .page-numbers,
#job-pager .page-numbers {
  min-width:40px;
  height:40px;
  padding:0 12px;
  border:1px solid #c3cbd1;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#17282c;
  font-size:14px;
  font-weight:700;
  line-height:1;
}

.archive-pager .page-numbers.current,
#job-pager .page-numbers.current {
  border-color:#0f8bab;
  background:#0f8bab;
  color:#ffffff;
}

.sp-menu-toggle,
.sp-drawer,
.sp-fixed-cta { display:none; }
.sp-label { display:none; }

/* ===== responsive ===== */
@media (max-width: 767px) {
  html,
  body,
  .site,
  .v2 { overflow-x:hidden; }

  .v2 *,
  .v2 *::before,
  .v2 *::after { box-sizing:border-box; }

  .v2 img,
  .v2 svg { max-width:100%; height:auto; }

  header {
    position:sticky !important;
    top:0 !important;
  }

  header > div {
    max-width:none !important;
    height:auto !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
  }

  header > div > div {
    padding:10px 16px 0 !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:flex-start !important;
    justify-content:flex-start !important;
    gap:10px !important;
  }

  .logo-mo {
    width:188px;
    height:auto;
  }

  .logo-mo img {
    position:static;
    width:188px;
    height:auto;
  }

  .logo-mo .logo-mark {
    clip-path:none;
    transform:none !important;
    transition:none;
  }

  .logo-mo .logo-text {
    display:none;
  }

  header nav {
    width:100% !important;
    padding:0 !important;
    gap:0 !important;
    overflow-x:auto !important;
    flex-wrap:nowrap !important;
    white-space:nowrap !important;
    scrollbar-width:none;
  }

  header nav::-webkit-scrollbar { display:none; }

  header .navlink {
    flex:0 0 auto;
    padding:10px 11px 13px !important;
    font-size:13px;
  }

  .navcur { bottom:-2px; }

  header .entry {
    width:100% !important;
    height:46px !important;
    flex-direction:row !important;
    gap:8px !important;
  }

  header .entry .en { font-size:14px !important; }

  .v2 section {
    padding-left:20px !important;
    padding-right:20px !important;
  }

  .v2 section[style*="height:640px"] {
    height:560px !important;
    padding-left:0 !important;
    padding-right:0 !important;
  }

  .v2 section[style*="height:260px"] { height:210px !important; }

  .v2 [style*="max-width:1440px"],
  .v2 [style*="max-width:1240px"],
  .v2 [style*="max-width:1160px"],
  .v2 [style*="max-width:1120px"],
  .v2 [style*="max-width:1080px"],
  .v2 [style*="max-width:1040px"],
  .v2 [style*="max-width:1000px"],
  .v2 [style*="max-width:960px"],
  .v2 [style*="max-width:840px"],
  .v2 [style*="max-width:820px"],
  .v2 [style*="max-width:760px"] { max-width:100% !important; }

  .v2 [style*="padding:0 72px"],
  .v2 [style*="padding:0 40px"] {
    padding-left:20px !important;
    padding-right:20px !important;
  }

  .v2 [style*="padding:72px 72px 72px 56px"] { padding:42px 20px !important; }

  .v2 [style*="display:grid"] { grid-template-columns:1fr !important; }

  .v2 [style*="display:flex"] { flex-wrap:wrap; }

  .v2 [style*="position:sticky"] {
    position:static !important;
    top:auto !important;
  }

  .v2 h1 {
    font-size:31px !important;
    line-height:1.35 !important;
  }

  .v2 h2 {
    font-size:25px !important;
    line-height:1.45 !important;
  }

  .v2 h3 {
    font-size:19px !important;
    line-height:1.55 !important;
  }

  .v2 p,
  .v2 li,
  .v2 span,
  .v2 div { word-break:break-word; }

  .v2 a[style*="min-width"],
  .v2 .btn-wire,
  .v2 .btn-navy,
  .v2 .btn-ghostwhite,
  .v2 .cta-apply {
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
  }

  .v2 [style*="width:560px"],
  .v2 [style*="width:420px"],
  .v2 [style*="width:min(900px,100%)"] { width:100% !important; }

  .v2 .newsrow { gap:8px !important; }

  .news-archive-layout {
    display:block !important;
  }

  .news-archive-layout aside {
    margin-bottom:28px !important;
  }

  .business-main-copy {
    width:100% !important;
    max-width:none !important;
    font-size:20px !important;
    line-height:1.6 !important;
    overflow-wrap:anywhere;
  }

  .business-main-copy .business-main-break {
    display:none !important;
  }

  .biznav {
    display:flex !important;
    flex-direction:column !important;
    gap:2px !important;
  }

  .biznav a {
    width:100% !important;
    min-height:auto !important;
    padding:16px 18px !important;
    flex-direction:row !important;
    align-items:center !important;
    gap:14px !important;
  }

  .biznav a span:nth-child(2) {
    min-width:7em;
  }

  .job-count-summary {
    width:100% !important;
    display:flex !important;
    align-items:baseline !important;
    gap:5px !important;
    flex-wrap:nowrap !important;
    white-space:nowrap !important;
    text-align:left !important;
    margin-top:14px !important;
  }

  .job-count-summary > span,
  .job-count-summary > div {
    margin:0 !important;
  }

  .job-count-summary .en {
    font-size:22px !important;
    line-height:1 !important;
  }

  .job-filter-panel {
    grid-template-columns:1fr !important;
    gap:14px !important;
    padding:22px 20px !important;
  }

  .job-feature-filter {
    grid-column:auto !important;
  }

  .filter-checks {
    max-height:180px;
    overflow:auto;
    padding-right:4px;
  }

  .filter-check span {
    min-height:38px;
  }

  .btn-filter {
    width:100%;
  }

  .v2 .imp-item {
    grid-template-columns:1fr !important;
    gap:2px !important;
    align-content:center !important;
  }

  .v2 .imp-title {
    white-space:normal !important;
    overflow:visible !important;
  }

  .v2 .jobcard {
    transform:none !important;
    cursor:pointer;
  }

  .v2 .jobcard .pop { display:none !important; }

  details.faq summary,
  details.faq .ans {
    padding-left:16px !important;
    padding-right:16px !important;
  }

  .agree {
    align-items:flex-start !important;
    flex-wrap:wrap !important;
    gap:8px 10px !important;
    line-height:1.8 !important;
    padding:16px !important;
  }

  .agree .cbx,
  .agree input[type="checkbox"] {
    width:22px !important;
    height:22px !important;
    margin-top:3px !important;
    order:0;
  }

  .agree .mwform-checkbox-field label {
    font-size:16px !important;
  }

  .agree br,
  .agree input[type="hidden"] {
    display:none !important;
  }

  .agree .mwform-checkbox-field {
    flex:0 0 100% !important;
    order:0;
  }

  .agree > span:last-child {
    flex:0 0 100% !important;
    order:1;
    margin-left:34px;
  }

  .agree .req {
    margin-left:8px !important;
    order:initial;
    vertical-align:middle !important;
  }

  .permit-list {
    gap:18px !important;
  }

  .permit-row {
    display:block !important;
  }

  .permit-text {
    display:block !important;
    line-height:1.8 !important;
  }

  .permit-pdf {
    width:100% !important;
    justify-content:center !important;
    margin-top:10px !important;
    padding:0 14px !important;
  }

  .faqnav {
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
    gap:10px !important;
    width:100% !important;
  }

  .faqnav a {
    width:100% !important;
    min-height:52px !important;
    height:auto !important;
    padding:12px 18px !important;
    justify-content:center !important;
    text-align:center !important;
    line-height:1.45 !important;
  }

  .smlink,
  .sub a {
    min-width:0 !important;
    overflow-wrap:anywhere;
  }

  footer > div:first-child {
    grid-template-columns:1fr !important;
    padding:40px 20px 34px !important;
    gap:28px !important;
  }

  footer > div:last-child { padding:16px 20px !important; }
}

@media (max-width: 767px) {
  body {
    padding-bottom:60px;
  }

  body.sp-menu-open {
    overflow:hidden;
  }

  .site-header {
    height:60px !important;
    z-index:50 !important;
    position:sticky !important;
    top:0 !important;
    padding-right:0 !important;
    overflow:visible !important;
  }

  .site-header > div {
    max-width:none !important;
    width:100% !important;
    height:60px !important;
    display:grid !important;
    grid-template-columns:1fr 60px !important;
    align-items:center !important;
    position:relative !important;
    overflow:hidden !important;
  }

  .site-header > div > div:first-child {
    width:auto !important;
    min-width:0 !important;
    height:60px !important;
    padding:0 60px 0 16px !important;
    display:flex !important;
    flex-direction:row !important;
    align-items:center !important;
    justify-content:flex-start !important;
  }

  .site-header nav:not(.sp-drawer nav),
  .site-header .entry {
    display:none !important;
  }

  .site-header .logo-mo {
    width:174px !important;
    height:auto !important;
    transform:none !important;
    overflow:visible !important;
  }

  .site-header .logo-mo img {
    position:static !important;
    width:174px !important;
    height:auto !important;
    max-width:none !important;
    transform:none !important;
  }

  .site-header .logo-mo .logo-mark {
    clip-path:none !important;
    transition:none !important;
  }

  .site-header .logo-mo .logo-text {
    display:none !important;
  }

  .sp-menu-toggle {
    display:flex !important;
    visibility:visible !important;
    opacity:1 !important;
    grid-column:2 !important;
    grid-row:1 !important;
    justify-self:end !important;
    position:absolute !important;
    top:0 !important;
    right:0 !important;
    width:60px;
    height:60px;
    z-index:70 !important;
    padding:0;
    border:0;
    background:#0f8bab;
    align-items:center;
    justify-content:center;
    flex-direction:column;
    gap:5px;
    cursor:pointer;
    appearance:none !important;
    -webkit-appearance:none !important;
  }

  .sp-menu-toggle span {
    width:20px;
    height:2px;
    background:#ffffff;
    display:block;
    transition:transform .22s cubic-bezier(.4,0,.2,1), opacity .18s;
  }

  body.sp-menu-open .sp-menu-toggle span:nth-child(1) {
    transform:translateY(7px) rotate(45deg);
  }

  body.sp-menu-open .sp-menu-toggle span:nth-child(2) {
    opacity:0;
  }

  body.sp-menu-open .sp-menu-toggle span:nth-child(3) {
    transform:translateY(-7px) rotate(-45deg);
  }

  .site-header > .sp-drawer {
    display:block !important;
    position:fixed !important;
    top:60px;
    left:0;
    right:0;
    width:100vw !important;
    max-width:100vw !important;
    height:auto !important;
    max-height:calc(100dvh - 60px);
    overflow:auto !important;
    background:#0e4e5c;
    color:#ffffff;
    z-index:49;
    transform:translateY(-110%);
    opacity:0;
    pointer-events:none;
    transition:transform .24s cubic-bezier(.4,0,.2,1), opacity .18s;
  }

  body.admin-bar .sp-drawer {
    top:106px;
    left:0 !important;
    right:0 !important;
    width:100vw !important;
    max-width:100vw !important;
    max-height:calc(100dvh - 106px);
  }

  body.sp-menu-open .sp-drawer {
    transform:translateY(0);
    opacity:1;
    pointer-events:auto;
  }

  .sp-drawer nav {
    display:flex !important;
    flex-direction:column;
    width:100%;
    padding:0 !important;
    overflow:visible !important;
    white-space:normal !important;
  }

  .sp-drawer nav a {
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:20px 16px;
    border-bottom:1px solid rgba(255,255,255,.14);
    color:#ffffff;
    font-size:16px;
    font-weight:700;
  }

  .sp-drawer nav a .en {
    color:#a9e2f5;
    font-size:14px;
  }

  .sp-drawer-actions {
    padding:24px 16px 42px;
    display:flex;
    flex-direction:column;
    gap:12px;
    width:100%;
  }

  .sp-drawer-entry {
    height:56px;
    background:#0f8bab;
    color:#ffffff;
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:0 18px;
    font-size:16px;
    font-weight:700;
  }

  .sp-drawer-actions > div {
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:12px;
    width:100%;
  }

  .sp-drawer-actions > div a {
    height:50px;
    border:1px solid rgba(255,255,255,.7);
    color:#ffffff;
    display:flex;
    align-items:center;
    justify-content:center;
    min-width:0;
    padding:0 14px;
    font-size:14px;
    font-weight:700;
    white-space:nowrap;
  }

  .sp-fixed-cta {
    position:fixed;
    left:0;
    right:auto;
    bottom:0;
    z-index:45;
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    width:100vw !important;
    max-width:100vw !important;
    height:60px;
    background:#ffffff;
    box-shadow:0 -1px 0 #e3e7ea, 0 -8px 20px rgba(12,32,48,.08);
  }

  .sp-fixed-cta a {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    min-width:0 !important;
    width:100% !important;
    padding:0 4px;
    border-left:1px solid #e3e7ea;
    color:#17282c;
    font-size:13px;
    font-weight:700;
    flex-wrap:nowrap !important;
  }

  .sp-fixed-cta a span {
    white-space:nowrap;
  }

  .sp-fixed-cta a svg {
    width:18px;
    height:18px;
    flex:0 0 18px;
    max-width:none;
  }

  .sp-fixed-cta .sp-fixed-mail,
  .sp-fixed-cta .sp-fixed-entry {
    background:#0f8bab;
    color:#ffffff;
    border-left:0;
  }

  .home .top-mv {
    height:480px !important;
    overflow:visible !important;
    margin-bottom:112px;
  }

  .home .top-mv-content > div {
    padding:0 20px !important;
  }

  .home .top-mv .en {
    font-size:10px !important;
    margin-bottom:14px !important;
    letter-spacing:.2em !important;
  }

  .home .top-mv h1 {
    font-size:34px !important;
    line-height:1.3 !important;
    max-width:none !important;
    margin-bottom:16px !important;
  }

  .home .top-mv p {
    font-size:14px !important;
    line-height:1.85 !important;
    max-width:none !important;
    margin:0 0 24px !important;
  }

  .home .top-mv [style*="display:flex; gap:16px"] {
    display:flex !important;
    flex-direction:column !important;
    flex-wrap:nowrap !important;
    gap:10px !important;
  }

  .home .top-mv .btn-navy,
  .home .top-mv .btn-ghostwhite {
    height:52px !important;
    width:100% !important;
    padding:0 18px !important;
    font-size:15px !important;
  }

  .home .top-mv-dots {
    bottom:16px !important;
  }

  .home .top-mv-dots > div {
    padding:0 20px !important;
  }

  .home .mv-dot {
    width:24px;
    height:3px;
  }

  .home .top-important {
    top:480px !important;
    bottom:auto !important;
    padding:16px !important;
  }

  .home .top-important > div {
    display:block !important;
    padding:0 !important;
  }

  .home .top-important [style*="width:560px"] {
    width:100% !important;
    box-shadow:0 6px 20px rgba(6,40,46,.12) !important;
  }

  .home .top-important .imp-item {
    display:flex !important;
    flex-direction:column !important;
    justify-content:center !important;
    align-items:center !important;
    gap:0 !important;
    padding:0 14px !important;
  }

  .home .top-important .imp-item .en {
    line-height:1.2 !important;
    margin-bottom:2px !important;
  }

  .home .top-important .imp-title {
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    line-height:1.35 !important;
  }

  .home .top-feature {
    padding:36px 16px 40px !important;
  }

  .home .top-feature > div > div:first-child {
    display:block !important;
    margin-bottom:20px !important;
  }

  .home .top-feature h2 {
    font-size:24px !important;
    line-height:1.35 !important;
  }

  .home .top-feature p {
    font-size:13px !important;
    line-height:1.8 !important;
  }

  .home .top-feature-button {
    display:none !important;
  }

  .home .top-feature-sp-button {
    display:flex !important;
    height:52px !important;
    border:1px solid #17282c;
    align-items:center;
    justify-content:center;
    gap:8px;
    font-size:14px;
    font-weight:700;
    margin-top:16px;
    width:100% !important;
  }

  .home .top-feature [style*="grid-template-columns:repeat(4,1fr)"] {
    display:flex !important;
    flex-direction:column !important;
    gap:12px !important;
  }

  .home .top-feature .jobnav {
    transform:none !important;
  }

  .home .top-feature .jobnav > div:last-child {
    gap:10px !important;
    padding:14px 16px 16px !important;
  }

  .home .top-news,
  .home .top-strengths,
  .home .top-openings,
  .home .top-workplace,
  .home .top-flow,
  .home .top-contact {
    padding:40px 16px !important;
  }

  .home .top-news > div,
  .home .top-strengths > div,
  .home .top-workplace > div {
    display:block !important;
  }

  .home .top-news .btn-wire,
  .home .top-workplace .btn-wire {
    margin-top:16px;
    height:48px !important;
    justify-content:center !important;
  }

  .home .top-news .newsrow {
    display:flex !important;
    flex-direction:column !important;
    align-items:flex-start !important;
    gap:6px !important;
    padding:14px 0 !important;
  }

  .home .top-news .newsrow > span:nth-child(2) {
    padding:5px 12px !important;
    line-height:1.2 !important;
    min-width:78px;
  }

  .home .top-strengths > div > div:first-child .lede {
    max-width:none !important;
    text-align:left !important;
    margin-top:12px !important;
  }

  .home .top-strengths [style*="grid-template-columns:repeat(4,1fr)"],
  .home .top-flow [style*="grid-template-columns:repeat(4,1fr)"],
  .home .top-workplace [style*="grid-template-columns:repeat(3,1fr)"],
  .home .top-openings [style*="grid-template-columns:repeat(3,1fr)"] {
    display:flex !important;
    flex-direction:column !important;
    gap:14px !important;
  }

  .home .top-strengths [style*="font-size:34px"] {
    font-size:26px !important;
    color:#c3cbd1 !important;
  }

  .home .top-openings {
    padding-left:0 !important;
    padding-right:0 !important;
  }

  .home .top-openings > div > div:first-child,
  .home .top-openings > div > div:nth-child(2),
  .home .top-openings > div > div:last-child {
    padding-left:16px !important;
    padding-right:16px !important;
  }

  .home .top-openings > div > div:first-child {
    display:block !important;
  }

  .home .top-openings > div > div:first-child > div:last-child {
    justify-content:flex-start !important;
    overflow-x:visible;
    flex-wrap:wrap !important;
    padding:0 !important;
    margin-top:14px;
    scrollbar-width:none;
  }

  .home .top-openings > div > div:first-child > div:last-child::-webkit-scrollbar {
    display:none;
  }

  .home .top-openings > div > div:first-child > div:last-child > span {
    display:none;
  }

  .home .top-openings > div > div:first-child > div:last-child > a {
    flex:0 0 auto;
    font-size:12px !important;
    padding:8px 12px !important;
    background:#ffffff;
    white-space:nowrap !important;
  }

  .home .top-about {
    display:block !important;
  }

  .home .top-about > div:first-child {
    min-height:220px !important;
  }

  .home .top-about > div:last-child {
    padding:40px 16px !important;
  }

  .home .top-about [style*="grid-template-columns:130px 1fr"] {
    display:grid !important;
    grid-template-columns:88px 1fr !important;
    gap:14px !important;
  }

  .home .top-contact [style*="grid-template-columns:1.1fr 1fr"] {
    display:flex !important;
    flex-direction:column !important;
    gap:26px !important;
  }

  .home .top-contact > div > div:last-child,
  .v2 section[style*="background:#0f8bab"] > div[style*="grid-template-columns:1.1fr 1fr"] > div:last-child {
    width:100% !important;
    max-width:190px !important;
    margin:0 auto !important;
  }

  body.home .site .top-mv {
    height:480px !important;
    min-height:480px !important;
    padding-left:0 !important;
    padding-right:0 !important;
    overflow:visible !important;
    margin-bottom:148px !important;
  }

  body.home .site .top-mv-content {
    justify-content:center !important;
  }

  body.home .site .top-mv-content > div {
    padding:0 20px !important;
  }

  body.home .site .top-mv h1 {
    font-size:34px !important;
    line-height:1.3 !important;
    max-width:none !important;
  }

  body.home .site .top-mv h1 .sp-mv-break {
    display:block;
  }

  body.home .site .top-mv p {
    font-size:14px !important;
    line-height:1.85 !important;
    max-width:none !important;
  }

  body.home .site .top-mv-dots {
    bottom:16px !important;
  }

  body.home .site .top-important {
    top:100% !important;
    bottom:auto !important;
    padding:16px !important;
    background:#ffffff;
    pointer-events:auto;
  }

  body.home .site .top-important > div {
    display:block !important;
    padding:0 !important;
  }

  body.home .site .top-important [style*="width:560px"] {
    width:100% !important;
    box-shadow:0 6px 20px rgba(6,40,46,.12) !important;
  }

  .site-header > .sp-drawer > .sp-drawer-actions {
    padding:24px 16px 42px !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
    justify-content:flex-start !important;
    gap:12px !important;
    width:100% !important;
  }

  .site-header > .sp-drawer > .sp-drawer-actions > div {
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:12px !important;
    width:100% !important;
  }

  .site-header > .sp-drawer > .sp-drawer-actions > div a {
    padding:0 14px !important;
    white-space:nowrap !important;
  }

  #flow [style*="grid-template-columns:1fr 22px"] {
    display:flex !important;
    flex-direction:column !important;
    gap:0 !important;
  }

  #flow [style*="grid-template-columns:1fr 22px"] > div:nth-child(even) {
    min-height:28px !important;
  }

  #flow [style*="grid-template-columns:1fr 22px"] > div:nth-child(even) svg {
    transform:rotate(90deg);
  }

  .pc-label { display:none !important; }
  .sp-label { display:inline !important; }
}
