.request-page{
 background:
  radial-gradient(
   circle at 10% 5%,
   rgba(217,200,170,.28),
   transparent 28%
  ),
  var(--paper);
}

.request-main{
 padding:76px 0 110px;
}

.request-layout{
 display:grid;
 grid-template-columns:minmax(300px,.78fr) minmax(0,1.22fr);
 gap:64px;
 align-items:start;
}

.request-intro{
 position:sticky;
 top:116px;
 padding:38px 0;
}

.request-intro h1{
 max-width:520px;
 margin:0;
 font-size:clamp(40px,4.8vw,66px);
 line-height:1.1;
 letter-spacing:-.06em;
}

.request-intro-copy{
 max-width:510px;
 margin:25px 0 0;
 color:var(--muted);
 font-size:16px;
 line-height:1.85;
}

.request-benefits{
 display:grid;
 gap:10px;
 margin-top:32px;
}

.request-benefit{
 display:flex;
 align-items:flex-start;
 gap:12px;
 padding:15px 16px;
 border:1px solid var(--line);
 border-radius:9px;
 background:rgba(255,255,255,.72);
}

.request-benefit span{
 width:25px;
 height:25px;
 flex:none;
 display:flex;
 align-items:center;
 justify-content:center;
 border-radius:50%;
 background:var(--green);
 color:#fff;
 font-size:11px;
 font-weight:900;
}

.request-benefit strong{
 display:block;
 margin-bottom:4px;
 font-size:14px;
}

.request-benefit p{
 margin:0;
 color:var(--muted);
 font-size:12px;
 line-height:1.55;
}

.request-phone-card{
 margin-top:20px;
 padding:22px;
 border-radius:10px;
 color:#fff;
 background:var(--green);
 box-shadow:0 16px 38px rgba(51,75,45,.16);
}

.request-phone-card span{
 display:block;
 color:rgba(255,255,255,.72);
 font-size:12px;
 font-weight:800;
}

.request-phone-card a{
 display:inline-block;
 margin-top:7px;
 color:#fff;
 font-size:28px;
 font-weight:900;
 letter-spacing:-.02em;
}

.request-phone-card p{
 margin:8px 0 0;
 color:rgba(255,255,255,.68);
 font-size:12px;
}

.request-form-area{
 min-width:0;
}

.form-heading{
 margin-bottom:19px;
}

.form-heading span{
 color:var(--olive);
 font-size:11px;
 font-weight:900;
 letter-spacing:.17em;
}

.form-heading h2{
 margin:8px 0 8px;
 font-size:30px;
 letter-spacing:-.045em;
}

.form-heading p{
 margin:0;
 color:var(--muted);
 font-size:13px;
 line-height:1.65;
}

.request-card{
 padding:34px;
 border:1px solid var(--line);
 border-radius:14px;
 background:#fff;
 box-shadow:0 24px 65px rgba(39,34,27,.09);
}

.request-card .grid{
 display:grid;
 grid-template-columns:1fr 1fr;
 gap:16px;
}

.request-card .group{
 margin-bottom:20px;
}

.request-card label{
 display:block;
 margin-bottom:8px;
 color:#302f2c;
 font-size:14px;
 font-weight:900;
}

.request-card input,
.request-card select,
.request-card textarea{
 width:100%;
 min-height:50px;
 padding:13px 14px;
 border:1px solid #d9d5cd;
 border-radius:7px;
 outline:none;
 background:#fff;
 color:var(--ink);
 font-size:15px;
 transition:
  border-color .15s ease,
  box-shadow .15s ease,
  background .15s ease;
}

.request-card input:focus,
.request-card select:focus,
.request-card textarea:focus{
 border-color:var(--green);
 box-shadow:0 0 0 3px rgba(51,75,45,.10);
}

.request-card input[readonly]{
 background:#f6f5f1;
 color:#6e6b65;
}

.request-card textarea{
 min-height:155px;
 resize:vertical;
 line-height:1.7;
}

.required{
 color:#a93737;
}

.hidden{
 position:absolute;
 left:-9999px;
}

