/*
Theme Name: MEG Japan 2026
Theme URI: https://megjapan.com/
Author: MEG Japan
Description: MEG Japan株式会社 公式サイト用オリジナルテーマ。Figma（Design_0819）準拠、レスポンシブ対応。
Version: 1.0.14
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GPL v2 or later
Text Domain: meg
*/

/* =========================================================
   MEG Japan — TOP
   Design : Figma / Design_0819  PC-TOP-A-1 (1440) + SP-TOP-B (393)
   Fonts  : Jost / Noto Sans JP
   ========================================================= */

:root{
  --coral:#ff5f47;
  --coral-pale:#fff7f6;
  --gray-bg:#f6f6f6;
  --num:#999ea9;
  --label:#d9d9d9;
  --rule:#696d77;
  --ink:#000;
  --white:#fff;

  --font-en:"Jost","Noto Sans JP",sans-serif;
  --font-jp:"Noto Sans JP",sans-serif;

  --frame:1440px;
  --pad-x:120px;
  --pad-top:250px;
  --pad-bottom:300px;
  --label-w:104px;
  --col-gap:205px;
  --content-w:792px;
}

*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{
  margin:0;
  color:var(--ink);
  font-family:var(--font-jp);
  font-weight:500;
  font-size:16px;
  line-height:2;
  letter-spacing:.06em;
  -webkit-font-smoothing:antialiased;
}
img,svg{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;transition:opacity .3s ease;}
a:hover{opacity:.65;}
ul,ol,dl,dd{margin:0;padding:0;list-style:none;}
p{margin:0;}
h1,h2,h3,h4{margin:0;font-weight:inherit;font-size:inherit;}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;}
.sp-only{display:none;}

/* ---------- header ---------- */
.header{
  position:fixed;inset:0 0 auto 0;z-index:100;
  transition:background-color .35s ease,box-shadow .35s ease,transform .5s ease,opacity .5s ease;
}
.header.is-hidden{transform:translateY(-100%);opacity:0;pointer-events:none;}
.header__inner{
  max-width:var(--frame);margin:0 auto;
  display:flex;align-items:center;justify-content:space-between;
  padding:41px 50px;
  transition:padding .35s ease;
}
.header.is-scrolled{background:var(--coral);}
.header.is-scrolled .header__inner{padding:18px 50px;}
.header__logo{width:80px;flex:none;transition:width .35s ease;}
.header.is-scrolled .header__logo{width:52px;}

.gnav__list{display:flex;align-items:center;gap:30px;}
.gnav__list a{
  font-family:var(--font-en);font-weight:600;font-size:14px;line-height:1;
  letter-spacing:.06em;color:var(--white);white-space:nowrap;
}
.nav-toggle{display:none;}

/* ---------- hero ---------- */
.hero{
  position:relative;
  height:850px;
  background:var(--coral);
  display:flex;flex-direction:column;align-items:center;
  overflow:hidden;
}
.hero__logo{width:504.992px;max-width:74%;margin-top:308px;}
.hero__en{
  margin-top:56px;
  font-family:var(--font-en);font-weight:500;font-size:35px;line-height:1.2;
  letter-spacing:.08em;color:var(--white);text-align:center;
}
.hero__jp{
  margin-top:32px;
  font-size:20px;line-height:1.2;letter-spacing:.2em;
  color:var(--white);text-align:center;
}

/* ---------- section shell ---------- */
.section{padding:0;}
.section__inner{
  max-width:var(--frame);margin:0 auto;
  padding:var(--pad-top) var(--pad-x) var(--pad-bottom);
  display:grid;grid-template-columns:var(--label-w) minmax(0,var(--content-w));
  column-gap:var(--col-gap);align-items:start;
}
.section--news{background:var(--gray-bg);}
.section--about{background:var(--white);}
.section--service{background:var(--coral-pale);}
.section--message{background:var(--white);}
.section--contact{background:var(--coral);}
.section--contact .section__inner{padding-bottom:60px;}

/* vertical section label — colors are per-section, exactly as in Figma */
.sec-label{
  display:flex;flex-direction:column;align-items:center;gap:26px;
}
.sec-label__num{
  font-family:var(--font-en);font-weight:400;font-size:84px;line-height:.945;
  letter-spacing:.05em;
}
.sec-label__line{display:block;width:2px;height:78.25px;}
.sec-label__text{
  writing-mode:vertical-rl;
  font-family:var(--font-en);font-weight:400;font-size:40px;line-height:1;
  letter-spacing:.05em;white-space:nowrap;
}
/* 01 NEWS */
.section--news .sec-label__num{color:var(--coral);}
.section--news .sec-label__line{background:var(--rule);}
.section--news .sec-label__text{color:var(--rule);}
/* 02 ABOUT */
.section--about .sec-label__num{color:var(--coral);}
.section--about .sec-label__line{background:var(--rule);}
.section--about .sec-label__text{color:var(--rule);}
/* 03 SERVICE */
.section--service .sec-label__num{color:var(--coral);}
.section--service .sec-label__line{background:var(--rule);}
.section--service .sec-label__text{color:var(--rule);}
/* 04 Message from MEG */
.section--message .sec-label__num{color:var(--coral);}
.section--message .sec-label__line{background:var(--rule);}
.section--message .sec-label__text{color:var(--rule);}
/* 05 CONTACT */
.section--contact .sec-label__num{color:var(--white);}
.section--contact .sec-label__line{background:var(--white);}
.section--contact .sec-label__text{color:var(--white);}

/* ---------- buttons ---------- */
.btn{
  width:250px;height:45px;
  border-radius:31px;background:var(--coral);
  display:flex;align-items:center;justify-content:space-between;
  padding:0 30px 0 102px;
  font-family:var(--font-en);font-weight:600;font-size:16.925px;line-height:1.47;
  letter-spacing:.05em;color:var(--white);text-transform:uppercase;white-space:nowrap;
  transition:opacity .3s ease,transform .3s ease;
}
.btn:hover{opacity:1;transform:translateY(-2px);}
.btn--white{background:var(--white);color:var(--coral);padding:0 20px 0 65px;}
.btn__arrow{width:13.816px;height:13.816px;flex:none;fill:currentColor;transform:rotate(90deg);}

.textlink{
  display:inline-flex;align-items:center;gap:21px;
  font-family:var(--font-en);font-weight:500;font-size:16px;line-height:2.375;
  letter-spacing:.06em;color:var(--white);
}
.textlink__arrow{width:13.816px;height:13.816px;flex:none;fill:currentColor;transform:rotate(90deg);}

/* ---------- 01 news ---------- */
.news__body{display:flex;flex-direction:column;gap:141px;align-items:flex-start;}
.news__list{width:100%;display:flex;flex-direction:column;gap:34px;}
.news__item{display:flex;flex-direction:column;gap:17px;}
.news__date{
  font-family:var(--font-en);font-weight:500;font-size:15px;line-height:2.667;
  letter-spacing:.05em;color:var(--coral);
}
.news__title{font-size:16px;line-height:2;letter-spacing:.06em;color:var(--ink);}
.news__rule{height:1px;background:var(--rule);}

/* ---------- 02 about ---------- */
.about__body{display:flex;flex-direction:column;gap:200px;}
.about__intro{display:flex;flex-direction:column;gap:100px;}
.about__lead{
  font-weight:700;font-size:24px;line-height:2.25;letter-spacing:.06em;color:var(--coral);
}
.about__text{font-size:17px;line-height:2.294;letter-spacing:.06em;color:var(--ink);}

.about__cards{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start;}
.about__col{display:flex;flex-direction:column;gap:20px;}

