/* Existing theme CSS remains the visual baseline. These rules repair behavior and forms. */
@font-face{font-family:'Noto Sans JP';src:url('vendor/noto-sans-300.woff2') format('woff2');font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:'Noto Sans JP';src:url('vendor/noto-sans-700.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'Noto Serif JP';src:url('vendor/noto-serif-600.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}
*,*::before,*::after{box-sizing:border-box}
html{scroll-padding-top:90px}
body{margin:0}
a,.info_top_title,.info_top_title:hover{transition:color .3s,background-color .3s,border-color .3s,box-shadow .3s}
button,input,textarea,select{font:inherit}
img{height:auto}
button{cursor:pointer}
[hidden]{display:none!important}
.site-icon{width:1em;height:1em;display:inline-block;vertical-align:-.1em;flex-shrink:0}
.fa-angles-up{font-size:1.4em}
.logo,.logo_home,.footer_logo{height:auto}
.page_header{width:100%;left:0}
.hone-content{width:100%}
.page_header,.logo_effect,.home_contact,.info_top{animation-delay:0s!important}
.contact_wrap{animation-name:fadeInAnime;animation-delay:0s}
.openbtn{border:0;padding:0;background:#261f18;border-radius:0;color:#fff;line-height:normal}
.openbtn:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #367eb8;outline-offset:4px}
#g-nav:not(.panelactive){visibility:hidden}
#g-nav.panelactive{visibility:visible}
.menu-open{overflow:hidden}
.preview-note{position:fixed;bottom:12px;left:12px;z-index:1100;max-width:min(540px,calc(100% - 24px));background:#e9edf0;color:#253b4d;padding:8px 10px 8px 14px;text-align:left;font:500 12px/1.6 sans-serif;display:flex;align-items:center;gap:10px;box-shadow:0 2px 12px #0002}
.preview-note button{border:0;background:transparent;color:inherit;padding:0;min-width:32px;min-height:32px;font-size:22px}
body[data-preview=true] .page_header{top:0}
/* Initial content is readable even when scripts or motion are unavailable. */
.fadeUpTrigger,.blurTrigger,.eachTextAnime span{opacity:1}
.fadeUpTrigger.reveal-pending,.blurTrigger.reveal-pending{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}
.fadeUpTrigger.revealed,.blurTrigger.revealed{opacity:1;transform:none}
.border-line{height:100%}
#page-top{transition:transform .3s ease;transform:translateX(100px)}
#page-top.is-visible{transform:translateX(0)}
.cat-item::marker{font-family:inherit;content:'› '}
.arrow::before{content:'›';font-family:inherit}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.form-trap{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.attachment-label{display:block;margin-top:16px;font-size:15px;font-weight:700}
.pForm__item--detail{align-items:flex-start}
.textarea_wrapper{min-width:0}
.file_select .pForm__file_item{display:block;min-width:0;margin-bottom:20px}
.file_select .attachment-label{display:block;width:auto;margin:0 0 8px;white-space:nowrap;line-height:1.8}
.file_select input[type=file]{display:block;min-width:0;max-width:100%;margin:0}
.file_select>.form-hint{margin:8px 0 0}
.file-clear{display:block;background:transparent;border:0;padding:6px 0;text-decoration:underline;font-size:14px;color:#333}
.form-hint{font-size:14px;line-height:1.7;margin:8px 0 16px}
.form-errors{color:#8d1515;background:#fff5f4;border:2px solid #a63131;padding:18px;margin:12px 0 24px}
.form-errors a{color:inherit;text-decoration:underline}
[aria-invalid=true]{border:2px solid #a63131!important}
.field-error{color:#a12020;font-size:14px;line-height:1.6;margin:8px 0 0;display:block}
.contact_input_wrapper{min-width:0}
input,textarea{max-width:100%}
input[type=file]{width:100%;font-size:15px}
.pForm__attention{display:block;text-align:center}
.pForm__attention>p{display:block}
.js-policy-open{display:inline;background:transparent;border:0;color:inherit;padding:4px 2px;text-decoration:underline;font-weight:700;line-height:inherit}
.form-confirmation{padding:24px 0}
.form-confirmation h3{margin:0 0 30px;text-align:center}
.form-confirmation dl{margin:0}
.form-confirmation dl>div{padding:22px 0;border-bottom:1px solid #ddd;display:grid;grid-template-columns:180px minmax(0,1fr);gap:20px}
.form-confirmation dt{font-size:16px;font-weight:700;line-height:1.8}
.form-confirmation dd{font-size:16px;line-height:1.8;padding:0;margin:0;white-space:pre-wrap;overflow-wrap:anywhere}
.form-actions{display:flex;flex-direction:column;align-items:center;gap:16px;margin:36px 0 18px}
.form-actions button{background:#261f18;color:white;border:2px solid #261f18;border-radius:12px;min-width:220px;min-height:52px;padding:12px 24px;font-weight:700}
.form-actions #back-button{background:#fff;color:#261f18}
.form-actions button:disabled{cursor:wait;opacity:.6}
#send-status{text-align:center}
#policy-dialog{width:min(1000px,calc(100% - 32px));max-height:calc(100dvh - 40px);border:0;padding:0;color:#111;background:#fff;overflow:auto;margin:auto}
#policy-dialog::backdrop{background:rgba(0,0,0,.75)}
#policy-dialog .modal_privacy_wrap{padding:15px 30px 30px}
.policy-close{display:block;position:sticky;top:0;z-index:2;margin:0 0 0 auto;background:#261f18;color:#fff;border:0;min-height:48px;padding:10px 22px}
.policy-page{padding-top:130px;padding-bottom:70px;background:#fff}
.policy-page h2{writing-mode:horizontal-tb}
#thanks-message{white-space:pre-line;overflow-wrap:anywhere}
/* Keep the complete portrait and reserve room on both sides of the blue boundary. */
@media(min-width:890px){
 .ceo_img{width:min(50vw,1000px)}
 .ceo_img>img{display:block;width:100%;height:auto;object-fit:contain}
 .ceo_wrapper{padding-bottom:calc(min(50vw,1000px) * .28125 + 48px)}
 .company_overview_wrapper{padding-top:calc(min(50vw,1000px) * .28125 + 48px)}
}
@media(max-width:889px){
 .openbtn{display:block}
 .contact_right a{overflow-wrap:anywhere}
 .form-confirmation dl>div{grid-template-columns:1fr;gap:8px}
 #policy-dialog .modal_privacy_wrap{padding:12px 18px 24px}
 .modal_privacy_item>h3{align-items:flex-start}
 .privacy_title{margin-left:10px}
 .preview-note{font-size:12px}
}
@media(max-width:380px){
 .logo{max-width:calc(100vw - 100px)}
 .contact_right a{font-size:clamp(18px,6.8vw,30px)}
 .tel_warp .tel_number{font-size:clamp(18px,7vw,30px)}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto!important}
 *,*::before,*::after{animation-duration:.001ms!important;animation-delay:0ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
 .fadeUpTrigger,.blurTrigger,.eachTextAnime span,.main_nav,.info_top,.tel_warp,.Reception_time,.contact_wrap{opacity:1!important;transform:none!important}
 .fadeUpTrigger.reveal-pending,.blurTrigger.reveal-pending{opacity:1;transform:none}
}