.error,
.success{
 margin-bottom:18px;
 padding:18px 20px;
 border-radius:9px;
 line-height:1.7;
}

.error{
 border:1px solid #efd1d1;
 background:#fff1f1;
 color:#872c2c;
}

.error ul{
 margin:8px 0 0;
 padding-left:20px;
}

.success{
 border:1px solid #cfe2d2;
 background:#edf7ef;
 color:#285b34;
}

.success strong{
 font-size:17px;
}

.address-search-row{
 display:grid;
 grid-template-columns:145px 1fr;
 gap:10px;
 margin-bottom:10px;
}

.address-search-button{
 width:auto;
 min-height:50px;
 padding:12px 18px;
 border:0;
 border-radius:7px;
 background:var(--green);
 color:#fff;
 font-weight:900;
 cursor:pointer;
}

#region{
 margin-bottom:10px;
}

.photo-actions{
 display:grid;
 grid-template-columns:1fr;
 gap:10px;
}

.photo-button{
 min-height:54px;
 display:flex;
 align-items:center;
 justify-content:center;
 margin:0!important;
 border-radius:7px;
 color:#fff!important;
 font-size:14px;
 font-weight:900!important;
 cursor:pointer;
}

.photo-button.camera{
 display:none;
 background:var(--green);
}

.photo-button.gallery{
 background:#615f58;
}

.photo-guide{
 margin:11px 0 0;
 color:var(--muted);
 font-size:12px;
 line-height:1.65;
}

.photo-count{
 margin-top:12px;
 padding:11px 13px;
 border-radius:7px;
 background:#f0f2ed;
 color:var(--green);
 font-size:13px;
 font-weight:900;
}

.photo-preview{
 display:grid;
 grid-template-columns:repeat(3,minmax(0,1fr));
 gap:10px;
 margin-top:12px;
}

.photo-preview-item{
 position:relative;
 overflow:hidden;
 border:1px solid var(--line);
 border-radius:8px;
 background:#f5f4f0;
}

.photo-preview-item img{
 width:100%;
 height:130px;
 object-fit:cover;
}

.photo-preview-name{
 overflow:hidden;
 padding:8px;
 color:#69665f;
 font-size:10px;
 white-space:nowrap;
 text-overflow:ellipsis;
}

.photo-remove{
 position:absolute;
 top:6px;
 right:6px;
 width:29px;
 height:29px;
 padding:0;
 border:0;
 border-radius:50%;
 background:rgba(20,20,20,.78);
 color:#fff;
 font-size:18px;
 line-height:29px;
 cursor:pointer;
}

.request-card .check{
 display:flex;
 align-items:flex-start;
 gap:10px;
 padding:15px;
 border-radius:7px;
 background:#f7f6f2;
}

.request-card .check input{
 width:18px;
 min-height:18px;
 margin:2px 0 0;
 flex:none;
}

.request-card .check label{
 margin:0;
 font-size:13px;
 font-weight:700;
 line-height:1.65;
}

.request-card > button[type="submit"]{
 width:100%;
 min-height:56px;
 margin-top:5px;
 padding:14px 20px;
 border:0;
 border-radius:7px;
 background:var(--green);
 color:#fff;
 font-size:16px;
 font-weight:900;
 cursor:pointer;
 box-shadow:0 13px 28px rgba(51,75,45,.17);
 transition:.18s ease;
}

.request-card > button[type="submit"]:hover{
 transform:translateY(-2px);
 background:var(--green-dark);
}

.request-footer-address{
 margin-top:6px!important;
}

@media(max-width:960px){
 .request-layout{
  grid-template-columns:1fr;
  gap:30px;
 }

 .request-intro{
  position:static;
  padding:12px 0 10px;
 }

 .request-benefits{
  grid-template-columns:repeat(3,1fr);
 }

 .request-phone-card{
  max-width:480px;
 }
}

