/* CONTACT input / confirm / success. Scoped to the new three-step pages. */
.contact-page{--contact-error-color:#de3412}
.contact-page .contact-page-head.np-head{padding:190px 0 0}
.contact-page-head .np-head-inner{position:relative;left:13px}
.contact-page-grid{width:83.333333%;max-width:1600px;margin-inline:auto;padding:100px 0 200px;display:grid;grid-template-columns:minmax(0,450fr) minmax(0,650fr);gap:8.333333%}
.contact-information{display:flex;flex-direction:column;gap:80px;min-width:0}
.contact-information__intro{border-top:1px solid #e6e8ea;padding-top:31px;font-size:16px;line-height:1.8}
.contact-information__phone h2{font-size:24px;font-weight:700;line-height:1.4;padding-bottom:15px;border-bottom:1px solid #e6e8ea;margin-bottom:16px}
.contact-information__number{display:flex;align-items:center;gap:8px;white-space:nowrap;line-height:1.4}
.contact-information__number>span{font-size:16px;color:#464c53}
.contact-information__number strong{font-size:40px;color:#39506c;font-weight:700}
.contact-information__hours{display:flex;align-items:center;gap:8px;color:#464c53;font-size:16px;line-height:1.8;margin-top:8px}
.contact-information__hours>span{font-size:14px;line-height:1.4;padding:4px 16px;border-radius:4px;background:#e6e8ea;flex:none}
.contact-flow{min-width:0;border-top:1px solid #e6e8ea;padding-top:39px}
.contact-steps{width:272px;max-width:100%;height:46px;margin:0 auto 40px;padding:0;list-style:none;display:flex;justify-content:space-between;position:relative}
.contact-steps>ol{display:flex;justify-content:space-between;list-style:none;margin:0;padding:0;width:100%}
.contact-steps__line{position:absolute;left:20px;top:4px;pointer-events:none}
.contact-steps__item{position:relative;display:flex;flex-direction:column;align-items:center;color:#cdd1d5;font-weight:700;line-height:1.4}
.contact-steps__item>img{margin-bottom:4px}
.contact-steps__item>span{font-size:10px}
.contact-steps__item>strong{font-size:14px;font-weight:700}
.contact-steps__item--done{color:#39506c}
.contact-steps__item--current{color:#39506c}
.contact-steps__item--current>strong{color:#111}
.contact-form__fields{display:flex;flex-direction:column;gap:32px}
.contact-form__field{margin:0;padding:0 0 31px;border:0;border-bottom:1px solid #f4f5f6;min-width:0;display:flex;flex-direction:column;gap:16px}
.contact-form__label{display:flex;align-items:center;gap:16px;font-size:18px;line-height:1.4;font-weight:700;padding:0;float:none}
.contact-form__badge{font-size:14px;line-height:1.4;padding:4px 16px;border-radius:4px;background:#39506c;color:#fff;flex:none;font-weight:400}
.contact-form__badge--optional{background:#e6e8ea;color:#464c53}
.contact-form input:not([type=checkbox]):not([type=file]),.contact-form select,.contact-form textarea{display:block;width:100%;min-width:0;height:64px;margin:0;border:1px solid transparent;border-radius:4px;background:#f4f5f6;padding:15px;font:400 16px/1.8 LINE,sans-serif;color:#111;box-shadow:none}
.contact-form input::placeholder,.contact-form textarea::placeholder{color:#6d7882;opacity:1}
.contact-form select{appearance:none;padding-right:56px;background:#f4f5f6 url('../img/contact-select-arrow.svg') right 24px center/24px 24px no-repeat;cursor:pointer}
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{outline:none;border-color:#39506c}
.contact-form textarea{height:200px;min-height:200px;resize:vertical}
.contact-form fieldset.contact-form__address{display:block}
.contact-form__address legend{margin-bottom:16px}
.contact-form__address-fields{display:flex;flex-direction:column;gap:16px}
.contact-form__postal{display:flex;align-items:center;gap:16px;width:325px;max-width:100%}
.contact-form__postal>span{font-size:20px;line-height:1.8;color:#6d7882;font-weight:700}
.contact-form .contact-form__postal input{flex:1;width:0}
.contact-form__address select{width:325px;max-width:100%;color:#6d7882}
.contact-form__upload{gap:32px}
.contact-form__file-layout{display:grid;grid-template-columns:132px minmax(0,1fr);gap:8px 16px;align-items:start}
.contact-form__file-control{position:relative;grid-row:1/3;width:132px;height:30px}
.contact-form__file-control input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}
.contact-form__file-button{display:flex;align-items:center;justify-content:center;height:30px;border:1px solid #cdd1d5;border-radius:4px;font-size:14px;line-height:1.4;color:#464c53;pointer-events:none}
.contact-form__file-control:focus-within{outline:2px solid #39506c;outline-offset:3px;border-radius:4px}
.contact-form__filename{font-size:14px;line-height:30px;color:#464c53;min-width:0;overflow-wrap:anywhere}
.contact-form__file-note{display:flex;gap:4px;font-size:12px;line-height:1.8;color:#6d7882}
.contact-form__privacy{display:flex;flex-direction:column;align-items:center;gap:8px;margin-top:32px}
.contact-form__consent{display:flex;align-items:center;gap:8px;font-size:16px;line-height:1.8;cursor:pointer}
.contact-checkbox{position:relative;display:block;flex:none;width:20px;height:20px}
.contact-form__consent .contact-checkbox input{position:absolute;inset:0;z-index:1;appearance:none;width:20px;height:20px;margin:0;padding:0;opacity:0;cursor:pointer}
.contact-checkbox__box{display:grid;place-items:center;width:20px;height:20px;border:1px solid #39506c;border-radius:2px;background:#fff;transform-origin:center;pointer-events:none;transition:background-color 160ms cubic-bezier(.22,1,.36,1),border-color 160ms cubic-bezier(.22,1,.36,1)}
.contact-checkbox__box img{width:16px;height:16px;opacity:0;transform:scale(.75);transition:opacity 180ms cubic-bezier(.22,1,.36,1),transform 180ms cubic-bezier(.22,1,.36,1)}
.contact-checkbox input:checked+.contact-checkbox__box{background:#39506c;border-color:#39506c}
.contact-checkbox input:checked+.contact-checkbox__box img{opacity:1;transform:scale(1)}
.contact-checkbox input:focus-visible+.contact-checkbox__box{outline:2px solid #39506c;outline-offset:3px}
.contact-form__consent a{color:#39506c;text-decoration:underline;text-underline-offset:2px}
.contact-form__recaptcha{font-size:12px;line-height:1.8;color:#b1b8be;text-align:center}
.contact-flow__buttons{display:flex;align-items:center;justify-content:center;gap:32px;margin-top:80px}
.contact-flow__button{border:1px solid #b1b8be;border-radius:999px;width:178px;height:50px;padding:12px 12px 12px 24px;display:flex;align-items:center;justify-content:space-between;font:400 16px/1.4 LINE,sans-serif;color:#111;background:#fff;flex:none}
.contact-flow__button>span{flex:1;text-align:center}
.contact-flow__button img{flex:none}
.contact-flow__button--home,.contact-flow__button--confirm{width:205px}
.contact-flow__button--confirm>span{flex:none}
.contact-flow__button--back img{transform:scaleX(-1)}
.contact-flow__button--back{padding:12px 24px 12px 12px}
.contact-flow__arrow-muted{display:none}
.contact-form:not([data-valid=true]) .contact-flow__button--confirm{color:#b1b8be}
.contact-form:not([data-valid=true]) .contact-flow__arrow-active{display:none}
.contact-form:not([data-valid=true]) .contact-flow__arrow-muted{display:block}
.contact-form__error,.contact-flow__notice{font-size:14px;line-height:1.6;color:var(--contact-error-color)}
.contact-flow__notice{margin-bottom:24px}
.contact-form__error[hidden],.contact-flow__notice[hidden]{display:none}
.contact-confirm__list{margin:0;padding:0;display:flex;flex-direction:column;gap:32px}
.contact-confirm__row{display:grid;grid-template-columns:161px minmax(0,1fr);gap:40px;padding-bottom:31px;border-bottom:1px solid #e6e8ea}
.contact-confirm__row dt{font-size:18px;font-weight:700;line-height:1.4}
.contact-confirm__row dd{margin:0;min-width:0;font-size:16px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}
.contact-success{margin-top:80px}
.contact-success__message{display:flex;flex-direction:column;align-items:center;gap:32px;text-align:center;font-size:16px;line-height:1.8}
.contact-success__icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#39506c;flex:none}
.contact-success__icon img{display:block}
.contact-page-extra{display:none}
@media(min-width:1101px) and (max-width:1300px){
 .contact-information__number strong{font-size:clamp(28px,2.778vw,40px)}
 .contact-information__phone h2{font-size:21px}
 .contact-confirm__row{grid-template-columns:140px minmax(0,1fr);gap:24px}
}
@media(max-width:1100px){
 .contact-page .contact-page-head.np-head{padding-top:183px}
 .contact-page-head .np-head-inner{left:0}
 .contact-page-grid{width:100%;padding:40px 24px 120px;display:flex;flex-direction:column;gap:80px}
 .contact-information{gap:40px}
 .contact-information__intro{font-size:16px;line-height:1.8}
 .contact-information__phone h2{font-size:24px;line-height:1.4}
 .contact-information__number strong{font-size:32px}
 .contact-flow{padding-top:39px}
 .contact-form__label{font-size:18px;line-height:1.4}
 .contact-form__badge{font-size:12px;padding:4px 12px}
 .contact-form input:not([type=checkbox]):not([type=file]),.contact-form select{height:49px;padding:11px 15px;font-size:14px}
 .contact-form__field--company input:not([type=checkbox]):not([type=file]){height:51px}
 .contact-form select{padding-right:56px}
 .contact-form textarea{font-size:14px}
 .contact-form__address-fields{gap:16px}
 .contact-form__address select{width:100%}
 .contact-form__file-control{grid-row:auto}
 .contact-form__file-layout{row-gap:16px}
 .contact-form__file-note{grid-column:1/-1}
 .contact-form__consent{font-size:14px;gap:8px}
 .contact-flow__buttons{margin-top:40px}
 .contact-confirm__row{grid-template-columns:minmax(0,1fr);gap:16px}
 .contact-confirm__list{gap:32px}
 .contact-confirm .contact-flow__buttons{flex-direction:column;gap:16px}
 .contact-success{margin-top:40px}
 .contact-success__icon{width:40px;height:40px}
 .contact-success__icon img{width:24px;height:24px}
 .contact-success__message{gap:16px;font-size:14px;line-height:1.8}
 .contact-page-extra{display:block}
}
@media(max-width:374px){
 .contact-information__number strong{font-size:clamp(27px,8.533vw,32px)}
 .contact-information__phone h2{font-size:21px}
 .contact-information__hours{font-size:14px}
 .contact-form__consent{align-items:flex-start}
 .contact-form__consent .contact-checkbox{margin-top:4px}
}

.contact-confirm__postal:after{content:"　"}
@media(max-width:1100px){.contact-confirm__postal,.contact-confirm__street{display:block}.contact-confirm__postal:after{content:none}}

/* Figma text-field 2303:15860: visual states are separate from validation rules.
   Reserve the border inside each field so focus never shifts its text position. */
.contact-field-control{--field-border:2px;--field-height:64px;display:flex;flex-direction:column;gap:4px;width:100%;min-width:0;border-radius:4px}
#contact-form .contact-field-control>:is(input,select,textarea){flex:none;box-sizing:border-box;width:100%;height:var(--field-height);margin:0;border:var(--field-border) solid transparent;border-radius:4px;padding:calc((var(--field-height) - 28.8px)/2 - var(--field-border)) calc(16px - var(--field-border));background-color:#f4f5f6;color:#6d7882;font:400 16px/1.8 LINE,sans-serif;outline:none;box-shadow:none}
#contact-form .contact-field-control>select{padding-right:calc(56px - var(--field-border));background-position:right 24px center}
#contact-form .contact-field-control>textarea{height:200px;min-height:200px;padding-block:calc(16px - var(--field-border));resize:vertical}
#contact-form .contact-field-control>:is(input,textarea)::placeholder{color:#6d7882;opacity:1}
#contact-form .contact-field-control[data-field-state="current"]>:is(input,select,textarea){background-color:#fff;border-color:#39506c;color:#111}
#contact-form .contact-field-control[data-field-state="warning"]>:is(input,select,textarea){background-color:#fff;border-color:var(--contact-error-color);color:#111}
#contact-form .contact-field-control[data-field-state="complete"]>:is(input,select,textarea){color:#111}
#contact-form .contact-field-control>.contact-form__error{display:flex;align-items:center;gap:6px;min-height:22px;margin:0;color:var(--contact-error-color);font:400 12px/1.8 LINE,sans-serif}
#contact-form .contact-field-control>.contact-form__error[hidden]{display:none}
#contact-form .contact-field-control>.contact-form__error::before{content:"";flex:0 0 12px;width:12px;height:12px;border-radius:6px;background:var(--contact-error-color) url('../img/813b5.svg') center/8px 8px no-repeat}
.contact-form__postal{align-items:flex-start}
.contact-form__postal>.contact-field-control{flex:1;width:0}
.contact-form__postal>span{line-height:64px}
.contact-form__address-fields>.contact-field-control:has(>select){width:325px;max-width:100%}
@media(max-width:1100px){
 .contact-field-control{--field-border:1.5px;--field-height:52px;gap:2px}
 #contact-form .contact-field-control>:is(input,select,textarea){padding:calc((var(--field-height) - 25.2px)/2 - var(--field-border)) calc(24px - var(--field-border)) calc((var(--field-height) - 25.2px)/2 - var(--field-border)) calc(16px - var(--field-border));font-size:14px}
 #contact-form .contact-field-control>select{padding-right:calc(56px - var(--field-border))}
 #contact-form .contact-field-control>textarea{padding-top:calc(12px - var(--field-border));padding-bottom:calc(12px - var(--field-border))}
 #contact-form .contact-field-control[data-field-state="complete"]>:is(input,select,textarea){color:#6d7882}
 .contact-form__postal>span{line-height:52px}
 .contact-form__address-fields>.contact-field-control:has(>select){width:100%}
}

@media(prefers-reduced-motion:reduce){.contact-checkbox__box,.contact-checkbox__box img{transition:none}}