.card{background:var(--gray-bg);padding-bottom:80px;display:flex;flex-direction:column;gap:50px;}
.card__no{
  width:50px;height:50px;flex:none;
  background:var(--coral);color:var(--gray-bg);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font-en);font-weight:400;font-size:28px;line-height:1.31;
}
.card__body{padding:0 50px;display:flex;flex-direction:column;gap:50px;}
.card__head{display:flex;flex-direction:column;gap:30px;}
.card__en{
  font-family:var(--font-en);font-weight:400;font-size:38px;line-height:1.053;
  letter-spacing:.05em;color:var(--coral);text-transform:uppercase;
}
.card__jp{font-size:14px;line-height:1;letter-spacing:.06em;color:var(--coral);}
.card__text{font-size:16px;line-height:2;letter-spacing:.06em;color:var(--ink);}
.card--value .card__body{gap:126px;}
.card--value .card__intro{display:flex;flex-direction:column;gap:50px;}
.card__values{display:flex;flex-direction:column;gap:50px;}
.card__value dt{
  font-family:var(--font-en);font-weight:400;font-size:19px;line-height:2.1;
  letter-spacing:.05em;color:var(--coral);
}
.card__value dd{margin-top:26px;font-size:13px;line-height:2;letter-spacing:.05em;color:var(--ink);}

/* ---------- band ---------- */
.band{
  height:600px;
  background:url("assets/img/band.png") 38% 100% / cover no-repeat;
}

/* ---------- 03 service ---------- */
.service__list{display:flex;flex-direction:column;gap:200px;}
.service__item{display:flex;align-items:center;gap:50px;}
.service__icon{
  width:114px;height:114px;flex:none;
  border:2px solid var(--coral);border-radius:15px;
  display:flex;align-items:center;justify-content:center;
}
.service__icon img{width:69.33px;height:auto;}
.service__text-block{display:flex;flex-direction:column;gap:41px;}
.service__title{
  font-weight:700;font-size:22px;line-height:2;letter-spacing:.06em;color:var(--coral);
}
.service__text{
  font-size:17px;line-height:2;letter-spacing:.06em;color:var(--ink);text-align:justify;
}

/* ---------- 04 message ---------- */
.message__body{display:flex;flex-direction:column;gap:190px;}
.message__letter{display:flex;flex-direction:column;gap:100px;}
.message__text{font-size:16px;line-height:2.438;letter-spacing:.06em;color:var(--ink);text-align:justify;}
.message__text p+p{margin-top:39px;}
.message__sign{font-size:16px;line-height:2.438;letter-spacing:.06em;text-align:right;}
.message__blocks{display:flex;flex-direction:column;gap:180px;}

/* profile */
.profile{
  background:var(--coral);color:var(--white);
  padding:80px 47px;display:flex;flex-direction:column;gap:45px;align-items:center;
}
.profile__top{
  width:100%;max-width:656px;
  display:flex;gap:47px;align-items:flex-end;justify-content:flex-end;
}
.profile__info{flex:1 1 auto;}
.profile__role{font-size:12px;line-height:1;}
.profile__name{display:flex;align-items:baseline;gap:13px;margin-top:29px;}
.profile__name-jp{font-size:25px;line-height:1;letter-spacing:.1em;}
.profile__name-en{font-family:var(--font-en);font-weight:500;font-size:18px;line-height:1;letter-spacing:.05em;}
.profile__bio{margin-top:45px;font-size:12px;line-height:1.917;letter-spacing:.05em;text-align:justify;}
.profile__photo{width:152px;height:239px;flex:none;object-fit:cover;object-position:50% 34%;}
.profile__meta{width:100%;max-width:660px;display:flex;flex-direction:column;gap:7px;}
.profile__meta > div{display:grid;grid-template-columns:69px minmax(0,1fr);}
.profile__meta dt{font-size:12px;line-height:1.75;letter-spacing:.05em;}
.profile__meta dd{font-size:12px;line-height:1.75;}

/* company */
.company{display:grid;grid-template-columns:308px minmax(0,418px);align-items:start;}
.company__head{display:flex;flex-direction:column;}
.company__title{
  font-family:var(--font-en);font-weight:400;font-size:40px;line-height:1.4;
  letter-spacing:.05em;color:var(--coral);text-transform:uppercase;
}
.company__mark{width:58px;height:58px;margin-top:117px;}
.company__table{display:flex;flex-direction:column;gap:11px;}
.company__table > div{display:grid;grid-template-columns:120px minmax(0,1fr);}
.company__table dt{font-size:16px;line-height:2;letter-spacing:.06em;color:var(--coral);}
.company__table dd{font-size:16px;line-height:2;letter-spacing:.06em;color:var(--ink);}
.company__table dd a{color:var(--coral);text-decoration:underline;text-underline-offset:.25em;}

/* ---------- 05 contact ---------- */
.contact__body{display:flex;flex-direction:column;gap:310px;max-width:466px;}
.contact__block{display:flex;flex-direction:column;gap:108px;align-items:flex-start;}
.contact__lead{font-size:16px;line-height:2;letter-spacing:.06em;color:var(--white);}
.contact__actions{display:flex;flex-direction:column;align-items:flex-start;gap:25px;}
.contact__copy{
  font-weight:500;font-size:14px;line-height:2.714;letter-spacing:.06em;color:var(--white);
}
.footer-copy{
  background:var(--coral);color:var(--white);
  display:none;justify-content:center;padding:0 0 60px;
  font-weight:400;font-size:12px;line-height:2.834;letter-spacing:.06em;
}

/* =========================================================
   sub page : NEWS (news.html)
   ========================================================= */
.header--solid{background:var(--white);}
.header--solid.is-scrolled{background:var(--white);box-shadow:0 1px 0 rgba(105,109,119,.15);}
.header--solid .gnav__list a{color:var(--coral);}
.header--solid .nav-toggle span{background:var(--coral);}

/* .page の padding-top を 0 に変更（固定ヘッダーと admin bar との重複排除） */
.page{padding-top:0;}
.page__inner{
  max-width:var(--frame);margin:0 auto;
  padding:250px var(--pad-x) 300px;
  display:grid;grid-template-columns:53px minmax(0,791px);column-gap:253px;align-items:start;
}
.page__title{
  writing-mode:vertical-rl;
  font-family:var(--font-en);font-weight:400;font-size:75px;line-height:1;
  letter-spacing:.05em;color:var(--coral);white-space:nowrap;
}

.article-list{display:flex;flex-direction:column;gap:105px;}
.article{display:block;}
/* サムネイル廃止（HTML側でも出力停止済み。念のため非表示を維持） */
.article__thumb{display:none;}
.article__body{width:100%;}
.article__body{display:flex;flex-direction:column;gap:30px;}
.article__meta{display:flex;flex-direction:column;gap:11px;}
.article__date{
  font-family:var(--font-en);font-weight:500;font-size:15px;line-height:2.667;
  letter-spacing:.05em;color:var(--coral);
}
.article__rule{height:1px;background:var(--coral);}
.article__text{display:flex;flex-direction:column;gap:30px;}
.article__title{
  font-weight:700;font-size:18px;line-height:2;letter-spacing:.06em;
  color:var(--coral);text-align:justify;
}
.article__lead{font-size:16px;line-height:2;letter-spacing:.06em;color:var(--ink);text-align:justify;}

/* ---------- contact form (contact.html) ---------- */
.form{display:flex;flex-direction:column;gap:80px;}
.form__lead{font-size:16px;line-height:2;letter-spacing:.06em;color:var(--ink);}
.form__note{margin-top:26px;font-size:14px;line-height:2;letter-spacing:.06em;color:var(--rule);}
.form__fields{display:flex;flex-direction:column;gap:50px;}
.field{display:grid;grid-template-columns:200px minmax(0,1fr);column-gap:40px;align-items:start;}
.field__label{
  display:flex;align-items:center;gap:12px;padding-top:14px;
  font-weight:700;font-size:15px;line-height:2;letter-spacing:.06em;color:var(--coral);
}
.field__req{
  flex:none;padding:2px 10px;border-radius:2px;
  background:var(--coral);color:var(--white);
  font-family:var(--font-en);font-weight:600;font-size:11px;line-height:1.8;letter-spacing:.08em;
}
.field__req--any{background:var(--label);color:var(--rule);}
.field__control{display:flex;flex-direction:column;gap:10px;}
.field__hint{font-size:12px;line-height:1.9;letter-spacing:.06em;color:var(--rule);}