@media(max-width:700px){
 .request-main{
  padding:48px 0 85px;
 }

 .request-intro h1{
  font-size:42px;
 }

 .request-benefits{
  grid-template-columns:1fr;
 }

 .request-card{
  padding:24px 18px;
 }

 .request-card .grid{
  grid-template-columns:1fr;
  gap:0;
 }

 .photo-actions{
  grid-template-columns:1fr 1fr;
 }

 .photo-button.camera{
  display:flex;
 }

 .photo-preview{
  grid-template-columns:repeat(2,minmax(0,1fr));
 }

 .photo-preview-item img{
  height:145px;
 }
}

@media(max-width:480px){
 .request-main{
  padding-top:36px;
 }

 .request-intro h1{
  font-size:36px;
 }

 .request-phone-card a{
  font-size:24px;
 }

 .address-search-row{
  grid-template-columns:112px 1fr;
 }

 .address-search-button{
  padding:10px;
  font-size:13px;
 }

 .form-heading h2{
  font-size:26px;
 }
}

/* 사진 촬영·사진첩 선택 버튼 중앙정렬 보정 */
.request-card .photo-button{
 width:100%;
 min-height:54px;
 display:flex;
 align-items:center;
 justify-content:center;
 gap:7px;
 margin:0!important;
 padding:12px 16px;
 text-align:center;
 line-height:1.2;
}

/* 고객 문의 진행조회 */
.status-main{
 min-height:650px;
 padding:72px 0 110px;
 background:
  radial-gradient(
   circle at 50% 0,
   rgba(217,200,170,.24),
   transparent 34%
  ),
  var(--paper);
}

.status-shell{
 max-width:980px;
}

.status-hero{
 margin-bottom:30px;
 text-align:center;
}

.status-hero h1{
 margin:0;
 font-size:clamp(38px,5vw,58px);
 letter-spacing:-.055em;
}

.status-hero>p:last-child{
 margin:16px 0 0;
 color:var(--muted);
 line-height:1.7;
}

.lookup-card{
 max-width:600px;
 margin:0 auto;
 padding:34px;
 border:1px solid var(--line);
 border-radius:14px;
 background:#fff;
 box-shadow:0 24px 65px rgba(39,34,27,.09);
}

.lookup-field{
 margin-bottom:18px;
}

.lookup-field label{
 display:block;
 margin-bottom:8px;
 font-size:14px;
 font-weight:900;
}

.lookup-field input{
 width:100%;
 min-height:52px;
 padding:13px 15px;
 border:1px solid #d9d5cd;
 border-radius:7px;
 outline:none;
}

.lookup-field input:focus{
 border-color:var(--green);
 box-shadow:0 0 0 3px rgba(51,75,45,.1);
}

.lookup-card>button{
 width:100%;
 min-height:55px;
 border:0;
 border-radius:7px;
 background:var(--green);
 color:#fff;
 font-size:15px;
 font-weight:900;
 cursor:pointer;
}

.lookup-guide{
 margin:17px 0 0;
 color:var(--muted);
 font-size:12px;
 line-height:1.7;
 text-align:center;
}

.lookup-guide a{
 color:var(--green);
 font-weight:900;
}

.lookup-error{
 max-width:600px;
 margin:0 auto 14px;
 padding:15px 18px;
 border:1px solid #efd1d1;
 border-radius:8px;
 background:#fff1f1;
 color:#872c2c;
 text-align:center;
}

.status-result{
 padding:38px;
 border:1px solid var(--line);
 border-radius:15px;
 background:#fff;
 box-shadow:0 24px 65px rgba(39,34,27,.09);
}

.status-result-head{
 display:flex;
 align-items:flex-start;
 justify-content:space-between;
 gap:20px;
}

.status-code{
 margin:0 0 7px;
 color:var(--muted);
 font-size:13px;
 font-weight:800;
}

.status-result-head h2{
 margin:0;
 font-size:34px;
 letter-spacing:-.045em;
}

.status-badge{
 padding:10px 14px;
 border-radius:999px;
 background:#edf2ea;
 color:var(--green);
 font-size:13px;
 font-weight:900;
}

.status-message{
 margin:20px 0 0;
 padding:18px 20px;
 border-left:4px solid var(--green);
 background:#f5f6f2;
 color:#514f49;
 line-height:1.75;
}

