.contact-form-section{max-width:980px;margin:auto;padding:24px 5% 20px;color:#111}
.contact-form-section h2{font-size:25px;letter-spacing:1px;margin:0 0 20px;display:flex;align-items:center;gap:12px}
.contact-form-section h2>span{color:#ff0080;font-size:36px;font-weight:400;line-height:1}
.inquiry-row{display:grid;grid-template-columns:28% minmax(0,1fr);column-gap:22px;align-items:center;margin-bottom:14px}
.inquiry-row>label,.inquiry-label{font-size:19px;font-weight:700;line-height:1.6}
.inquiry-row i{display:inline-block;vertical-align:middle;margin-left:8px;background:#ff0080;color:white;padding:0 4px;line-height:1.4;font-size:14px;font-style:normal;white-space:nowrap}
.inquiry-row i.optional{background:#888}
.inquiry-row input:not([type=checkbox]):not([type=file]),.inquiry-row select,.inquiry-row textarea{width:100%;min-width:0;border:1px solid #777;border-radius:0;background:#fff;color:#111;font:400 16px "Noto Sans JP",sans-serif;padding:14px;height:54px;box-shadow:inset 0 0 2px #ddd}
.inquiry-row input::placeholder,.inquiry-row textarea::placeholder{color:#777;opacity:1}
.inquiry-row textarea{height:108px;resize:vertical;line-height:1.7}
.inquiry-message,.inquiry-types{align-items:start}
.inquiry-message>label,.inquiry-types>.inquiry-label{padding-top:9px}
.inquiry-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.inquiry-options label{position:relative;min-width:0;cursor:pointer}
.inquiry-options input{position:absolute;width:1px;height:1px;opacity:0}
.inquiry-options span{display:flex;align-items:center;justify-content:center;min-height:44px;padding:8px 3px;border:1px solid #777;font-size:14px;font-weight:700;text-align:center}
.inquiry-options input:checked+span{background:#fff7bd;border:2px solid #111;padding:7px 2px}
.inquiry-options input:focus-visible+span{outline:3px solid #ec007a;outline-offset:2px}
.inquiry-undecided{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:28px}
.inquiry-undecided>label{display:flex;gap:10px;align-items:center;white-space:nowrap;font-size:18px;font-weight:400}
.contact-form-section input[type=checkbox]{width:25px;height:25px;margin:0;accent-color:#111;flex-shrink:0}
.inquiry-options input[type=checkbox]{width:1px;height:1px}
.inquiry-select{position:relative}
.inquiry-select select{appearance:none;padding-right:42px;font-weight:700}
.inquiry-select::after{content:"";position:absolute;right:16px;top:18px;width:14px;height:14px;border-right:2px solid;border-bottom:2px solid;transform:rotate(45deg);pointer-events:none}
.inquiry-row input:not([type=checkbox]):not([type=file]):disabled,.inquiry-row select:disabled{background:#f2f2f2;color:#888;opacity:1;-webkit-text-fill-color:#888;cursor:not-allowed}
.inquiry-upload{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:20px}
.upload-control{position:relative;height:50px}
.upload-control input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;z-index:1}
.upload-control>span{height:100%;border:1px solid #777;display:flex;align-items:center;justify-content:center;gap:14px;font-size:16px}
.upload-control svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.5}
.upload-control:focus-within{outline:3px solid #ec007a;outline-offset:2px}
.inquiry-upload small{font-size:13px;font-weight:400;white-space:nowrap}
#file-name{grid-column:1/-1;font-size:13px;overflow-wrap:anywhere}
#file-name:empty{display:none}
.inquiry-consent{margin:20px 0 24px calc(28% + 16px);display:flex;gap:12px;align-items:center;font-size:18px}
.inquiry-consent a{text-decoration:underline;text-underline-offset:4px}
.inquiry-submit{display:block;position:relative;width:75%;margin:0 auto;min-height:76px;padding:15px 62px;background:#050505;color:white;border:1px solid #333;font:700 28px "Noto Sans JP",sans-serif;cursor:pointer;box-shadow:0 -4px 0 #f0f0f0}
.inquiry-submit>span{position:absolute;right:35px;top:50%;transform:translateY(-50%);font:400 48px Arial;color:#ffe700}
#inquiry-status{font-size:14px;line-height:1.8;text-align:center}
.contact-benefits{background:#050505;color:white;padding:20px 0}
.contact-benefits>div{max-width:980px;margin:auto;display:grid;grid-template-columns:1fr 1fr 1.2fr}
.contact-benefits p{display:flex;align-items:center;justify-content:center;gap:13px;margin:0;padding:0 14px;font-size:16px;white-space:nowrap}
.contact-benefits p+p{border-left:1px solid white}
.benefit-icon{width:60px;height:60px;flex-shrink:0;border:2px solid #ffe700;border-radius:50%;color:#ffe700;display:grid;place-items:center}
.benefit-icon.yen{font:36px "Bebas Neue",sans-serif}
.benefit-icon svg{width:32px;height:32px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.contact-process{max-width:980px;margin:auto;padding:20px 5% 30px;text-align:center}
.contact-process h2{display:table;position:relative;margin:0 auto 26px;font-size:24px;letter-spacing:0;isolation:isolate}
.contact-process h2::after{content:"";position:absolute;left:-10px;right:-10px;bottom:-5px;height:10px;background:#ffe700;z-index:-1;clip-path:polygon(0 25%,100% 0,96% 55%,3% 100%)}
.contact-process ol{padding:0;margin:0;list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px}
.contact-process li{position:relative}
.contact-process li+li::before{content:"";position:absolute;left:-25px;top:48px;width:13px;height:13px;border-top:1.5px solid;border-right:1.5px solid;transform:rotate(45deg)}
.contact-process h3{display:flex;align-items:center;position:relative;margin:0;font-size:18px;min-height:42px}
.contact-process h3 b{display:grid;place-items:center;flex-shrink:0;width:43px;height:43px;border:1.5px solid #111;border-radius:50%;background:#ffe700;font:32px "Bebas Neue",sans-serif;z-index:1}
.contact-process h3 span{flex:1;background:#050505;color:white;padding:5px 6px;margin-left:-6px;clip-path:polygon(0 0,100% 3%,97% 15%,100% 22%,96% 33%,99% 47%,97% 62%,100% 80%,96% 92%,100% 100%,0 100%)}
.contact-process li p{font-size:14px;line-height:1.8;margin:12px 0 0}
@media(max-width:700px){
.contact-form-section{padding:24px 20px}.contact-form-section h2{font-size:22px}
.inquiry-row{grid-template-columns:1fr;gap:8px;margin-bottom:18px}
.inquiry-row>label,.inquiry-label{font-size:16px}
.inquiry-options{gap:7px}.inquiry-options span{font-size:12px}
.inquiry-undecided{gap:14px}.inquiry-undecided>label{font-size:16px}
.inquiry-message>label,.inquiry-types>.inquiry-label{padding-top:0}
.inquiry-upload{gap:12px}.inquiry-upload small{font-size:11px}
.inquiry-consent{margin:22px 0;font-size:14px;gap:9px}
.inquiry-submit{width:100%;font-size:22px;padding:15px 45px;min-height:66px}
.inquiry-submit>span{right:18px;font-size:36px}
.contact-benefits>div{grid-template-columns:1fr;gap:14px;padding:0 24px}
.contact-benefits p{justify-content:flex-start;padding:0;font-size:16px}
.contact-benefits p+p{border-left:0;border-top:1px solid #555;padding-top:14px}
.benefit-icon{width:48px;height:48px}
.contact-process{padding:25px 24px 32px}
.contact-process ol{grid-template-columns:1fr;gap:34px;max-width:320px;margin:auto}
.contact-process li+li::before{left:50%;top:-25px;transform:translateX(-50%) rotate(135deg)}
}/* Shared Japanese typography for the inquiry content. */
.contact-form-section,.contact-benefits,.contact-process{font-family:"Noto Sans JP",Meiryo,"メイリオ",sans-serif;font-size:16px}
.contact-form-section h2,.inquiry-row>label,.inquiry-label,.inquiry-row i,.inquiry-row input:not([type=checkbox]):not([type=file]),.inquiry-row select,.inquiry-row textarea,.inquiry-options span,.inquiry-undecided>label,.upload-control>span,.inquiry-upload small,#file-name,.inquiry-consent,.inquiry-submit,#inquiry-status,.contact-benefits p,.contact-process h2,.contact-process h3,.contact-process h3 span,.contact-process li p{font-family:"Noto Sans JP",Meiryo,"メイリオ",sans-serif;font-size:16px}

.inquiry-row i:not(.optional){font-size:14px}

.inquiry-submit:disabled{background:#aaa;border-color:#aaa;color:#eee;cursor:not-allowed;box-shadow:none}.inquiry-submit:disabled>span{color:#ddd}

.inquiry-row i.optional{font-size:14px}

.inquiry-row>label[for=organization]{display:flex;align-items:center;align-self:center}

.inquiry-row>label,.inquiry-row>.inquiry-label{display:flex;align-items:center;align-self:center}.inquiry-message>label,.inquiry-types>.inquiry-label{padding-top:0}

.inquiry-consent,.inquiry-submit{margin-top:60px;margin-bottom:60px}

.inquiry-row input:not([type=checkbox]):not([type=file]).is-invalid:required:invalid:not(:disabled),
.inquiry-row select.is-invalid:required:invalid:not(:disabled),
.inquiry-row textarea.is-invalid:required:invalid:not(:disabled){border-color:#d93025}
.inquiry-options:has(input.is-invalid:invalid) span{border-color:#d93025}

.inquiry-row input:not([type=checkbox]):not([type=file]):not(.is-invalid):not(:disabled),.inquiry-row select:not(.is-invalid):not(:disabled),.inquiry-row textarea:not(.is-invalid):not(:disabled){border-color:#111}

.contact-confirmation{max-width:980px;margin:auto;padding:32px 5% 60px;font-family:"Noto Sans JP",Meiryo,sans-serif;font-size:16px;scroll-margin-top:90px}
.contact-confirmation[hidden],.contact-form-section[hidden]{display:none}
.contact-form-section{scroll-margin-top:90px}
.contact-confirmation h2{font-size:24px;letter-spacing:0;margin-bottom:18px}
.contact-confirmation>p{line-height:1.8}
#confirmation-values{display:grid;grid-template-columns:28% minmax(0,1fr);margin:28px 0 40px}
#confirmation-values dt,#confirmation-values dd{margin:0;padding:18px 12px;border-bottom:1px solid #ccc;overflow-wrap:anywhere;white-space:pre-wrap}
#confirmation-values dt{font-weight:700}
#confirmation-values dd{font-weight:400}
.confirmation-actions{display:flex;justify-content:center;gap:20px}
.confirmation-actions button{font:inherit;font-weight:700;padding:20px 26px;border:1px solid #111;cursor:pointer;background:white;color:#111}
#confirmation-send{background:#050505;color:white}
#confirmation-send span{color:#ffe700;margin-left:20px}
#confirmation-status{padding:16px;border:1px solid #ccc}
@media(max-width:700px){.contact-confirmation{padding:24px 20px 40px}#confirmation-values{grid-template-columns:1fr}#confirmation-values dt{border-bottom:0;padding-bottom:0}#confirmation-values dd{padding-top:8px}.confirmation-actions{flex-direction:column}}

.contact-form-section h2{font-size:24px;font-weight:700}

.contact-form-section h2{margin-top:30px;margin-bottom:30px}

#reference-file-error{grid-column:1/-1;color:#d93025;font-size:14px;margin:0;line-height:1.6}.upload-control:has(input[aria-invalid=true])>span{border-color:#d93025}

.attachment-list{grid-column:1/-1;list-style:none;padding:0;margin:0;display:grid;gap:10px}
.attachment-list:empty{display:none}
.attachment-list li{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px;border:1px solid #ccc}
.attachment-list img{width:72px;height:64px;object-fit:contain;background:#f5f5f5}
.attachment-list li>span:first-of-type{flex:1;min-width:100px;overflow-wrap:anywhere;font-size:14px}
.attachment-list a{font-size:14px;text-decoration:underline}
.attachment-list button{font:inherit;font-size:14px;padding:6px 12px;border:1px solid #777;background:#fff;color:#111;cursor:pointer}
.attachment-list .attachment-error{color:#d93025;font-size:14px}

.attachment-preview{width:min(960px,94vw);max-width:94vw;height:85vh;max-height:90dvh;padding:24px;border:0;background:#fff;color:#111;box-sizing:border-box}
.attachment-preview[open]{display:flex;flex-direction:column;gap:16px}
.attachment-preview::backdrop{background:rgba(0,0,0,.7)}
.attachment-preview h2{font:700 16px "Noto Sans JP",sans-serif;letter-spacing:0;margin:0;padding-right:100px;overflow-wrap:anywhere}
.attachment-preview>button{position:absolute;right:20px;top:18px;padding:8px 12px;background:#111;color:#fff;border:0;font:inherit;font-size:14px;cursor:pointer}
.attachment-preview-content{flex:1;min-height:0;overflow:auto;display:flex;justify-content:center;align-items:center;background:#f3f3f3}
.attachment-preview-content img{display:block;max-width:100%;max-height:100%;object-fit:contain}
.attachment-preview-content iframe{width:100%;height:100%;border:0;background:#fff}
@media(max-width:700px){.attachment-preview{padding:18px 12px}.attachment-preview>button{right:12px;top:12px}}

.inquiry-options{grid-auto-rows:1fr}
.inquiry-options label{display:flex;align-items:stretch}
.inquiry-options label>span{width:100%;height:100%;box-sizing:border-box}
@media(max-width:700px){.inquiry-options label>span{min-height:64px;line-height:1.5}}

/* Keep native iOS date fields inside their grid track. */
.inquiry-undecided,.inquiry-undecided>*,.inquiry-upload,.upload-control{min-width:0;max-width:100%}
.inquiry-undecided{grid-template-columns:minmax(0,1fr) max-content}
.inquiry-row input[type=date]{display:block;box-sizing:border-box;width:100%;min-width:0;max-width:100%;height:54px;min-height:54px;-webkit-appearance:none;appearance:none;overflow:hidden}
.inquiry-row input[type=date]::-webkit-date-and-time-value{min-width:0;text-align:left}
.inquiry-row input[type=date]::-webkit-datetime-edit{min-width:0;padding:0}
.inquiry-undecided>label{justify-self:end}
/* Long attachment guidance must not collapse the file selection button. */
.inquiry-upload{grid-template-columns:minmax(0,1fr);gap:10px}
.upload-control{width:100%;height:50px}
.upload-control>span{white-space:nowrap;padding:0 12px}
.upload-control svg{flex:0 0 25px}
.inquiry-upload small{display:block;white-space:normal;overflow-wrap:anywhere;line-height:1.7;font-size:13px}
@media(max-width:700px){
  .inquiry-undecided{column-gap:12px}
  .inquiry-undecided>label{gap:8px}
}