.input,.textarea,.select{
  width:100%;
  padding:14px 18px;
  background:var(--gray-bg);
  border:1px solid transparent;
  border-radius:4px;
  font-family:var(--font-jp);font-weight:500;font-size:16px;line-height:1.8;
  letter-spacing:.06em;color:var(--ink);
  transition:border-color .25s ease,background-color .25s ease;
}
.input::placeholder,.textarea::placeholder{color:#a8acb5;}
.input:focus,.textarea:focus,.select:focus{
  outline:none;background:var(--white);border-color:var(--coral);
}
.textarea{min-height:220px;resize:vertical;}
.select{
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23ff5f47' stroke-width='1.6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 18px center;background-size:12px 8px;
  padding-right:44px;cursor:pointer;
}
.input.is-error,.textarea.is-error,.select.is-error{border-color:var(--coral);background:var(--coral-pale);}
.field__error{display:none;font-size:12px;line-height:1.9;letter-spacing:.06em;color:var(--coral);}
.field__error.is-shown{display:block;}

.consent{display:flex;flex-direction:column;gap:14px;align-items:center;text-align:center;}
.checkbox{display:inline-flex;align-items:flex-start;gap:12px;cursor:pointer;}
.checkbox input{
  appearance:none;flex:none;width:20px;height:20px;margin-top:6px;
  border:1px solid var(--rule);border-radius:2px;background:var(--white);
  transition:background-color .2s ease,border-color .2s ease;
}
.checkbox input:checked{
  background:var(--coral) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 11'%3E%3Cpath d='M1 5.5l4 4 8-8' fill='none' stroke='%23fff' stroke-width='2'/%3E%3C/svg%3E") center / 12px 9px no-repeat;
  border-color:var(--coral);
}
.checkbox input:focus-visible{outline:2px solid var(--coral);outline-offset:2px;}
.checkbox span{font-size:14px;line-height:2;letter-spacing:.06em;color:var(--ink);}
.checkbox a{color:var(--coral);text-decoration:underline;}

.form__submit{display:flex;flex-direction:column;align-items:center;gap:24px;}
.btn--submit{
  justify-content:center;gap:26px;padding:0 30px;width:320px;height:56px;
  font-family:var(--font-jp);font-weight:600;font-size:16px;
  border:0;cursor:pointer;
}
.btn--submit:disabled{opacity:.4;cursor:not-allowed;transform:none;}

.form__done{
  display:none;flex-direction:column;gap:30px;align-items:center;text-align:center;
  padding:80px 30px;background:var(--coral-pale);
}
.form__done.is-shown{display:flex;}
.form__done h2{
  font-family:var(--font-en);font-weight:400;font-size:38px;line-height:1.2;
  letter-spacing:.05em;color:var(--coral);
}
.form__done p{font-size:15px;line-height:2;letter-spacing:.06em;color:var(--ink);}

@media (max-width:1024px){
  .field{grid-template-columns:170px minmax(0,1fr);column-gap:28px;}
}
@media (max-width:767px){
  .form{gap:60px;}
  .form__lead{font-size:14px;}
  .form__note{font-size:12px;margin-top:20px;}
  .form__fields{gap:36px;}
  .field{grid-template-columns:minmax(0,1fr);row-gap:12px;}
  .field__label{padding-top:0;font-size:14px;}
  .input,.textarea,.select{font-size:16px;padding:13px 15px;}
  .textarea{min-height:180px;}
  .btn--submit{width:100%;height:52px;}
  .form__done{padding:56px 24px;}
  .form__done h2{font-size:30px;}
}

/* ---------- static text page (privacy.html) ---------- */
.legal{display:flex;flex-direction:column;gap:80px;}
.legal__lead{font-size:16px;line-height:2;letter-spacing:.06em;color:var(--ink);}
.legal__blocks{display:flex;flex-direction:column;gap:60px;}
.legal__block{display:flex;flex-direction:column;gap:20px;}
.legal__heading{
  font-weight:700;font-size:18px;line-height:2;letter-spacing:.06em;color:var(--coral);
}
.legal__text{font-size:16px;line-height:2;letter-spacing:.06em;color:var(--ink);text-align:justify;}
.legal__text a,.legal__list a,.article__lead a,.form__lead a{
  color:var(--coral);text-decoration:underline;text-underline-offset:.25em;
}
.legal__text a:hover,.legal__list a:hover,.article__lead a:hover,.form__lead a:hover{opacity:.65;}
.legal__list{display:flex;flex-direction:column;gap:8px;}
.legal__list li{
  position:relative;padding-left:1.4em;
  font-size:16px;line-height:2;letter-spacing:.06em;color:var(--ink);
}
.legal__list li::before{
  content:"";position:absolute;left:.2em;top:1em;
  width:6px;height:6px;border-radius:50%;background:var(--coral);
}
.legal__info{display:flex;flex-direction:column;gap:6px;}
.legal__date{font-size:14px;line-height:2;letter-spacing:.06em;color:var(--rule);text-align:right;}

@media (max-width:767px){
  .legal{gap:56px;}
  .legal__blocks{gap:44px;}
  .legal__lead,.legal__text,.legal__list li{font-size:14px;}
  .legal__heading{font-size:16px;}
  .legal__text{text-align:left;}
  .legal__date{font-size:12px;}
}

/* ---------- news single (news-detail.html) ---------- */
.single{display:flex;flex-direction:column;gap:80px;}
.single__head{display:flex;flex-direction:column;gap:20px;}
.single__date{
  font-family:var(--font-en);font-weight:500;font-size:15px;line-height:2.667;
  letter-spacing:.05em;color:var(--coral);
}
.single__title{
  font-weight:700;font-size:26px;line-height:1.85;letter-spacing:.06em;color:var(--coral);
}
.single__rule{height:1px;background:var(--coral);}
.single__hero{width:100%;height:420px;object-fit:cover;}

.single__body{display:flex;flex-direction:column;gap:50px;}
.single__body p{font-size:16px;line-height:2.25;letter-spacing:.06em;color:var(--ink);text-align:justify;}
.single__body h2{
  font-weight:700;font-size:18px;line-height:2;letter-spacing:.06em;color:var(--coral);
}
.single__body a{color:var(--coral);text-decoration:underline;text-underline-offset:.25em;}
.single__section{display:flex;flex-direction:column;gap:20px;}
.single__figure{display:flex;flex-direction:column;gap:14px;}
.single__figure img{width:100%;height:320px;object-fit:cover;}
.single__caption{font-size:13px;line-height:2;letter-spacing:.06em;color:var(--rule);}
.single__grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.single__grid img{width:100%;height:240px;object-fit:cover;}

.single__nav{
  display:flex;align-items:center;justify-content:space-between;gap:20px;
  padding-top:50px;border-top:1px solid var(--label);
}
.single__nav a{
  font-family:var(--font-en);font-weight:600;font-size:14px;line-height:2;
  letter-spacing:.06em;color:var(--coral);white-space:nowrap;
}
.single__nav span[aria-disabled]{
  font-family:var(--font-en);font-weight:600;font-size:14px;
  letter-spacing:.06em;color:var(--label);white-space:nowrap;
}
.single__back{display:flex;justify-content:center;}

@media (max-width:1024px){
  .single__hero{height:340px;}
  .single__body p{text-align:left;}
}
@media (max-width:767px){
  .single{gap:56px;}
  .single__title{font-size:20px;line-height:1.9;}
  .single__date{font-size:14px;}
  .single__hero{height:200px;}
  .single__body{gap:36px;}
  .single__body p{font-size:14px;line-height:2;}
  .single__body h2{font-size:16px;}
  .single__figure img{height:190px;}
  .single__grid{grid-template-columns:1fr;gap:14px;}
  .single__grid img{height:190px;}
  .single__nav{padding-top:36px;font-size:12px;}
  .single__nav a,.single__nav span[aria-disabled]{font-size:12px;}
}

.page-footer{
  display:flex;justify-content:center;padding:0 20px 60px;
  font-weight:400;font-size:14px;line-height:2.715;letter-spacing:.06em;color:var(--ink);
}

@media (max-width:1240px){
  .page__inner{padding:180px var(--pad-x) 200px;column-gap:110px;}
  .page__title{font-size:60px;}
  .article-list{gap:80px;}
}
@media (max-width:1024px){
  .page__inner{column-gap:64px;grid-template-columns:44px minmax(0,1fr);}
  .article__title,.article__lead{text-align:left;}
}
@media (max-width:767px){
  .page{padding-top:102px;}
  /* SPは左右 20px（TOPページの .hero / .header__inner と統一）。
     --pad-x:120px のままだと本文カラムがほぼ潰れる */
  .page__inner{padding:100px 20px 100px;grid-template-columns:32px minmax(0,1fr);column-gap:38px;}
  .page__title{font-size:30px;}
  .article__date{font-size:16px;}
  .page-footer{font-size:12px;color:var(--rule);padding-bottom:48px;}
}

/* ---------- NEWS archive : VIEW MORE (Ajax) ---------- */
/* ページナビは廃止。.pager 以下のスタイルは未使用だが、
   将来ページ送りに戻す場合のために残置。 */
.news-more{margin-top:105px;}
.btn--more{
  padding:0 30px;
  justify-content:space-between;
  cursor:pointer;
  border:none;
  font-family:var(--font-en);
}
.btn--more .btn__label{pointer-events:none;}
.btn--more:disabled{cursor:default;}
.btn--more.is-loading{opacity:.5;}
.btn--more[hidden]{display:none;}

@media (max-width:1240px){
  .news-more{margin-top:80px;}
}
@media (max-width:767px){
  .news-more{margin-top:60px;}
  .btn--more{width:100%;}
}

/* ---------- pagination (WP) ---------- */
.pager{margin-top:20px;}
.pager .nav-links{display:flex;align-items:center;justify-content:center;gap:20px;flex-wrap:wrap;}
.pager .page-numbers{
  font-family:var(--font-en);font-weight:600;font-size:14px;line-height:1;
  letter-spacing:.06em;color:var(--coral);padding:10px 4px;
}
.pager .page-numbers.current{color:var(--rule);}
.pager .screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);}