.status-progress{
 display:grid;
 grid-template-columns:repeat(6,1fr);
 gap:8px;
 margin-top:28px;
}

.progress-step{
 min-height:92px;
 display:flex;
 flex-direction:column;
 align-items:center;
 justify-content:center;
 gap:8px;
 border:1px solid var(--line);
 border-radius:8px;
 background:#faf9f6;
 color:#aaa69d;
 text-align:center;
}

.progress-step span{
 width:25px;
 height:25px;
 display:flex;
 align-items:center;
 justify-content:center;
 border-radius:50%;
 background:#e9e6df;
 font-size:11px;
 font-weight:900;
}

.progress-step strong{
 font-size:12px;
}

.progress-step.is-done{
 border-color:#cdd7c9;
 background:#f0f4ed;
 color:var(--green);
}

.progress-step.is-done span{
 background:var(--green);
 color:#fff;
}

.status-info-grid{
 display:grid;
 grid-template-columns:repeat(3,1fr);
 gap:12px;
 margin-top:28px;
}

.status-info{
 padding:18px;
 border:1px solid var(--line);
 border-radius:9px;
 background:#fff;
}

.status-info span{
 display:block;
 margin-bottom:7px;
 color:var(--muted);
 font-size:11px;
}

.status-info strong{
 font-size:14px;
 line-height:1.5;
}

.status-timeline{
 margin-top:32px;
 padding-top:28px;
 border-top:1px solid var(--line);
}

.status-timeline h3{
 margin:0 0 20px;
 font-size:21px;
}

.timeline-item{
 position:relative;
 display:flex;
 gap:15px;
 padding:0 0 22px;
}

.timeline-item:not(:last-child):before{
 content:"";
 position:absolute;
 left:6px;
 top:16px;
 bottom:-3px;
 width:1px;
 background:#dcd8d0;
}

.timeline-mark{
 position:relative;
 z-index:1;
 width:13px;
 height:13px;
 flex:none;
 margin-top:3px;
 border:3px solid #dce5d8;
 border-radius:50%;
 background:var(--green);
}

.timeline-item strong{
 font-size:14px;
}

.timeline-item p{
 margin:5px 0 0;
 color:var(--muted);
 font-size:12px;
}

.status-actions,
.success-actions{
 display:flex;
 gap:10px;
 margin-top:24px;
 flex-wrap:wrap;
}

.status-actions a,
.success-actions a{
 min-height:48px;
 display:inline-flex;
 align-items:center;
 justify-content:center;
 padding:12px 20px;
 border:1px solid var(--line);
 border-radius:6px;
 background:#fff;
 color:var(--green);
 font-size:14px;
 font-weight:900;
}

.status-actions a.primary,
.success-actions a.primary{
 border-color:var(--green);
 background:var(--green);
 color:#fff;
}

@media(max-width:760px){
 .status-main{
  padding:48px 0 90px;
 }

 .lookup-card,
 .status-result{
  padding:24px 18px;
 }

 .status-result-head{
  flex-direction:column;
 }

 .status-progress{
  grid-template-columns:repeat(3,1fr);
 }

 .status-info-grid{
  grid-template-columns:1fr 1fr;
 }
}

@media(max-width:480px){
 .status-progress{
  grid-template-columns:repeat(2,1fr);
 }

 .status-info-grid{
  grid-template-columns:1fr;
 }

 .status-actions,
 .success-actions{
  display:grid;
  grid-template-columns:1fr;
 }

 .status-actions a,
 .success-actions a{
  width:100%;
 }
}

/* 고객 공개 진행이력 안내문 */
.timeline-message{
 margin:8px 0 0!important;
 padding:9px 11px;
 border-radius:6px;
 background:#f5f6f2;
 color:#62655e!important;
 font-size:12px!important;
 line-height:1.6;
 white-space:normal;
}

/* 접수조회 방식 탭 */
.lookup-tabs{
 max-width:600px;
 display:grid;
 grid-template-columns:1fr 1fr;
 gap:7px;
 margin:0 auto 15px;
 padding:6px;
 border:1px solid var(--line);
 border-radius:10px;
 background:#fff;
}

