:root{
  --contact-navy:#15304a;
  --contact-accent:#58b9da;
  --contact-bg:#f2f6f8;
  --contact-line:#d7e3e8;
  --contact-muted:#6d818d;
}

.contact-page-main{
  padding-top:76px;
  overflow-x:clip;
  overflow-y:visible;
  background:var(--contact-bg);
}

.contact-page-hero{
  position:relative;
  display:flex;
  align-items:center;
  min-height:var(--contact-hero-height,460px);
  color:#fff;
  background-color:var(--contact-hero-bg,#15304a);
  background-image:var(--contact-hero-image,none);
  background-repeat:no-repeat;
  background-size:var(--contact-hero-size,cover);
  background-position:var(--contact-hero-position,center center);
  overflow:hidden;
  isolation:isolate;
}

.contact-page-hero.is-fixed{
  background-attachment:fixed;
  background-repeat:no-repeat;
  background-size:var(--contact-hero-size,cover);
  background-position:var(--contact-hero-position,center center);
}

/*
 * 共通ページ遷移の translateY が main に残ると、Chrome はその内側の
 * background-attachment:fixed を通常スクロールとして描画する。
 * お問い合わせページでは入場演出を opacity のみにし、背景固定を維持する。
 */
@keyframes contactPageFadeInFixedSafe{
  from{opacity:0}
  to{opacity:1}
}
html.global-page-ready body>main.contact-page-main{
  animation:contactPageFadeInFixedSafe .82s cubic-bezier(.22,.61,.36,1) both!important;
  transform:none!important;
}
.contact-page-hero::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:var(--contact-hero-overlay,rgba(16,44,67,.56));
}
.contact-page-hero::after{
  content:"";
  position:absolute;
  right:-170px;
  bottom:-310px;
  width:650px;
  height:650px;
  border:1px solid rgba(255,255,255,.21);
  border-radius:50%;
  box-shadow:0 0 0 90px rgba(255,255,255,.025);
}
.contact-page-hero-inner{
  position:relative;
  z-index:1;
  width:min(1180px,calc(100% - 56px));
  margin:auto;
  text-align:var(--contact-hero-align,left);
}
.contact-page-hero .eyebrow{
  margin:0 0 15px;
  color:var(--contact-hero-eyebrow-color,var(--contact-accent));
  font-size:var(--contact-hero-eyebrow-size-pc,12px);
  font-weight:900;
  letter-spacing:.32em;
}
.contact-page-hero h1{
  margin:0;
  color:var(--contact-title-color,#fff);
  font-size:var(--contact-title-pc,74px);
  line-height:1.08;
  letter-spacing:.04em;
}
.contact-page-hero p{
  margin:22px 0 0;
  color:var(--contact-subtitle-color,#d6e4ea);
  font-size:var(--contact-subtitle-size-pc,17px);
  line-height:1.9;
  letter-spacing:.06em;
}

.contact-form-section{
  position:relative;
  padding:112px 28px 130px;
  background:var(--contact-bg);
}
.contact-form-section.has-background-label::before{
  content:"CONTACT";
  position:absolute;
  top:24px;
  left:50%;
  transform:translateX(-50%);
  color:rgba(21,48,74,.035);
  font:700 clamp(90px,16vw,230px)/1 Georgia,serif;
  letter-spacing:.08em;
  white-space:nowrap;
  pointer-events:none;
}
.contact-form-heading{
  position:relative;
  width:min(1180px,100%);
  margin:0 auto 43px;
}
.contact-form-heading .eyebrow{
  color:var(--contact-form-eyebrow-color,var(--contact-accent));
  font-size:var(--contact-form-eyebrow-size-pc,11px);
  font-weight:900;
  letter-spacing:.28em;
}
.contact-side-card .eyebrow{
  position:relative;
  color:var(--contact-accent);
  font-size:11px;
  font-weight:900;
  letter-spacing:.28em;
}
.contact-form-heading h2{
  margin:11px 0 13px;
  color:var(--contact-form-title-color,var(--contact-navy));
  font-size:var(--contact-form-title-size-pc,58px);
  line-height:1.32;
}
.contact-form-heading>p{
  margin:0;
  color:var(--contact-form-description-color,var(--contact-muted));
  font-size:var(--contact-form-description-size-pc,16px);
  line-height:1.9;
}
.contact-notice{
  display:flex;
  align-items:flex-start;
  gap:12px;
  width:min(1180px,100%);
  margin:24px auto 0;
  padding:15px 18px;
  border:1px solid #b9dbe8;
  border-radius:12px;
  background:#eef9fd;
  color:var(--contact-form-notice-color,#315f73);
  font-size:var(--contact-form-notice-size-pc,13px);
  line-height:1.8;
}
.contact-notice::before{
  content:"!";
  display:grid;
  place-items:center;
  flex:0 0 23px;
  width:23px;
  height:23px;
  margin-top:1px;
  border-radius:50%;
  background:var(--contact-accent);
  color:#fff;
  font-size:12px;
  font-weight:900;
}

.contact-shell{
  position:relative;
  display:grid;
  grid-template-columns:minmax(260px,.72fr) minmax(0,1.7fr);
  gap:28px;
  width:min(1240px,100%);
  margin:0 auto;
  align-items:start;
}
.contact-side-card{
  position:relative;
  top:auto;
  min-height:430px;
  padding:42px 34px;
  border-radius:20px;
  color:#fff;
  background:
    radial-gradient(circle at 90% 5%,rgba(88,185,218,.35),transparent 36%),
    linear-gradient(145deg,var(--contact-navy),#0b2234);
  box-shadow:0 28px 70px rgba(13,40,59,.22);
  overflow:hidden;
}
.contact-side-card.is-sticky{
  position:sticky;
  top:calc(var(--contact-sticky-header-height,72px) + 18px);
}
.contact-side-card::before,
.contact-side-card::after{
  content:"";
  position:absolute;
  border:1px solid rgba(255,255,255,.15);
  border-radius:50%;
}
.contact-side-card::before{width:250px;height:250px;right:-150px;bottom:-90px}
.contact-side-card::after{width:100px;height:100px;right:-35px;bottom:-15px}
.contact-side-card h2{
  position:relative;
  margin:18px 0 22px;
  color:var(--contact-side-title-color,#fff);
  font-size:var(--contact-side-title-size-pc,49px);
  line-height:1.4;
}
.contact-side-card>p{
  position:relative;
  margin:0;
  color:var(--contact-side-text-color,#c8dae3);
  font-size:var(--contact-side-text-size-pc,16px);
  line-height:2;
}
.contact-side-notice-button{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  width:100%;
  min-height:48px;
  margin-top:26px;
  padding:10px 10px 10px 16px;
  border:1px solid rgba(255,255,255,.34);
  border-radius:9px;
  background:rgba(255,255,255,.07);
  color:#fff;
  font:inherit;
  font-size:12px;
  font-weight:900;
  letter-spacing:.05em;
  cursor:pointer;
  transition:.25s;
}
.contact-side-notice-button span{
  display:grid;
  place-items:center;
  flex:0 0 30px;
  width:30px;
  height:30px;
  border-radius:50%;
  background:var(--contact-accent);
  color:#0c2a3b;
  font-size:18px;
  transition:.25s;
}
.contact-side-notice-button:hover{
  border-color:#fff;
  background:#fff;
  color:var(--contact-navy);
  transform:translateY(-2px);
}
.contact-side-notice-button:hover span{transform:rotate(90deg)}
.contact-flow{
  position:relative;
  display:grid;
  gap:14px;
  margin-top:38px;
  padding-top:26px;
  border-top:1px solid rgba(255,255,255,.14);
}
.contact-flow span{
  display:flex;
  align-items:center;
  gap:12px;
  color:#e7f0f4;
  font-size:12px;
  font-weight:800;
}
.contact-flow b{
  display:grid;
  place-items:center;
  width:29px;
  height:29px;
  border:1px solid rgba(255,255,255,.35);
  border-radius:50%;
  color:var(--contact-accent);
  font:700 12px Georgia,serif;
}

body.contact-modal-open{overflow:hidden}
.contact-notice-modal{
  position:fixed;
  inset:0;
  z-index:3000;
  display:grid;
  place-items:center;
  padding:24px;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .25s,visibility .25s;
}
.contact-notice-modal.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.contact-notice-modal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(5,23,37,.78);
  backdrop-filter:blur(8px);
}
.contact-notice-modal-card{
  position:relative;
  z-index:1;
  display:flex;
  flex-direction:column;
  width:min(760px,100%);
  max-height:min(84vh,780px);
  border:1px solid rgba(255,255,255,.14);
  border-radius:20px;
  background:#fff;
  box-shadow:0 36px 100px rgba(2,18,29,.45);
  overflow:hidden;
  transform:translateY(24px) scale(.98);
  transition:transform .3s cubic-bezier(.22,.61,.36,1);
}
.contact-notice-modal.is-open .contact-notice-modal-card{transform:none}
.contact-notice-modal-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:25px;
  padding:28px 30px 24px;
  background:linear-gradient(135deg,var(--contact-navy),#0b2234);
  color:#fff;
}
.contact-notice-modal-head span{
  display:block;
  margin-bottom:7px;
  color:var(--contact-accent);
  font-size:10px;
  font-weight:900;
  letter-spacing:.28em;
}
.contact-notice-modal-head h2{margin:0;font-size:clamp(24px,4vw,38px);line-height:1.4}
.contact-notice-modal-close{
  display:grid;
  place-items:center;
  flex:0 0 42px;
  width:42px;
  height:42px;
  border:1px solid rgba(255,255,255,.35);
  border-radius:50%;
  background:rgba(255,255,255,.08);
  color:#fff;
  font-size:24px;
  cursor:pointer;
  transition:.2s;
}
.contact-notice-modal-close:hover{background:#fff;color:var(--contact-navy);transform:rotate(90deg)}
.contact-notice-modal-body{
  padding:30px;
  overflow:auto;
  color:#405661;
  font-size:14px;
  line-height:2;
}
.contact-privacy-modal-body{white-space:pre-line}
.contact-notice-modal-foot{
  padding:18px 30px 24px;
  border-top:1px solid var(--contact-line);
  background:#f6f9fa;
  text-align:right;
}
.contact-notice-modal-foot button{
  min-width:190px;
  min-height:48px;
  padding:10px 22px;
  border:0;
  border-radius:8px;
  background:var(--contact-navy);
  color:#fff;
  font:inherit;
  font-size:13px;
  font-weight:900;
  cursor:pointer;
}

.contact-form-card{
  border:1px solid var(--contact-line);
  border-radius:20px;
  background:#fff;
  box-shadow:0 24px 65px rgba(21,48,74,.1);
  overflow:hidden;
}
.contact-error-summary{
  margin:28px 30px 0;
  padding:16px 18px;
  border:1px solid #e7bcbc;
  border-radius:11px;
  background:#fff3f3;
  color:#a53535;
  font-size:13px;
  line-height:1.8;
}
.contact-fields{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0 24px;
  padding:10px 30px 34px;
}
.contact-field{
  min-width:0;
  padding:23px 0;
  border-bottom:1px solid #e4ebee;
}
.contact-field.is-full{grid-column:1/-1}
.contact-field-label{
  display:flex;
  align-items:center;
  gap:9px;
  margin-bottom:10px;
  color:var(--contact-navy);
  font-size:13px;
  font-weight:900;
}
.contact-required,
.contact-optional{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:38px;
  padding:3px 7px;
  border-radius:999px;
  font-size:9px;
  font-weight:900;
  letter-spacing:.08em;
}
.contact-required{background:#d95c5c;color:#fff}
.contact-optional{background:#eaf0f3;color:#6d818d}
.contact-field input[type=text],
.contact-field input[type=email],
.contact-field input[type=tel],
.contact-field input[type=url],
.contact-field input[type=date],
.contact-field select,
.contact-field textarea{
  width:100%;
  min-height:53px;
  border:1px solid #cbd9df;
  border-radius:10px;
  outline:none;
  background:#fbfcfd;
  color:#253b47;
  font:inherit;
  font-size:16px;
  transition:border-color .2s,box-shadow .2s,background .2s;
}
.contact-field input[type=text],
.contact-field input[type=email],
.contact-field input[type=tel],
.contact-field input[type=url],
.contact-field input[type=date],
.contact-field select{padding:0 15px}
.contact-field textarea{
  min-height:170px;
  padding:15px;
  line-height:1.8;
  resize:vertical;
}
.contact-field input:focus,
.contact-field select:focus,
.contact-field textarea:focus{
  border-color:var(--contact-accent);
  background:#fff;
  box-shadow:0 0 0 4px rgba(88,185,218,.14);
}
.contact-field.has-error input,
.contact-field.has-error select,
.contact-field.has-error textarea,
.contact-field.has-error .contact-choice{
  border-color:#d96161;
}
.contact-field-help{
  margin:8px 0 0;
  color:#81919a;
  font-size:11px;
  line-height:1.7;
}
.contact-field-error{
  margin:8px 0 0;
  color:#c53f3f;
  font-size:12px;
  font-weight:800;
}
.contact-char-count{
  margin:7px 0 0;
  color:#8a9aa3;
  font-size:10px;
  text-align:right;
}

.contact-form-section-title{
  grid-column:1/-1;
  margin:22px -30px 0;
  padding:34px 30px 18px;
  border-bottom:1px solid #dbe6eb;
  background:linear-gradient(90deg,#eef6f9,#fff);
}
.contact-form-section-title:first-child{margin-top:-10px}
.contact-form-section-title span{
  display:block;
  margin-bottom:7px;
  color:var(--contact-accent);
  font:700 11px Georgia,serif;
  letter-spacing:.2em;
}
.contact-form-section-title h3{
  margin:0;
  color:var(--contact-navy);
  font-size:25px;
}
.contact-form-section-title p{
  margin:7px 0 0;
  color:var(--contact-muted);
  font-size:12px;
  line-height:1.7;
}

.contact-choice-grid{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
}
.contact-agreement-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(220px,40%);
  align-items:center;
  gap:20px;
}
.contact-agreement-row .contact-choice-grid{min-width:0}
.contact-privacy-link{
  justify-self:start;
  padding:8px 1px 7px;
  border:0;
  border-bottom:2px solid var(--contact-accent);
  background:transparent;
  color:var(--contact-navy);
  font:inherit;
  font-size:12px;
  font-weight:900;
  letter-spacing:.04em;
  cursor:pointer;
  transition:color .2s,border-color .2s;
}
.contact-privacy-link:hover,
.contact-privacy-link:focus-visible{
  border-color:var(--contact-navy);
  color:#247a9b;
  outline:none;
}
.contact-choice{
  position:relative;
  display:inline-flex;
  align-items:center;
  min-height:43px;
  padding:9px 14px;
  border:1px solid #ccdae0;
  border-radius:9px;
  background:#fff;
  color:#4a616d;
  font-size:12px;
  font-weight:800;
  cursor:pointer;
  transition:.2s;
}
.contact-choice:hover{border-color:var(--contact-accent);transform:translateY(-1px)}
.contact-choice input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.contact-choice:has(input:checked){
  border-color:var(--contact-navy);
  background:var(--contact-navy);
  color:#fff;
  box-shadow:0 8px 18px rgba(21,48,74,.16);
}

.contact-security{
  margin:0 30px 32px;
  padding:24px;
  border:1px solid #d3e0e6;
  border-radius:14px;
  background:#f7fafb;
}
.contact-security-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  margin-bottom:16px;
}
.contact-security-head strong{
  display:block;
  color:var(--contact-navy);
  font-size:14px;
}
.contact-security-head span{
  display:block;
  margin-top:5px;
  color:#718590;
  font-size:11px;
  line-height:1.6;
}
.contact-security-target{
  padding:7px 11px;
  border-radius:999px;
  background:#e5f5fb;
  color:#247a9b;
  font-size:12px;
  font-weight:900;
  white-space:nowrap;
}
.contact-challenge-choices{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:9px;
}
.contact-challenge-choice{
  position:relative;
  display:grid;
  place-items:center;
  gap:6px;
  min-height:72px;
  padding:10px 8px;
  border:1px solid #cbd9df;
  border-radius:11px;
  background:#fff;
  color:var(--contact-navy);
  cursor:pointer;
  transition:.2s;
}
.contact-challenge-choice:hover{border-color:var(--contact-accent);transform:translateY(-2px)}
.contact-challenge-choice input{position:absolute;opacity:0}
.contact-challenge-icon{
  display:grid;
  place-items:center;
  width:var(--contact-challenge-icon-size-pc,44px);
  height:var(--contact-challenge-icon-size-pc,44px);
}
.contact-challenge-icon img{display:block;width:100%;height:100%;object-fit:contain}
.contact-challenge-icon b{font-size:calc(var(--contact-challenge-icon-size-pc,44px) * .58);line-height:1}
.contact-challenge-choice small{font-size:10px}
.contact-challenge-choice:has(input:checked){
  border-color:var(--contact-accent);
  background:#eaf8fd;
  box-shadow:0 0 0 3px rgba(88,185,218,.12);
}

.contact-submit-area{
  padding:30px;
  background:#eef4f6;
  text-align:center;
}
.contact-submit{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:min(420px,100%);
  min-height:64px;
  padding:16px 68px 16px 28px;
  border:0;
  border-radius:8px;
  background:var(--contact-navy);
  color:#fff;
  font:inherit;
  font-size:15px;
  font-weight:900;
  letter-spacing:.08em;
  cursor:pointer;
  transition:transform .25s,background .25s,box-shadow .25s;
}
.contact-submit::after{
  content:"→";
  position:absolute;
  right:13px;
  top:50%;
  display:grid;
  place-items:center;
  width:39px;
  height:39px;
  border-radius:50%;
  background:rgba(255,255,255,.13);
  transform:translateY(-50%);
  transition:transform .25s,background .25s;
}
.contact-submit:hover{
  background:#0d263a;
  transform:translateY(-3px);
  box-shadow:0 17px 34px rgba(21,48,74,.24);
}
.contact-submit:hover::after{transform:translateY(-50%) translateX(3px);background:var(--contact-accent)}
.contact-submit-note{
  margin:12px 0 0;
  color:#748791;
  font-size:10px;
}
.contact-honeypot{
  position:absolute!important;
  left:-10000px!important;
  width:1px!important;
  height:1px!important;
  overflow:hidden!important;
}

.contact-disabled{
  width:min(900px,calc(100% - 40px));
  margin:90px auto;
  padding:60px;
  border:1px solid var(--contact-line);
  border-radius:18px;
  background:#fff;
  text-align:center;
}

.contact-thanks-main{
  min-height:100vh;
  padding-top:76px;
  background:#f2f6f8;
}
.contact-thanks-hero{
  position:relative;
  display:grid;
  place-items:center;
  min-height:680px;
  padding:90px 28px;
  color:#fff;
  text-align:center;
  background-color:var(--thanks-bg,#15304a);
  background-image:var(--thanks-image,none);
  background-size:cover;
  background-position:center;
  isolation:isolate;
  overflow:hidden;
}
.contact-thanks-hero::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:var(--thanks-overlay,rgba(16,44,67,.4));
}
.contact-thanks-hero::after{
  content:"";
  position:absolute;
  width:550px;
  height:550px;
  border:1px solid rgba(255,255,255,.17);
  border-radius:50%;
  box-shadow:0 0 0 100px rgba(255,255,255,.025);
}
.contact-thanks-inner{position:relative;z-index:1;width:min(820px,100%)}
.contact-thanks-check{
  display:grid;
  place-items:center;
  width:82px;
  height:82px;
  margin:0 auto 28px;
  border:1px solid rgba(255,255,255,.45);
  border-radius:50%;
  background:rgba(255,255,255,.1);
  font-size:35px;
  backdrop-filter:blur(6px);
}
.contact-thanks-inner .eyebrow{color:var(--contact-accent)}
.contact-thanks-inner h1{
  margin:14px 0 22px;
  font-size:clamp(40px,6vw,74px);
  line-height:1.32;
}
.contact-thanks-inner p{
  margin:0;
  color:#d5e2e8;
  font-size:16px;
  line-height:2;
}
.contact-thanks-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:260px;
  margin-top:38px;
  padding:17px 26px;
  border:1px solid rgba(255,255,255,.7);
  color:#fff;
  text-decoration:none;
  font-weight:900;
  transition:.25s;
}
.contact-thanks-button:hover{background:#fff;color:var(--contact-navy)}
.contact-reference{
  margin-top:20px;
  color:#a9c0cc;
  font-size:10px;
  letter-spacing:.08em;
}

@media(max-width:960px){
  .contact-shell{grid-template-columns:1fr}
  .contact-side-card,.contact-side-card.is-sticky{position:relative;top:auto;min-height:0}
  .contact-flow{grid-template-columns:repeat(3,1fr)}
  .contact-form-section{padding-left:20px;padding-right:20px}
}

@media(max-width:760px){
  .contact-page-main,.contact-thanks-main{padding-top:68px}
  .contact-page-hero{min-height:min(var(--contact-hero-height,460px),560px);background-attachment:scroll!important}
  .contact-page-hero-inner{width:calc(100% - 40px)}
  .contact-page-hero h1{font-size:var(--contact-title-mobile,44px)}
  .contact-page-hero .eyebrow{font-size:var(--contact-hero-eyebrow-size-mobile,11px)}
  .contact-form-heading .eyebrow{font-size:var(--contact-form-eyebrow-size-mobile,10px)}
  .contact-page-hero p{font-size:var(--contact-subtitle-size-mobile,14px)}
  .contact-form-heading h2{font-size:var(--contact-form-title-size-mobile,34px)}
  .contact-form-heading>p{font-size:var(--contact-form-description-size-mobile,15px)}
  .contact-notice{font-size:var(--contact-form-notice-size-mobile,12px)}
  .contact-side-card h2{font-size:var(--contact-side-title-size-mobile,36px)}
  .contact-side-card>p{font-size:var(--contact-side-text-size-mobile,15px)}
  .contact-form-section{padding-top:78px;padding-bottom:92px}
  .contact-fields{grid-template-columns:1fr;padding-left:20px;padding-right:20px}
  .contact-field.is-full{grid-column:auto}
  .contact-form-section-title{grid-column:auto;margin-left:-20px;margin-right:-20px;padding-left:20px;padding-right:20px}
  .contact-error-summary{margin-left:20px;margin-right:20px}
  .contact-security{margin-left:20px;margin-right:20px;padding:18px}
  .contact-security-head{display:block}
  .contact-security-target{display:inline-flex;margin-top:12px;white-space:normal}
  .contact-challenge-icon{width:var(--contact-challenge-icon-size-mobile,40px);height:var(--contact-challenge-icon-size-mobile,40px)}
  .contact-challenge-icon b{font-size:calc(var(--contact-challenge-icon-size-mobile,40px) * .58)}
  .contact-agreement-row{grid-template-columns:1fr;gap:12px}
  .contact-submit-area{padding:24px 20px}
}

@media(max-width:540px){
  .contact-form-section{padding-left:12px;padding-right:12px}
  .contact-side-card{padding:34px 24px}
  .contact-flow{grid-template-columns:1fr}
  .contact-choice{width:100%}
  .contact-challenge-choices{gap:6px}
  .contact-challenge-choice{min-height:66px}
  .contact-submit{padding-left:18px;padding-right:58px;font-size:13px}
  .contact-notice-modal{padding:12px}
  .contact-notice-modal-head{padding:22px 20px 19px}
  .contact-notice-modal-body{padding:22px 20px}
  .contact-notice-modal-foot{padding:15px 20px 20px}
  .contact-notice-modal-foot button{width:100%}
  .contact-thanks-hero{min-height:620px;padding-left:20px;padding-right:20px}
}


/* =========================================================
 * 2026-08-05 お問い合わせ モバイルスクロール安定化
 * ========================================================= */
@media(max-width:760px){
 .contact-page-main{
  min-height:0!important;
  height:auto!important;
  max-height:none!important;
  overflow-x:hidden!important;
  overflow-y:visible!important;
  -webkit-overflow-scrolling:touch
 }
 .contact-page-hero{
  width:100%!important;
  min-height:clamp(240px,66vw,300px)!important;
  height:clamp(240px,66vw,300px)!important;
  max-height:300px!important;
  background-attachment:scroll!important
 }
 .contact-page-hero-inner{width:calc(100% - 36px)!important}
 .contact-page-hero h1{
  font-size:clamp(34px,10vw,46px)!important;
  line-height:1.18!important;
  overflow-wrap:anywhere!important
 }
 .contact-page-hero p{margin-top:12px!important;line-height:1.7!important}
 .contact-form-section{
  min-height:0!important;
  height:auto!important;
  overflow:visible!important;
  padding-top:58px!important;
  padding-bottom:92px!important
 }
 .contact-shell,.contact-form-card,.contact-fields{
  min-height:0!important;
  height:auto!important;
  max-height:none!important
 }
 .contact-notice-modal-card{
  max-height:calc(100dvh - 24px)!important
 }
 .contact-notice-modal-body{
  min-height:0!important;
  overflow-y:auto!important;
  -webkit-overflow-scrolling:touch
 }
}


/* 2026-08-05 お問い合わせ iPhoneスクロール最終修正 */
@media(max-width:760px){
 .contact-page-main,
 .contact-page-main section,
 .contact-form-section,
 .contact-shell,
 .contact-form-card,
 .contact-fields,
 #contactForm{
  position:relative!important;
  min-height:0!important;
  height:auto!important;
  max-height:none!important;
  overflow:visible!important;
  touch-action:auto!important;
  -webkit-overflow-scrolling:auto!important
 }
 .contact-page-hero,
 .contact-page-hero-inner,
 .contact-form-heading,
 .contact-notice,
 .contact-side-card,
 .contact-field,
 .contact-choice-grid,
 .contact-security,
 .contact-submit-area{
  touch-action:auto!important
 }
 body:not(.contact-modal-open) .contact-notice-modal{
  pointer-events:none!important
 }
 body.contact-modal-open{
  overflow:hidden!important
 }
}