/* ---------- WP content (the_content) ---------- */
.single__body > *+*{margin-top:36px;}
.single__body img{width:100%;height:auto;}
.single__body figure{display:flex;flex-direction:column;gap:14px;}
.single__body figcaption{font-size:13px;line-height:2;letter-spacing:.06em;color:var(--rule);}
.single__body ul,.single__body ol{display:flex;flex-direction:column;gap:8px;}
.single__body li{
  position:relative;padding-left:1.4em;
  font-size:16px;line-height:2;letter-spacing:.06em;color:var(--ink);
}
.single__body ul li::before{
  content:"";position:absolute;left:.2em;top:1em;
  width:6px;height:6px;border-radius:50%;background:var(--coral);
}
.legal__blocks h2{
  font-weight:700;font-size:18px;line-height:2;letter-spacing:.06em;color:var(--coral);
}
.legal__blocks > *+*{margin-top:20px;}
.legal__blocks h2+p{margin-top:20px;}
.legal__blocks p{font-size:16px;line-height:2;letter-spacing:.06em;color:var(--ink);}
.legal__blocks a{color:var(--coral);text-decoration:underline;text-underline-offset:.25em;}
@media (max-width:767px){
  .single__body li,.legal__blocks p{font-size:14px;}
  .legal__blocks h2{font-size:16px;}
}

/* ---------- reveal ---------- */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .9s ease,transform .9s ease;}
.reveal.is-in{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .reveal{opacity:1;transform:none;transition:none;}
}

/* =========================================================
   Contact Form 7 Styling (dl/dt/dd layout - vertical)
   ========================================================= */

/* フォーム全体 */
.wpcf7-form {
  display: flex;
  flex-direction: column;
  gap: 50px;
}

/* 定義リスト */
.wpcf7-form dl {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
}

/* ラベル（dt） */
.wpcf7-form dt {
  display: block;
  font-weight: 600;
  font-size: 14px;
  line-height: 1.5;
  letter-spacing: 0.06em;
  color: var(--ink);
  margin: 34px 0 10px 0;
  padding: 0;
}

.wpcf7-form dt:first-child {
  margin-top: 0;
}

/* 必須マーク */
.wpcf7-form dt em {
  color: var(--coral);
  font-style: normal;
  margin-left: 2px;
}

/* 入力エリア（dd） */
.wpcf7-form dd {
  display: block;
  margin: 0;
  padding: 0;
}

/* フォーム制御ラッパー */
.wpcf7-form-control-wrap {
  display: block;
  width: 100%;
}

/* 入力フィールド共通 */
.wpcf7-form-control {
  display: block;
  width: 100%;
  padding: 12px 16px;
  background: #f5f5f5;
  border: none;
  border-radius: 0;
  font-family: var(--font-jp);
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.06em;
  color: var(--ink);
  box-sizing: border-box;
  transition: background-color 0.2s;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

.wpcf7-form-control:focus {
  outline: 1px solid var(--coral);
  outline-offset: -1px;
  background: #fafafa;
}

.wpcf7-form-control::placeholder {
  color: #999;
}

/* テキスト入力フィールド */
.wpcf7-text,
.wpcf7-tel,
.wpcf7-email {
  height: 47px;
}

/* テキストエリア */
.wpcf7-textarea {
  height: 450px;
  resize: vertical;
  font-family: var(--font-jp);
  line-height: 1.8;
  padding: 14px 16px;
}

/* 文字カウント */
.wpcf7-form dd > p {
  margin: 6px 0 0 0;
  font-size: 12px;
  line-height: 1.4;
}
.wpcf7-character-count {
  font-size: 12px;
  color: #999;
}

/* エラーメッセージ */
.wpcf7-form-control.wpcf7-not-valid {
  border-color: var(--coral);
  background-color: #fef5f5;
}

.wpcf7-not-valid-tip {
  color: var(--coral);
  font-size: 12px;
  margin-top: 4px;
  display: block;
  line-height: 1.4;
}

/* 送信ボタン行 */
.wpcf7-form dt:empty {
  margin: 0;
}
.wpcf7-form dt:empty + dd {
  margin-top: 130px;
}

/* 送信ボタン */
.wpcf7-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 250px;
  height: 40px;
  padding: 0 30px;
  background: var(--coral);
  color: var(--white);
  border: none;
  border-radius: 20px;
  font-family: var(--font-jp);
  font-weight: 600;
  font-size: 15px;
  line-height: 1;
  letter-spacing: 0.05em;
  cursor: pointer;
  transition: opacity 0.2s;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

.wpcf7-submit:hover {
  opacity: 0.85;
}

.wpcf7-submit:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* ボタンラッパー（既存 .btn のピル型を打ち消して、input 自体をボタンにする） */
.btn.btn_meg {
  position: relative;
  display: inline-block;
  width: 250px;
  height: auto;
  padding: 0;
  background: none;
  border-radius: 0;
  transition: none;
}
.btn.btn_meg:hover {
  transform: none;
}
/* CF7 のスピナーが親の幅を広げるのを防ぐ（矢印の位置がずれる原因） */
.btn.btn_meg .wpcf7-spinner {
  position: absolute;
  top: 50%;
  left: calc(100% + 16px);
  margin: -12px 0 0 0;
}
/* Figma の右向き矢印 */
.btn.btn_meg::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 24px;
  width: 0;
  height: 0;
  margin-top: -5px;
  border-style: solid;
  border-width: 5px 0 5px 8px;
  border-color: transparent transparent transparent var(--white);
  pointer-events: none;
}