.lookup-tab{
 min-height:48px;
 display:flex;
 align-items:center;
 justify-content:center;
 padding:10px 12px;
 border-radius:6px;
 color:#77746e;
 font-size:14px;
 font-weight:900;
 text-align:center;
}

.lookup-tab.is-active{
 background:var(--green);
 color:#fff;
 box-shadow:0 8px 20px rgba(51,75,45,.16);
}

.lookup-card strong{
 color:var(--green);
}

/* 최근 접수목록 */
.recent-result{
 max-width:760px;
 margin:0 auto;
 padding:30px;
 border:1px solid var(--line);
 border-radius:14px;
 background:#fff;
 box-shadow:0 24px 65px rgba(39,34,27,.09);
}

.recent-result-head{
 display:flex;
 align-items:flex-start;
 justify-content:space-between;
 gap:20px;
}

.recent-result-head span{
 display:block;
 margin-bottom:6px;
 color:var(--olive);
 font-size:11px;
 font-weight:900;
 letter-spacing:.12em;
}

.recent-result-head h2{
 margin:0;
 font-size:28px;
 letter-spacing:-.045em;
}

.recent-result-head>strong{
 min-width:52px;
 padding:9px 12px;
 border-radius:999px;
 background:#edf2ea;
 color:var(--green);
 font-size:13px;
 text-align:center;
}

.recent-result-guide{
 margin:13px 0 22px;
 color:var(--muted);
 font-size:12px;
 line-height:1.65;
}

.recent-inquiry-list{
 display:grid;
 gap:12px;
}

.recent-inquiry-card{
 padding:20px;
 border:1px solid var(--line);
 border-radius:10px;
 background:#faf9f6;
 transition:.18s ease;
}

.recent-inquiry-card:hover{
 border-color:#bdcbb7;
 box-shadow:0 12px 28px rgba(39,34,27,.07);
 transform:translateY(-2px);
}

.recent-inquiry-top{
 display:flex;
 align-items:flex-start;
 justify-content:space-between;
 gap:16px;
}

.recent-date{
 display:block;
 margin-bottom:6px;
 color:var(--muted);
 font-size:11px;
}

.recent-service{
 display:block;
 color:var(--ink);
 font-size:19px;
 letter-spacing:-.03em;
}

.recent-status{
 flex:none;
 padding:8px 11px;
 border-radius:999px;
 background:#eaf0e7;
 color:var(--green);
 font-size:12px;
 font-weight:900;
}

.recent-inquiry-meta{
 display:grid;
 grid-template-columns:1fr 1.5fr;
 gap:10px;
 margin-top:16px;
}

.recent-inquiry-meta>span{
 padding:11px 12px;
 border-radius:7px;
 background:#fff;
 color:var(--muted);
 font-size:10px;
}

.recent-inquiry-meta strong{
 display:block;
 overflow:hidden;
 margin-top:5px;
 color:#3b3a36;
 font-size:12px;
 white-space:nowrap;
 text-overflow:ellipsis;
}

.recent-inquiry-card>button{
 width:100%;
 min-height:48px;
 margin-top:14px;
 border:0;
 border-radius:7px;
 background:var(--green);
 color:#fff;
 font-size:14px;
 font-weight:900;
 cursor:pointer;
}

.recent-actions{
 margin-top:20px;
 text-align:center;
}

.recent-actions a{
 color:var(--green);
 font-size:13px;
 font-weight:900;
}

@media(max-width:600px){
 .lookup-tabs{
  gap:5px;
 }

 .lookup-tab{
  padding:9px 6px;
  font-size:12px;
 }

 .recent-result{
  padding:23px 16px;
 }

 .recent-result-head h2{
  font-size:23px;
 }

 .recent-inquiry-top{
  flex-direction:column;
 }

 .recent-inquiry-meta{
  grid-template-columns:1fr;
 }

 .recent-status{
  align-self:flex-start;
 }
}
