.inner-page{background:#fdfdfd;font-size:14px}.inner-page .site-header{position:absolute}.inner-page .container{max-width:1100px}.inner-page .contact-banner{margin-top:0}.inner-page #contact-banner{padding-top:0}.inner-page .site-footer{padding-top:110px}.inner-page .page-hero{height:515px;background:linear-gradient(180deg,#fff2df,#fffaf2 95%);border-bottom:1px solid #faa11b}.page-hero>.container{height:100%;position:relative}.breadcrumb{position:absolute;top:115px;right:0;display:flex;align-items:center;gap:12px;font-size:13px;line-height:1.4}.breadcrumb a{color:#f99b0a;display:inline-flex;align-items:center;gap:7px;border-bottom:1px solid currentColor}.breadcrumb img{width:17px;height:17px}.breadcrumb span[aria-hidden]{color:#f99b0a;font-size:18px}.page-title{position:absolute;bottom:72px;left:0}.page-title p{color:#f9a016;font-family:Montserrat,sans-serif;font-size:72px;line-height:1.1;letter-spacing:.06em;font-weight:500}.page-title h1{font-size:24px;line-height:1.6;margin:8px 0 0 12px;font-weight:700}.inner-page #contact-banner{margin-top:140px}.inner-stack{padding-top:115px}.detail-section{display:grid;grid-template-columns:250px minmax(0,1fr);gap:65px;margin-bottom:95px}.section-label p{color:#f99b0a;font-family:Montserrat,sans-serif;font-size:16px;line-height:1.5;margin:0 0 4px}.section-label h2{font-size:16px;line-height:1.5}.profile-table{margin:0}.profile-table>div{display:grid;grid-template-columns:215px minmax(0,1fr);gap:14px;border-top:1px solid #f0dbc1;padding:22px 12px;line-height:1.85}.profile-table>div:last-child{border-bottom:1px solid #f0dbc1}.profile-table dt{font-weight:400}.profile-table dd{margin:0}.profile-table a:hover{color:#e78a00}.orange{color:#f99b0a;text-decoration:underline}.detail-main{min-width:0}.access-map{width:100%;height:auto;object-fit:cover}.detail-main>p{margin:14px 0 0}.message-text>p{line-height:2;margin:0 0 26px}.ceo-block{display:flex;align-items:end;gap:40px;margin-top:40px}.ceo-block>img{width:260px;height:auto}.ceo-block>div{padding-bottom:35px}.ceo-block>div img{width:180px;height:auto;margin-top:20px}.inner-services .service-row{padding:90px 0 100px}.inner-services .service-inner{position:relative}.inner-services .service-heading{height:130px}.inner-services .service-body h2{font-size:24px}.service-details{margin-top:75px}.service-detail{margin-bottom:55px}.service-detail h3{font-size:18px;border-bottom:1px solid #ead4b9;padding-bottom:20px;margin-bottom:20px}.service-detail p{line-height:2}.portfolio-title{font-size:25px;margin:85px 0 30px}.portfolio-subtitle{font-size:18px;border-bottom:1px solid #ead4b9;padding-bottom:18px;margin:28px 0 40px}.portfolio-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-bottom:65px}.portfolio-grid img{width:100%;height:auto;aspect-ratio:253/165;object-fit:cover}.portfolio-grid p{margin-top:12px;font-size:13px}.portfolio-grid strong{display:block;font-size:16px;line-height:1.5}.inner-page .job-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:35px;padding-top:100px}.job-nav{display:flex;flex-direction:column;align-items:flex-start;gap:20px;font-weight:700}.job-nav a{position:relative;padding-left:18px}.job-nav a.active{color:#f79b0a}.job-nav a.active::before{content:'›';position:absolute;left:0;top:-3px;font-size:24px;line-height:1}.job-content h2{font-size:26px;margin-bottom:35px}.job-content .profile-table>div{grid-template-columns:190px minmax(0,1fr)}.job-content .more-link{margin-top:48px}.job-other{padding:10px 0 80px}.job-other p{line-height:1.9}.narrow{width:calc(100% - 40px);max-width:780px;margin-inline:auto}.privacy-body{padding-top:100px;line-height:2}.privacy-body p{margin-bottom:40px}.privacy-body ol{margin:35px 0;padding-left:30px}.privacy-body li{padding-left:10px;margin:0 0 25px}.privacy-sign{text-align:right}.form-shell,.confirmation{padding-top:105px}.form-intro{margin:0 0 38px;padding-bottom:40px;border-bottom:1px solid #ead4b9;font-size:14px}.form-field{margin:0 0 25px}.form-field>label,.form-field>legend{font-weight:700;display:block;margin:0 0 6px}.required{display:inline-block;background:#fa9f18;color:#fff;font-size:11px;font-weight:700;line-height:1.5;padding:1px 8px;margin-left:7px}.form-field input:not([type=radio]):not([type=file]),.form-field textarea{display:block;width:100%;background:#fcf6ec;border:1px solid #efdfc6;border-radius:2px;min-height:50px;padding:12px 15px;font:inherit;color:#111}.form-field textarea{min-height:200px;resize:vertical}.form-field input:focus-visible,.form-field textarea:focus-visible{outline:2px solid #f39d15;outline-offset:2px}.radio-field{border:0;padding:0}.radio-field legend{padding:0;margin-bottom:6px}.radio-field label{display:flex;align-items:center;gap:8px;margin:4px 0}.radio-field input,.form-consent input{accent-color:#faa11b}.file-note{color:#e55342;font-size:12px;margin:6px 0 12px}.form-field input[type=file]{width:100%;padding:20px;border:1px dashed #eddbc3;border-radius:30px;background:#fdf8f0;color:#f69c1b}.form-consent{text-align:center;margin:55px auto 25px}.form-consent p{margin-bottom:14px}.form-consent a{text-decoration:underline}.demo-note{text-align:center;color:#8a694e;font-size:12px;margin:25px 0}.form-button{border:1px solid #faa11b;background:#fff;color:#f5960b;border-radius:999px;font:700 15px Montserrat,'Noto Sans JP',sans-serif;min-height:58px;min-width:300px;padding:0 18px 0 38px;display:flex;align-items:center;justify-content:space-between;gap:30px;margin:70px auto 0;cursor:pointer}.form-button img{width:19px;height:19px}.form-button:hover{background:#fff6e7}.confirmation>p:first-child{padding-bottom:35px;border-bottom:1px solid #ead4b9}.confirm-item{margin:25px 0}.confirm-item dt{font-weight:700;margin-bottom:9px}.confirm-item dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.confirm-list{padding:0 0 20px}.confirm-actions{display:flex;align-items:center;justify-content:center;gap:25px;margin-top:60px}.confirm-actions .form-button{margin:0}.completed{padding:115px 0 40px;text-align:center}.completed h2{font-size:22px;padding:30px 0;border-top:1px solid #ead4b9;border-bottom:1px solid #ead4b9;margin-bottom:45px}.completed p{margin-bottom:25px;line-height:2}.completed .more-link{margin-top:70px}.inner-page .site-footer{padding-bottom:28px}
@media(max-width:900px){.detail-section{grid-template-columns:170px minmax(0,1fr);gap:30px}.profile-table>div{grid-template-columns:135px minmax(0,1fr)}.inner-page .job-layout{grid-template-columns:210px minmax(0,1fr)}.job-content .profile-table>div{grid-template-columns:110px minmax(0,1fr)}}
@media(max-width:768px){.inner-page .site-header{inset:20px 20px auto}.inner-page .menu-open .site-header{position:fixed}.inner-page .page-hero{height:370px}.breadcrumb{top:130px;left:0;right:auto;gap:7px;font-size:11px}.page-title{left:0;bottom:45px}.page-title p{font-size:clamp(40px,10vw,62px)}.page-title h1{font-size:20px;margin-left:4px}.inner-stack{padding-top:55px}.detail-section{display:block;margin-bottom:55px}.section-label{margin-bottom:25px}.profile-table>div{grid-template-columns:110px minmax(0,1fr);gap:12px;padding:18px 0}.detail-main{font-size:13px}.ceo-block{gap:15px;align-items:center}.ceo-block>img{width:45%}.ceo-block>div{padding:0}.ceo-block>div img{width:130px}.inner-services .service-row{padding:50px 0}.inner-services .service-heading{height:75px}.inner-services .service-body h2{font-size:21px}.service-details{margin-top:45px}.service-detail{margin-bottom:35px}.service-detail h3{font-size:16px;padding-bottom:10px;margin-bottom:12px}.portfolio-title{margin:50px 0 20px}.portfolio-subtitle{font-size:15px}.portfolio-grid{gap:12px}.portfolio-grid p{font-size:10px}.portfolio-grid strong{font-size:12px}.inner-page .job-layout{display:block;padding-top:55px}.job-nav{flex-direction:row;flex-wrap:wrap;gap:12px 20px;margin-bottom:40px;font-size:13px}.job-content h2{font-size:21px}.job-content .profile-table>div{grid-template-columns:105px minmax(0,1fr)}.privacy-body{padding-top:55px}.form-shell,.confirmation{padding-top:60px}.form-intro{line-height:1.9}.form-button{min-width:min(300px,100%)}.confirm-actions{flex-direction:column}.confirm-actions .form-button{width:100%;max-width:300px}.inner-page #contact-banner{margin-top:80px}.inner-page .site-footer{padding-top:65px}}
@media(max-width:480px){.portfolio-grid{grid-template-columns:1fr 1fr}.profile-table>div{grid-template-columns:96px minmax(0,1fr)}.ceo-block>div img{width:90px}}
.file-title{font-weight:700;display:block;margin-bottom:7px}.file-upload-list{display:grid;gap:13px}.upload-target{position:relative;display:flex;min-height:52px;align-items:center;justify-content:center;border:1px dashed #eddbc3;border-radius:999px;background:#fdf8f0;color:#f69c1b;font-weight:500;cursor:pointer;text-align:center;padding:10px 20px}.upload-target.is-dragging,.upload-target:hover{background:#fff0d9}.upload-target:focus-within{outline:2px solid #f69c1b;outline-offset:2px}.upload-target input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.upload-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}

.file-upload-list{min-width:0}.upload-target{width:100%;min-width:0;max-width:100%}.upload-text{display:block;min-width:0;width:100%}

/* Shared interior-page artwork spans below the title border. */
.inner-page{background:#fff url('../assets/bg.webp') center top / 100% auto no-repeat}
.inner-page .page-hero{background:transparent}
.page-title p{font-size:74px;font-weight:600;letter-spacing:.1em}
.section-label p{font-size:18px}
.profile-table{font-size:15px}
.breadcrumb a{border-bottom:0}
.breadcrumb a>span{border-bottom:1px solid currentColor}
.breadcrumb a:not(:first-child){border-bottom:1px solid currentColor}
@media(max-width:768px){.page-title p{font-size:clamp(40px,10vw,62px)}}

/* 事業概要は1100px、説明と管理実績は800px。先頭セクションは共通背景を透過する。 */
.inner-services .service-row:first-child{border-top:0}
.inner-services .service-row:nth-child(odd){background:transparent}
.inner-services .service-row:nth-child(even){background:#faf7f0}
.inner-services .service-details{width:100%;max-width:800px;margin:75px auto 0}
.access-map{display:block;width:100%;max-width:780px;height:450px;border:0}
@media(max-width:768px){.inner-services .service-details{margin-top:45px}.access-map{height:340px}}

/* Shared refinements for all interior pages. */
.inner-page{background:#fdfdfd url('../assets/bg.webp') center top / 100% auto no-repeat;font-size:15px}
.inner-page .page-hero{position:relative}
.breadcrumb{right:70px}
.breadcrumb img{width:16px;height:19px;flex:none;object-fit:contain}
.breadcrumb .crumb-arrow{width:6px;height:10px}
.breadcrumb a>span{border-bottom:1px solid currentColor}
.breadcrumb a:not(:first-child){border-bottom:1px solid currentColor}
.form-intro,.portfolio-grid p{font-size:15px}
.access-map-wrap{width:100%;max-width:780px;height:450px;background:#eee url('../assets/company_map.png') center / cover no-repeat}
.access-map{width:100%;height:100%}
.access-map-link{color:#e78a00;text-decoration:underline;text-underline-offset:3px}
.radio-field input{appearance:none;-webkit-appearance:none;width:15px;height:15px;margin:0;border:1px solid #eedbc1;border-radius:50%;background:#fdf8f0;display:grid;place-items:center;flex:none;cursor:pointer}
.radio-field input::before{content:'';width:7px;height:7px;border-radius:50%;background:#faa11b;transform:scale(0);transition:transform .15s}
.radio-field input:checked::before{transform:scale(1)}
.radio-field input:focus-visible,.form-consent input:focus-visible{outline:2px solid #bd6b00;outline-offset:3px}
.form-consent label{display:inline-flex;align-items:center;justify-content:center;gap:5px;cursor:pointer}
.form-consent input{appearance:none;-webkit-appearance:none;width:17px;height:17px;margin:0 3px 0 0;border:1px solid #efdfc6;border-radius:2px;background:#fcf6ec;display:grid;place-items:center;flex:none;cursor:pointer}
.form-consent input::before{content:'';width:9px;height:5px;border-left:2px solid #faa11b;border-bottom:2px solid #faa11b;transform:translateY(-1px) rotate(-45deg) scale(0);transition:transform .15s}
.form-consent input:checked::before{transform:translateY(-1px) rotate(-45deg) scale(1)}
.form-button{min-width:0;width:450px;max-width:100%;height:84px;padding:0 22px 0 140px;margin-top:90px;background:#fdfdfd;font-size:15px}
.form-button img{width:33px;height:33px;flex:none}
.completed h2{font-size:18px}
.completed p{font-size:15px}
.completed .demo-note{font-size:13px;margin:34px 0 0}
@media(max-width:768px){.breadcrumb{left:auto;right:20px;top:130px}.detail-main{font-size:15px}.portfolio-grid p{font-size:15px}.access-map-wrap{height:340px}.form-button{height:64px;width:min(450px,100%);padding-left:32px;margin-top:70px}}

/* Form action typography and standard input text. */
.form-shell .form-button{font-size:18px}
.form-field input:not([type=radio]):not([type=file]),.form-field textarea{color:#000}

/* Contact category choices are regular weight and clickable across the text. */
.radio-field label,.radio-field label span{font-weight:400;cursor:pointer}

/* PHP form feedback and bot-trap field. */
.form-errors{background:#fff3e7;border:1px solid #e9934d;border-radius:5px;padding:16px 22px;margin:0 0 28px;color:#000}
.form-errors p{font-weight:700}.form-errors ul{margin:8px 0 0;padding-left:22px}
.hp-field{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.remove-upload{display:inline-flex;align-items:center;gap:5px;cursor:pointer;margin-top:8px}
.confirm-actions form{margin:0}.confirm-actions form .form-button{margin:0}

/* Keep every inner-page breadcrumb on the same horizontal line below the header. */
@media(min-width:769px){.breadcrumb{top:140px}}
@media(max-width:768px){.breadcrumb{top:124px}}
.career-placeholder{padding-top:100px;padding-bottom:40px;min-height:300px}
.career-placeholder h2{font-size:24px;margin:0 0 18px}
.career-placeholder p{font-size:15px;line-height:1.8;margin:0 0 28px}
.career-placeholder nav{display:flex;flex-wrap:wrap;gap:14px 32px}
.career-placeholder nav a{color:#e88b00;text-decoration:underline;text-underline-offset:4px;font-size:15px}
@media(max-width:768px){.career-placeholder{padding-top:60px;min-height:260px}}

/* Linked breadcrumbs and the external map link. */
.breadcrumb a{cursor:pointer;transition:color .25s ease,text-decoration-color .25s ease}
.breadcrumb a:hover,.breadcrumb a:focus-visible{color:#cf7700}
.access-map-link{display:inline-block;transition:color .28s ease,transform .28s ease,text-decoration-color .28s ease}
.access-map-link:hover,.access-map-link:focus-visible{color:#c67500;transform:translateX(5px);text-decoration-color:#c67500}
@media(prefers-reduced-motion:reduce){.breadcrumb a,.access-map-link{transition:none}}

/* Confirmation actions match the main form button and reference layout. */
.confirm-actions{display:flex;flex-direction:column;align-items:center;gap:46px;margin-top:94px}
.confirm-actions form{width:450px;max-width:100%;margin:0}
.confirm-actions form .form-button{width:100%;margin:0;font-size:18px}
.confirm-back-link{color:#f39100;font-size:15px;font-weight:500;text-decoration:underline;text-underline-offset:3px;transition:color .2s ease}
.confirm-back-link:hover,.confirm-back-link:focus-visible{color:#c97900}
@media(max-width:768px){.confirm-actions{gap:32px;margin-top:65px}.confirm-actions form{width:min(450px,100%)}}
@media(prefers-reduced-motion:reduce){.confirm-back-link{transition:none}}

/* Keep form button labels centered independently of the arrow icon. */
.inner-page .form-button{justify-content:center;padding:0 60px;text-align:center}
.inner-page .form-button>span{display:block;text-align:center}
.inner-page .form-button>img{position:absolute;top:50%;right:22px;translate:0 -50%}
@media(max-width:768px){.inner-page .form-button{padding-inline:46px}.inner-page .form-button>img{right:16px}}

/* Entry attachments: drop feedback, selected names, and individual removal. */
.inner-page .file-upload-list{gap:16px}
.inner-page .upload-item{min-width:0}
.inner-page .upload-target{transition:background-color .2s,border-color .2s,box-shadow .2s}
.inner-page .upload-target.is-dragging{background:#ffe5bb;border-color:#f99b0a;border-style:solid;box-shadow:0 0 0 4px rgba(249,155,10,.16);color:#a65e00}
.inner-page .upload-target.has-file{border-color:#f99b0a;background:#fff8ed}
.inner-page .upload-selected,.inner-page .existing-upload{display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin:8px 14px 0;min-width:0}
.inner-page .upload-selected[hidden]{display:none}
.inner-page .upload-filename{min-width:0;overflow-wrap:anywhere;font-size:15px;color:#000}
.inner-page .upload-remove{flex:none;padding:0;border:0;background:none;color:#ee8e00;text-decoration:underline;text-underline-offset:3px;font:inherit;font-size:14px;cursor:pointer}
.inner-page .upload-remove:hover{color:#bd6a00}
.inner-page .upload-remove:focus-visible{outline:2px solid #f99b0a;outline-offset:3px}
.inner-page .existing-uploads{margin-top:22px}
.inner-page .existing-uploads>p{font-weight:700;margin-bottom:8px}
.inner-page .existing-upload{position:relative;cursor:pointer}
.inner-page .existing-upload input{position:absolute;right:0;bottom:0;opacity:0;width:1px;height:1px}
.inner-page .existing-upload.is-removed .upload-filename{text-decoration:line-through;opacity:.55}
.inner-page .existing-upload:focus-within{outline:2px solid #f99b0a;outline-offset:3px}

/* Reference entry form: 800px-wide, 68px-high drop targets with 21px spacing. */
.inner-page .entry-form{max-width:800px}
.inner-page .entry-form .file-upload-list{gap:21px}
.inner-page .entry-form .upload-target{min-height:68px;border-radius:34px}
@media(max-width:768px){.inner-page .entry-form .upload-target{min-height:64px}}

/* Place validation feedback beside the control that needs attention. */
.inner-page .form-field-error{margin:7px 0 0;color:#c83d31;font-size:14px;line-height:1.6;text-align:left}
.inner-page .form-field.has-error input:not([type=radio]):not([type=file]),.inner-page .form-field.has-error textarea{border-color:#c83d31;background:#fff8f6}
.inner-page .radio-field.has-error input{border-color:#c83d31}
.inner-page .form-field.has-error .upload-target{border-color:#c83d31}
.inner-page .form-consent.has-error input{border-color:#c83d31}
.inner-page .form-consent .form-field-error{text-align:center}