/* フォーム送信完了メッセージ */
.wpcf7-mail-sent-ok {
  padding: 20px;
  background: #d4edda;
  border-left: 4px solid #28a745;
  color: #155724;
  margin-bottom: 20px;
  border-radius: 2px;
}

/* フォームエラーメッセージ */
.wpcf7-form-response {
  margin-bottom: 20px;
}

/* スパム検出メッセージ */
.wpcf7-spam-blocked {
  padding: 20px;
  background: #f8d7da;
  border-left: 4px solid var(--coral);
  color: #721c24;
  margin-bottom: 20px;
  border-radius: 2px;
}

/* タブレット対応 */
@media (max-width: 1024px) {
  .wpcf7-form dt {
    margin: 30px 0 10px 0;
  }

  .wpcf7-textarea {
    height: 360px;
  }

  .wpcf7-form dt:empty + dd {
    margin-top: 90px;
  }
}

/* スマートフォン対応 */
@media (max-width: 767px) {
  .wpcf7-form dt {
    font-size: 13px;
    margin: 26px 0 8px 0;
  }

  .wpcf7-form-control {
    padding: 12px;
    font-size: 16px;
  }

  .wpcf7-text,
  .wpcf7-tel,
  .wpcf7-email {
    height: 44px;
  }

  .wpcf7-textarea {
    height: 260px;
  }

  .wpcf7-form dt:empty + dd {
    margin-top: 60px;
  }

  .btn.btn_meg {
    display: block;
    width: 100%;
  }

  .wpcf7-submit {
    width: 100%;
  }
}


/* =========================================================
   TOP ページ SP 対応（Figma SP-TOP / 393px 基準）
   セクション padding 150px 20px 200px / 内容幅 353px
   画像バンド 393x245 / ヒーロー 393x859
   ========================================================= */
@media (max-width:767px){
  /* PC のラベル列104px + gap205px + 左右padding120px が SP でも効いており、
     390px 幅で本文カラムが 0px に潰れて中身が表示されていなかった。 */
  .section__inner{
    padding:150px 20px 200px;
    grid-template-columns:minmax(0,1fr);
    column-gap:0;
    row-gap:60px;
  }
  .sec-label{ width:auto; }

  /* Mission / Vision / Value は SP では1列 */
  .about__cards{ grid-template-columns:minmax(0,1fr); }

  /* COMPANY PROFILE。SP でも2カラム(308px+0px)のままで値が全て潰れていた。 */
  .company{ grid-template-columns:minmax(0,1fr); }
  .company__table > div{ grid-template-columns:96px minmax(0,1fr); }

  .band{ height:245px; }
  .hero{ height:859px; }
}

/* =========================================================
   SP ナビゲーション（Figma SP-MENU / 393x859）
   main.js は実装済み（body.nav-open / .gnav.is-open /
   .nav-toggle.is-open を付与）。CSS のみ未実装だった。
   ========================================================= */
@media (max-width:767px){
  .header__inner{ padding:24px 20px; }
  .header__logo{ position:relative; z-index:1002; }

  /* ハンバーガー */
  .nav-toggle{
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:7px;
    position:relative;
    z-index:1002;
    width:34px;
    height:24px;
    padding:0;
    border:0;
    background:none;
    cursor:pointer;
  }
  .nav-toggle span{
    display:block;
    width:100%;
    height:2px;
    background:var(--white);
    transition:transform .3s ease,opacity .3s ease;
  }
  /* 下層ページ（白ヘッダー）はコーラル */
  .header--solid .nav-toggle span{ background:var(--coral); }

  /* 開いたら × に変形（Figma SP-MENU の右上） */
  .nav-toggle.is-open span,
  .header--solid .nav-toggle.is-open span{ background:var(--white); }
  .nav-toggle.is-open span:nth-child(1){ transform:translateY(9px) rotate(45deg); }
  .nav-toggle.is-open span:nth-child(2){ opacity:0; }
  .nav-toggle.is-open span:nth-child(3){ transform:translateY(-9px) rotate(-45deg); }

  /* 全画面ドロワー */
  .gnav{
    position:fixed;
    inset:0;
    z-index:1001;
    display:flex;
    align-items:center;
    justify-content:center;
    background:var(--coral);
    opacity:0;
    visibility:hidden;
    transition:opacity .35s ease,visibility .35s ease;
  }
  .gnav.is-open{ opacity:1; visibility:visible; }

  .gnav__list{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:34px;
    width:100%;
    margin:0;
    padding:0;
    list-style:none;
  }
  .gnav__list a,
  .header--solid .gnav__list a{
    font-family:var(--font-en);
    font-weight:400;
    font-size:28px;
    line-height:1.2;
    letter-spacing:.08em;
    color:var(--white);
    text-transform:uppercase;
    text-decoration:none;
  }

  /* メニュー中は背面をスクロールさせない */
  body.nav-open{ overflow:hidden; }
}

/* =========================================================
   SP はヘッダーを常時表示（スクロールで隠さない）
   main.js は下スクロール時に .header.is-hidden を付与し、
   translateY(-116px) + opacity:0 で隠す。PC はそのままにし、
   SP でのみ打ち消して fixed 位置に固定する。
   ========================================================= */
@media (max-width:767px){
  .header.is-hidden{
    transform:none;
    opacity:1;
    visibility:visible;
    pointer-events:auto;
  }
}

/* Figma Design_fix 2 / SP-TOP 946:694. Append after the current theme CSS. */
@media (max-width:767px){
  body:has(#top .hero){padding-top:0;}
  #top .section__inner{padding:150px 20px 200px;display:grid;grid-template-columns:52px minmax(0,261px);column-gap:40px;row-gap:0;}
  #top .section__inner > *{min-width:0;}
  #top .sec-label{width:52px;gap:26px;}
  #top .sec-label__num{font-size:42px;line-height:38.862px;}
  #top .sec-label__line{width:1px;height:78.25px;}
  #top .sec-label__text{font-size:20px;line-height:19.597px;writing-mode:vertical-rl;}
  #top .hero{height:859px;min-height:0;padding:0 20px;justify-content:flex-start;}
  #top .hero__logo{width:290px;max-width:100%;margin-top:298px;height:94px;}
  #top .hero__logo img{width:100%;height:100%;object-fit:contain;}
  #top .hero__en{width:100%;max-width:100%;font-size:26px;line-height:38px;margin-top:52px;}
  #top .hero__jp{font-size:16px;line-height:65px;margin-top:34px;}
  #top .news__body{gap:80px;}
  #top .news__list{gap:40px;}
  #top .news__item{gap:26px;}
  #top .news__date{font-size:14px;line-height:22px;}
  #top .news__title{font-size:14px;line-height:30px;}
  #top .news__title a{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;}
  #top .about__body{gap:100px;}
  #top .about__intro{gap:65px;}
  #top .about__lead{font-size:16px;line-height:38px;}
  #top .about__text{font-size:14px;line-height:30px;letter-spacing:.84px;}
  #top .about__cards{grid-template-columns:minmax(0,1fr);gap:20px;}
  #top .card{gap:45px;padding-bottom:0;}
  #top .card__no{width:40px;height:40px;font-size:22.4px;color:var(--white);}
  #top .card__body{padding:0 30px 65px;gap:30px;}
  #top .card__head{gap:20px;}
  #top .card__en{font-size:35px;line-height:40px;}
  #top .card__jp{font-size:12px;line-height:1;}
  #top .card__text{font-size:14px;line-height:28px;}
  #top .card--value .card__body{gap:60px;}
  #top .card--value .card__intro{gap:30px;}
  #top .card__values{gap:45px;}
  #top .card__value dt{font-size:18px;line-height:25px;}
  #top .card__value dd{font-size:13px;line-height:25px;margin-top:25px;}
  #top .band{height:245px;}
  #top .service__list{gap:110px;}
  #top .service__item{flex-direction:column;align-items:flex-start;gap:38px;}
  #top .service__item:nth-child(-n+3){min-height:366px;}
  #top .service__item:nth-child(n+4){min-height:326px;}
  #top .service__icon{width:77px;height:77px;border-width:1.351px;border-radius:10.132px;}
  #top .service__icon img{width:46.824px;height:auto;}
  #top .service__text-block{gap:36px;width:100%;}
  #top .service__title{font-size:20px;line-height:40px;letter-spacing:1.4px;}
  #top .service__text{font-size:14px;line-height:30px;}
  #top .message__body,#top .message__blocks{gap:150px;}
  #top .message__letter{gap:65px;}
  #top .message__text,#top .message__sign{font-size:14px;line-height:30px;}
  #top .message__text p+p{margin-top:30px;}
  #top .profile{padding:65px 28px;gap:45px;align-items:stretch;}
  #top .profile__top{flex-direction:column;gap:45px;align-items:stretch;}
  #top .profile__role{font-size:12px;line-height:20px;}
  #top .profile__name{flex-direction:column;align-items:flex-start;gap:15px;margin-top:30px;}
  #top .profile__name-jp{font-size:25px;line-height:38px;}
  #top .profile__name-en{font-size:18px;line-height:36px;}
  #top .profile__bio{font-size:13px;line-height:25px;margin-top:45px;}
  #top .profile__photo{width:100%;height:280px;object-fit:contain;order:2;}
  #top .profile__meta{gap:30px;}
  #top .profile__meta > div:nth-child(1){order:3;}
  #top .profile__meta > div:nth-child(2){order:1;}
  #top .profile__meta > div:nth-child(3){order:2;}
  #top .profile__meta > div{grid-template-columns:minmax(0,1fr);gap:16px;}
  #top .profile__meta dt{font-size:11px;line-height:21px;font-weight:700;}
  #top .profile__meta dd{font-size:11px;line-height:20px;letter-spacing:0;font-feature-settings:"palt" 1;}
  #top .company{grid-template-columns:minmax(0,1fr);gap:60px;}
  #top .company__title{font-size:36px;line-height:47px;}
  #top .company__mark{width:51px;height:51px;margin-top:30px;}
  #top .company__table{gap:28px;}
  #top .company__table > div{grid-template-columns:68px minmax(0,1fr);}
  #top .company__table dt,#top .company__table dd{font-size:14px;line-height:28px;overflow-wrap:anywhere;}
  #top .contact__block{gap:130px;}
  #top .contact__lead{font-size:14px;line-height:30px;}
  #top .contact__actions{width:100%;gap:22px;}
  #top .btn{width:100%;height:40px;padding:0 20px;justify-content:center;gap:20px;}
  #top .contact__copy{display:none;}
  #top .contact__body{max-width:none;gap:0;}
  body:has(#top .hero) .footer-copy{display:flex;padding:0 20px 60px 112px;justify-content:flex-start;font-family:var(--font-en);line-height:8px;}
  body:has(#top .hero) .header__inner,body:has(#top .hero) .header.is-scrolled .header__inner{padding:30px 20px;}
  body:has(#top .hero) .header__logo,body:has(#top .hero) .header.is-scrolled .header__logo{width:53px;}
  body:has(#top .hero) .header__logo img{width:100%;height:auto;}
  body:has(#top .hero) .nav-toggle{width:35px;height:26px;gap:10px;align-self:flex-start;margin-top:10px;}
  body:has(#top .hero) .nav-toggle.is-open span:nth-child(1){transform:translateY(12px) rotate(45deg);}
  body:has(#top .hero) .nav-toggle.is-open span:nth-child(3){transform:translateY(-12px) rotate(-45deg);}
  #top .textlink{font-size:14px;gap:16px;height:12.816px;line-height:1;}
  #top .textlink__arrow{width:12.816px;height:12.816px;}
  #top :is(p,h2,h3,dt,dd,.sec-label__num,.profile__name-jp,.profile__name-en){text-box:trim-both cap alphabetic;}
  #top .profile__role{max-width:175px;}
  .meg-pc-label{display:none;}
  .meg-sp-label{display:inline;}
  #top .message__text > .meg-sp-label{display:block;text-box:trim-both cap alphabetic;}
  body:has(#top .hero) .gnav{align-items:flex-start;justify-content:flex-start;padding:202px 20px 80px 115px;overflow-y:auto;}
  body:has(#top .hero) .gnav__list{align-items:flex-start;gap:50px;}
  body:has(#top .hero) .gnav__list a{display:block;font-size:34px;line-height:40px;letter-spacing:1.7px;text-box:trim-both cap alphabetic;}
  br.br-pc{display:none;}
  body:has(#top .hero) .header.is-hidden{transform:none;opacity:1;visibility:visible;pointer-events:auto;}
  #top :is(.about__lead,.about__text,.card__text,.card__value dd,.service__title,.service__text,.message__text,.profile__bio,.contact__lead){font-feature-settings:"palt" 1;}
}
@media (min-width:768px){
  .meg-sp-label,.meg-sp-nav,br.meg-sp-break{display:none;}
}


/* Transparent header with foreground colors sampled from the page. */
.header,
.header.is-scrolled,
.header--solid,
.header--solid.is-scrolled{background:transparent;box-shadow:none;}
.header{--header-ink:var(--coral);}
.header:not(.header--solid){--header-ink:var(--white);}
.header .header__logo{position:relative;color:var(--header-ink);}
.header .header__logo img{opacity:0;}
.header .header__logo::after{
  content:"";position:absolute;inset:0;background:currentColor;
  -webkit-mask:url("assets/img/logo-mark.svg") center / contain no-repeat;
  mask:url("assets/img/logo-mark.svg") center / contain no-repeat;
}
.header .nav-toggle span{background:var(--header-ink);}
.header .gnav__list a{color:var(--header-ink);}
.header:has(.gnav.is-open) .header__logo{color:var(--white);}
.header .nav-toggle.is-open span{background:var(--white);}
.header .gnav.is-open .gnav__list a{color:var(--white);}

/* Keep secondary-page mobile headers at the same size before and after scrolling. */
@media (max-width:767px){
  .header--solid .header__inner,
  .header--solid.is-scrolled .header__inner{padding:30px 20px;transition:none;}
  .header--solid .header__logo,
  .header--solid.is-scrolled .header__logo{width:53px;transition:none;}
  .header--solid .header__logo img{width:100%;height:auto;}
  .header--solid .nav-toggle{width:35px;height:26px;gap:10px;align-self:flex-start;margin-top:10px;}
  .header--solid .nav-toggle.is-open span:nth-child(1){transform:translateY(12px) rotate(45deg);}
  .header--solid .nav-toggle.is-open span:nth-child(3){transform:translateY(-12px) rotate(-45deg);}
}

/* Clamped news titles need full line boxes so glyphs are not clipped. */
@media (max-width:767px){
  #top .news__title,
  #top .news__title a{text-box-trim:none;}
}

/* CONTACT (page 18): the outer page already provides mobile top spacing. */
@media (max-width:767px){
  body.page-id-18 main.page > .page__inner{padding:0 20px 100px;}
}

:root{--meg-wordmark:url("data:image/svg+xml,%3Csvg%20preserveAspectRatio%3D%22none%22%20overflow%3D%22visible%22%20style%3D%22display%3A%20block%3B%22%20width%3D%22504.99%22%20height%3D%22164.09%22%20viewBox%3D%220%200%20504.99%20164.09%22%20fill%3D%22none%22%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%3E%0A%3Cg%20id%3D%22_%26%23227%3B%26%23131%3B%26%23172%3B%26%23227%3B%26%23130%3B%26%23164%3B%26%23227%3B%26%23131%3B%26%23164%3B%26%23227%3B%26%23131%3B%26%23188%3B_1%22%20clip-path%3D%22url%28%23clip0_0_42%29%22%3E%0A%3Cpath%20id%3D%22Vector%22%20d%3D%22M324.197%2087.1922V76.8977H240.09V14.1636H324.197V3.93816H230.138V160.152H324.197V149.926H240.09V87.1922H324.197Z%22%20fill%3D%22white%22/%3E%0A%3Cpath%20id%3D%22Vector_2%22%20d%3D%22M11.887%20160.152L90.8111%2034.8216V160.152H98.4133L184.87%2031.2289V160.152H194.822V3.93816H191.159L100.763%20138.596V3.93816H98.4133L0%20160.152H11.887Z%22%20fill%3D%22white%22/%3E%0A%3Cpath%20id%3D%22Vector_3%22%20d%3D%22M425.237%2076.8977V87.1231H494.831C492.274%20124.363%20462.003%20153.795%20425.237%20153.795C388.47%20153.795%20355.435%20121.599%20355.435%2082.0104C355.435%2042.4216%20386.742%2010.2254%20425.237%2010.2254C449.771%2010.2254%20472.508%2023.8362%20485.017%2045.3234H496.489C483.013%2017.7563%20455.23%200%20425.237%200C381.282%200%20345.483%2036.8252%20345.483%2082.0795C345.483%20127.334%20381.282%20164.159%20425.237%20164.159C469.191%20164.159%20504.99%20127.334%20504.99%2082.0795V76.9668H425.306L425.237%2076.8977Z%22%20fill%3D%22white%22/%3E%0A%3C/g%3E%0A%3Cdefs%3E%0A%3CclipPath%20id%3D%22clip0_0_42%22%3E%0A%3Crect%20width%3D%22504.99%22%20height%3D%22164.09%22%20fill%3D%22white%22/%3E%0A%3C/clipPath%3E%0A%3C/defs%3E%0A%3C/svg%3E%0A");}

/* Design_fix feedback, September 2026. */
.hero__logo{height:164.09px;background:var(--meg-wordmark) center / contain no-repeat;}
.hero__logo img{width:100%;height:100%;opacity:0;}
.sec-label{position:sticky;top:130px;align-self:start;}
.sec-label.reveal{opacity:1;transform:none;transition:none;}
.btn:not(.btn_meg){position:relative;justify-content:center;padding:0 40px;}
.btn > .btn__arrow{position:absolute;right:20px;top:50%;transform:translateY(-50%) rotate(90deg);}
.btn--more > .btn__arrow{transform:translateY(-50%) rotate(180deg);}
.news-place{white-space:nowrap;}
.news__date{line-height:22px;}
.news__item{gap:10px;}
.company__mark{filter:brightness(0);}
.contact-privacy-link{display:flex;align-items:center;gap:20px;margin-top:25px;width:fit-content;font:500 14px/1.5 var(--font-en);color:var(--coral);}
.contact-privacy-link span{font-size:16px;}
.wpcf7-form dt{font-size:16px;font-weight:500;}
.wpcf7-submit{height:45px;font-size:16px;}
.wpcf7 .hidden-fields-container{display:none;}
.page-footer{max-width:var(--frame);margin:0 auto;justify-content:flex-start;padding-left:var(--pad-x);font-family:var(--font-en);color:var(--rule);}
.article__date{font-size:15px;line-height:22px;}
.article__body{gap:22px;}
.article__text{gap:18px;}
.article__title{font-size:18px;line-height:32px;}
.article__lead{font-size:16px;line-height:32px;}
.legal__blocks{display:block;font-size:14px;line-height:26px;letter-spacing:.06em;font-feature-settings:"palt" 1;}
.legal__blocks .inner{max-width:none;width:auto;padding:0;margin:0;}
.legal__blocks ol{list-style:decimal;padding-left:1.5em;}
.legal__blocks ul{list-style:disc;padding-left:1.5em;}
.legal__blocks ol ol{list-style:lower-alpha;}
.legal__blocks ol.paren_r{margin-top:26px;}
.legal__blocks ol.paren_r > li{margin-bottom:20px;}
.legal__blocks .txt{margin-top:0;}
.legal__blocks .txt > br{display:none;}
.legal__blocks .txt > a[target]{display:block;}
.legal__blocks p{font-size:inherit;line-height:inherit;}
@media(min-width:768px){
 .header__inner{align-items:flex-start;padding-right:120px;}
 .header:not(.is-scrolled) .gnav{padding-top:0;}
 .header .gnav__list a{display:block;line-height:14px;}
 .hero__logo{margin-top:301px;}
 .hero__en{margin-top:64px;line-height:42px;}
 .hero__jp{margin-top:20px;line-height:26px;}
 .about__cards{align-items:stretch;}
 .about__col > .card{flex:1;}
 .card--value .card__body{gap:80px;}
 .card__value dt{line-height:25px;}
 .card__value dd{margin-top:14px;}
 .service__text-block{gap:26px;}
 .service__title{line-height:30px;}
 .service__text{line-height:39px;}
 .about__lead,.about__text,.message__text{font-feature-settings:"palt" 1;text-align:left;}
 .profile{padding:80px 66px;}
 .profile__top{display:grid;max-width:660px;grid-template-columns:minmax(0,1fr) 148px;gap:40px;align-items:center;}
 .profile__info{display:contents;}
 .profile__role{grid-area:1 / 1;align-self:start;margin-top:33px;line-height:22px;}
 .profile__name{grid-area:1 / 1;align-self:end;margin:0 0 32px;display:flex;flex-direction:column;align-items:flex-start;gap:12px;}
 .profile__name-jp{font-size:28px;line-height:30px;}
 .profile__name-en{line-height:22px;}
 .profile__photo{grid-area:1 / 2;width:148px;height:190px;}
 .profile__bio{grid-area:2 / 1 / 3 / 3;margin:0;font-size:14px;line-height:28px;}
 .profile__meta > div:nth-child(1){order:3;}
 .profile__meta > div:nth-child(2){order:1;}
 .profile__meta > div:nth-child(3){order:2;}
 .company{grid-template-columns:308px minmax(0,1fr);}
 .company__table > div{grid-template-columns:102px minmax(0,1fr);}
 .company__table dd{white-space:nowrap;letter-spacing:0;}
 .contact__body{max-width:none;}
 .contact__lead{font-size:17px;line-height:39px;}
}
@media(min-width:768px) and (max-width:1100px){
 .header__inner{padding-right:50px;}
 .gnav__list{gap:16px;}
 .profile{padding:60px 30px;}
 .company{grid-template-columns:220px minmax(0,1fr);}
 .company__table dd{white-space:normal;}
}
@media(max-width:767px){
 body.page{padding-top:0;}
 main.page{padding-top:202px;}
 main.page > .page__inner,body.page-id-18 main.page > .page__inner{padding:0 20px 200px;grid-template-columns:52px minmax(0,1fr);column-gap:40px;}
 .page-footer{padding-left:20px;padding-bottom:60px;}
 #top .sec-label{top:115px;}
 #top .sec-label__num{font-size:42px;line-height:38.862px;}
 #top .sec-label__text{font-size:20px;line-height:19.597px;}
 #top .hero{height:100svh;min-height:540px;display:flex;justify-content:center;gap:0;}
 #top .hero__logo{flex:none;margin-top:0;width:290px;height:94px;}
 #top .hero__en{flex:none;margin-top:52px;line-height:38px;text-box-trim:none;}
 #top .hero__jp{flex:none;margin-top:28px;line-height:24px;text-box-trim:none;}
 #top .news__item{gap:14px;}
 #top .news__title{line-height:28px;}
 .news-place::before{content:"";display:block;}
 .news-place{display:block;white-space:normal;}
 #top .band{background-position:center center;}
 #top .btn{padding:0 40px;justify-content:center;}
 #top .btn > .btn__arrow{right:20px;}
 .gnav,body:has(#top .hero) .gnav{height:100dvh;padding:120px 20px 40px 29%;align-items:stretch;justify-content:center;overflow-y:auto;}
 .gnav__list,body:has(#top .hero) .gnav__list{height:auto;max-height:none;align-self:flex-start;justify-content:flex-start;align-items:flex-start;gap:40px;}
 .gnav__list a,body:has(#top .hero) .gnav__list a,.header--solid .gnav__list a{font-size:34px;line-height:34px;letter-spacing:.05em;text-box-trim:none;}
 .article__date{font-size:14px;line-height:22px;}
 .article__body{gap:22px;}
 .article__text{gap:20px;}
 .article__title{font-size:16px;line-height:32px;}
 .article__lead{font-size:14px;line-height:30px;}
 .article-list{gap:110px;}
 .news-more{margin-top:130px;}
 .btn--more{height:40px;}
 .wpcf7-form dt{font-size:13px;}
 .wpcf7-submit{height:40px;}
 .legal__blocks,.legal__blocks p{font-size:13px;line-height:24px;}
 .legal__blocks ol.paren_r > li{margin-bottom:15px;}
 .contact-privacy-link{font-size:13px;margin-top:22px;}
}
@media(max-width:767px) and (max-height:600px){
 .gnav,body:has(#top .hero) .gnav{padding-top:100px;padding-bottom:20px;}
}
/* Preserve icon geometry even before its image has loaded. */
.header__logo{height:80px;}
.header.is-scrolled .header__logo{height:52px;}
.header .header__logo img{height:100%;object-fit:contain;}
@media(min-width:768px){
 #top :is(p,h2,h3,dt,dd,.sec-label__num,.profile__name-jp,.profile__name-en),#top .news__date{text-box:trim-both cap alphabetic;}
 #top .news__item{gap:17px;}
 #top .card--value .card__body{gap:95px;}
 #top .card__value dt{line-height:40px;}
 #top .card__value dd{margin-top:26px;font-size:14px;line-height:28px;}
 #top .service__text-block{gap:41px;}
 #top .service__title{line-height:30px;}
 #top .message__text,#top .message__sign{font-size:17px;line-height:39px;}
 #top .message__text > .meg-pc-label{text-box:trim-both cap alphabetic;}
}
@media(min-width:768px) and (max-width:1023px){
 .section__inner{padding-left:40px;padding-right:40px;grid-template-columns:64px minmax(0,1fr);column-gap:40px;}
 .sec-label__num{font-size:54px;}
 .sec-label__text{font-size:28px;}
 .card__body{padding-left:24px;padding-right:24px;}
 .card__value dt{overflow-wrap:anywhere;}
 .company{grid-template-columns:minmax(0,1fr);gap:40px;}
 .header__inner{padding-left:30px;padding-right:30px;}
 .gnav__list{gap:12px;}
 .header .gnav__list a{font-size:12px;}
}
@media(max-width:767px){
 .header .header__logo,.header.is-scrolled .header__logo{height:53px;}
 .header .header__logo img{height:53px;}
 .wpcf7-form dl{margin-bottom:0;}
 .wpcf7-form{gap:0;}
}
.wpcf7-form input[type="hidden"]{display:none;}
@media(min-width:768px){.gnav__list .meg-sp-nav{display:list-item;}}
@media(max-width:767px){.wpcf7-text,.wpcf7-tel,.wpcf7-email{height:35px;padding:6px 12px;}}

/* Keep the CF7 loading indicator inside the button on small screens. */
@media(max-width:767px){
 .btn.btn_meg .wpcf7-spinner{left:auto;right:18px;}
 .wpcf7-form.submitting .btn.btn_meg::after{visibility:hidden;}
}

/* COMPANY PROFILE: match Figma row positions and typography. */
#top .company__table dt,#top .company__table dd{font-feature-settings:"palt" 1;letter-spacing:.06em;}
#top .company__table dd a{color:var(--ink);text-decoration:none;}
@media(min-width:768px){
 #top .company__table{gap:0;}
 #top .company__table > div{align-items:start;min-height:49.5px;}
 #top .company__table > div:last-child{min-height:0;}
}

/* Full-page Figma audit: proportional Japanese spacing and profile rows. */
@media(min-width:768px){
 #top :is(.card__text,.card__value dd,.service__title,.service__text,.profile__bio,.profile__meta dd){font-feature-settings:"palt" 1;}
 #top .service__text-block{min-width:0;flex:1;}
 #top .profile__meta{gap:18px;}
 #top .profile__meta dd{letter-spacing:0;}
 #top .profile__name{gap:20px;}
 #top .profile__meta dt,#top .profile__meta dd{line-height:22px;}
 #top .profile__meta dt{font-weight:700;}
}
@media(min-width:768px) and (max-width:1199px){
 #top .service__text .meg-pc-label br{display:none;}
}

/* Keep subpage headings alongside their content, matching TOP labels. */
.page__inner > .page__title{position:sticky;top:130px;align-self:start;}
@media(max-width:767px){
 .page__inner > .page__title{top:115px;}
}

/* Align subpage copyright with the horizontal content column. */
.page-footer{padding-left:calc(var(--pad-x) + 53px + 253px);}
@media(max-width:1240px){.page-footer{padding-left:calc(var(--pad-x) + 53px + 110px);}}
@media(max-width:1024px){.page-footer{padding-left:calc(var(--pad-x) + 44px + 64px);}}
@media(max-width:767px){.page-footer{padding-left:112px;}}

/* Readable paragraph rhythm without viewport-dependent manual line breaks. */
#top .service__text-block{gap:24px;}
#top .service__text,#top .message__text{line-height:2;text-align:left;overflow-wrap:break-word;}
#top .service__text p+p{margin-top:0;}
#top .message__text p+p{margin-top:1.5em;}

#top .service__text p,#top .message__text p{text-box-trim:none;text-wrap:pretty;}

/* Cookie banner: compact text for the consent UI. */
.cc-window.cc-banner { font-size: 14px; line-height: 1.75; }
.cc-window.cc-banner .cc-btn { font-size: 12px; line-height: 1.5; }
.cc-window.cc-banner .cc-message,
.cc-window.cc-banner .cc-link { font-size: inherit; }
.cc-revoke { font-size: 12px; }

/* Mobile consent: message above two equal-width actions. */
@media (max-width: 767px) {
  .cc-window.cc-banner { flex-direction: column; align-items: stretch; padding: 18px 20px; gap: 14px; }
  .cc-window.cc-banner .cc-message { flex: none; width: 100%; margin: 0; }
  .cc-window.cc-banner .cc-compliance { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); width: 100%; gap: 10px; padding-top: 14px; border-top: 1px solid #d9d9d9; }
  .cc-window.cc-banner .cc-compliance .cc-btn { display: flex; align-items: center; justify-content: center; width: 100%; min-width: 0; min-height: 44px; margin: 0; padding: 10px 6px; box-sizing: border-box; white-space: nowrap; letter-spacing: 0; text-align: center; }
}
