diff --git a/src/main/resources/static/css/web/service/makeReservation.css b/src/main/resources/static/css/web/service/makeReservation.css
index 753770d..1cee355 100644
--- a/src/main/resources/static/css/web/service/makeReservation.css
+++ b/src/main/resources/static/css/web/service/makeReservation.css
@@ -1,459 +1,616 @@
-* {
- box-sizing: border-box;
- }
-
- body {
- font-family: 'Noto Sans KR', sans-serif;
- margin: 0;
- background: #fafafa;
- color: #222;
- height: 100vh;
- display: flex;
- flex-direction: column;
- }
+.fix_area {
+ min-width: 1200px;
+ width: 1200px;
+ margin: 0 auto;
+ padding: 0 16px;
+}
- /* Main container */
- .reservation-container {
- display: flex;
- max-width: 1280px !important;
- margin: 0 auto;
- gap: 20px;
- height: 100%;
- flex: 1;
- padding: 20px 0;
- margin-top:65px;
- }
+.contents_area{
+ margin-top:50px;
+ margin-bottom:30px;
+}
- .box {
- background: #fff;
- border-radius: 16px;
- box-shadow: 0 2px 8px rgba(0,0,0,0.06);
- padding: 24px 16px;
- flex: 1 1 0;
- min-width: 260px;
- display: flex;
- flex-direction: column;
- height: fit-content;
- min-height: 600px;
- }
+.reservation_ul{
+ display: flex;
+ gap: 20px;
+}
- .step-title {
- color: #b23c3c;
- font-weight: 700;
- font-size: 1.1em;
- margin-bottom: 12px;
- letter-spacing: 0.02em;
- transition: color 0.3s ease;
- }
+.reservation_ul>li{
+ width: calc((100% - 40px) / 3);
+ border-radius: 20px;
+ overflow: hidden;
+ box-shadow: 2px 2px 15px rgba(0, 0, 0, .05);
+ padding-right: 0;
+ padding-left: 0;
+
+}
- .step-title.completed {
- color: #008000 !important;
- }
+.section_div{
+ position: relative;
+ height: 800px;
+ background-color: #f5f5f5;
+ border: 1px solid #ddd;
+ overflow: hidden;
+}
- /* Service section */
- .service-list {
- flex: 1;
- margin-bottom: 24px;
- }
-
- .service-item {
- display: flex;
- justify-content: space-between;
- align-items: center;
- font-size: 1.1em;
- margin-bottom: 10px;
- }
-
- .service-item .del {
- cursor: pointer;
- color: #b23c3c;
- margin-left: 8px;
- font-size: 1.2em;
- transition: color 0.3s ease, opacity 0.3s ease;
- }
-
- .service-item .del:hover {
- color: #ff0000;
- }
-
- .service-item .del.disabled {
- color: #ccc;
- cursor: not-allowed;
- opacity: 0.5;
- }
-
- .service-item .del.disabled:hover {
- color: #ccc;
- }
-
- .service-item .price {
- font-weight: bold;
- color: #b23c3c;
- }
+.section_div_wrap {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background-color: #fff;
+}
- /* Service count indicator */
- .service-count-info {
- font-size: 0.85em;
- color: #888;
- margin-bottom: 8px;
- text-align: center;
- padding: 4px 8px;
- background: #f8f9fa;
- border-radius: 4px;
- }
+.tit-box_div{
+ position: relative;
+ padding: 1.6rem 2.8rem 0;
+ display: flex;
+ gap: 19px;
+ align-items: center;
+}
- .service-count-info.single {
- color: #ff8c00;
- background: #fff3e0;
- border: 1px solid #ffcc80;
- }
- .total {
- border-top: 1px solid #eee;
- margin-top: auto;
- padding-top: 16px;
- display: flex;
- justify-content: space-between;
- font-size: 1.1em;
- font-weight: bold;
- }
-
- .total .price {
- color: #b23c3c;
- }
-
- .total small {
- font-weight: normal;
- color: #888;
- font-size: 0.9em;
- margin-right: 8px;
- }
+.step_span{
+ color: #A73439;
+ font-size:2rem;
+}
- /* Calendar section */
- .calendar-box {
- margin-bottom: 20px;
- }
-
- .calendar-header {
- display: flex;
- justify-content: center;
- align-items: center;
- gap: 8px;
- margin-bottom: 8px;
- }
-
- .calendar-header button {
- background: none;
- border: none;
- font-size: 1.2em;
- cursor: pointer;
- color: #b23c3c;
- padding: 0 6px;
- }
-
- .calendar-table {
- width: 100%;
- border-collapse: collapse;
- text-align: center;
- margin-bottom: 8px;
- }
-
- .calendar-table th,
- .calendar-table td {
- width: 2em;
- height: 2em;
- padding: 2px;
- font-size: 1em;
- border-radius: 50%;
- cursor: pointer;
- transition: background 0.15s;
- }
-
- .calendar-table th {
- color: #b23c3c;
- font-weight: 500;
- background: none;
- }
-
- .calendar-table td.selected {
- background: #b23c3c;
- color: #fff;
- }
-
- .calendar-table td.today {
- border: 1.5px solid #b23c3c;
- }
-
- .calendar-table td:not(.selected):hover {
- background: #f5eaea;
- }
-
- .calendar-table td.disabled {
- color: #ccc;
- pointer-events: none;
- background: none;
- }
+.reservation-box_div {
+ position: absolute;
+ top: 60px;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ padding: 1rem;
+}
- /* Time slots */
- .time-slots {
- display: flex;
- flex-wrap: wrap;
- gap: 8px;
- margin-bottom: 12px;
- }
-
- .time-btn {
- flex: 1 0 30%;
- min-width: 80px;
- padding: 8px 0;
- border: 1px solid #b23c3c;
- border-radius: 20px;
- background: #fff;
- color: #b23c3c;
- font-size: 1em;
- cursor: pointer;
- transition: background 0.15s, color 0.15s;
- }
-
- .time-btn.selected,
- .time-btn:active {
- background: #b23c3c;
- color: #fff;
- }
-
- .time-btn:disabled {
- color: #ccc;
- border-color: #eee;
- background: #f5f5f5;
- cursor: not-allowed;
- }
+.main-item-info{
+ position: relative;
+ height: 100%;
+}
- .person-count {
- margin-top: 12px;
- font-size: 0.98em;
- color: #888;
- }
+.w_top_select {
+ height: calc(100% - 155px);
+ overflow-y: auto;
+ overflow-x: hidden;
+}
- /* Form section */
- .form-group {
- margin-bottom: 16px;
- }
-
- .form-group label {
- display: block;
- margin-bottom: 4px;
- font-weight: 500;
- }
-
- .form-group input,
- .form-group textarea {
- width: 100%;
- padding: 8px 10px;
- border: 1px solid #ddd;
- border-radius: 6px;
- font-size: 1em;
- resize: none;
- transition: border-color 0.3s ease;
- }
-
- .form-group textarea {
- min-height: 60px;
- }
+.service-list-wrap {
+ padding-top: .666rem;
+ position: relative;
+ height: 100%;
+}
- .checkbox-group {
- display: flex;
- align-items: center;
- margin-bottom: 18px;
- font-size: 0.98em;
- }
-
- .checkbox-group input[type="checkbox"] {
- margin-right: 8px;
- accent-color: #b23c3c;
- }
+.service-list-wrap li{
+ width:100%;
+}
- .submit-btn {
- width: 100%;
- padding: 14px 0;
- background: #ddd;
- color: #888;
- border: none;
- border-radius: 8px;
- font-size: 1.1em;
- font-weight: bold;
- cursor: not-allowed;
- transition: all 0.3s ease;
- }
-
- .submit-btn.step-progress {
- background: linear-gradient(45deg, #ddd, #bbb);
- color: #666;
- font-size: 0.95em;
- }
-
- .submit-btn.ready {
- background: #b23c3c;
- color: #fff;
- cursor: pointer;
- animation: pulse 2s infinite;
- }
+.s_item{
+ padding-bottom:20px;
+}
- @keyframes pulse {
- 0% { transform: scale(1); }
- 50% { transform: scale(1.02); }
- 100% { transform: scale(1); }
- }
+.w_top_select .selt_info_wrap:first-child {
+ padding-top: 0;
+}
- /* Phone message styles (common.js PhoneValidator용) */
- .phone-message {
- font-size: 12px;
- margin-top: 5px;
- padding: 4px 8px;
- border-radius: 4px;
- font-weight: 500;
- transition: all 0.3s ease;
- }
-
- .phone-message.error {
- color: #ff0000;
- background-color: #ffebee;
- border: 1px solid #ffcdd2;
- }
-
- .phone-message.warning {
- color: #ff8c00;
- background-color: #fff3e0;
- border: 1px solid #ffcc80;
- }
-
- .phone-message.success {
- color: #008000;
- background-color: #f1f8e9;
- border: 1px solid #c8e6c9;
- }
-
- .phone-message.info {
- color: #2196f3;
- background-color: #e3f2fd;
- border: 1px solid #90caf9;
- }
+.w_top_select .selt_info_wrap {
+ padding: 20px 0;
+ display: flex;
+ align-items: center;
+ border-bottom: 1px solid #ddd;
+
+}
- /* Birth date message styles */
- .birth-date-message {
- font-size: 12px;
- margin-top: 5px;
- padding: 4px 8px;
- border-radius: 4px;
- font-weight: 500;
- transition: all 0.3s ease;
- }
-
- .birth-date-message.error {
- color: #ff0000;
- background-color: #ffebee;
- border: 1px solid #ffcdd2;
- }
-
- .birth-date-message.warning {
- color: #ff8c00;
- background-color: #fff3e0;
- border: 1px solid #ffcc80;
- }
-
- .birth-date-message.success {
- color: #008000;
- background-color: #f1f8e9;
- border: 1px solid #c8e6c9;
- }
-
- .birth-date-message.info {
- color: #2196f3;
- background-color: #e3f2fd;
- border: 1px solid #90caf9;
- }
- /* Responsive Design */
- @media (max-width: 1199.98px) {
- .reservation-container {
- max-width: 960px !important;
- gap: 16px;
- padding: 20px 15px;
- }
- .box {
- padding: 20px 14px;
- }
- }
+.selt_info_wrap {
+ position: relative;
+ min-height: 4.5rem;
+}
- @media (max-width: 991.98px) {
- .reservation-container {
- max-width: 720px !important;
- flex-direction: column;
- gap: 24px;
- height: auto;
- padding: 20px 15px;
- }
- .box {
- min-height: unset;
- min-width: unset;
- }
-
- }
+.w_top_select .selt_info_wrap .selt {
+ padding-top: 0;
+ padding-left: 10px;
+ padding-right: 0.5em;
+ width: 61%;
+}
- @media (max-width: 767.98px) {
- .reservation-container {
- max-width: 540px !important;
- padding: 15px;
- gap: 20px;
- }
- .box {
- padding: 16px 12px;
- }
- .calendar-table th,
- .calendar-table td {
- width: 1.8em;
- height: 1.8em;
- }
- .time-btn {
- min-width: 70px;
- font-size: 0.95em;
- }
- }
+.item_subprice {
+ min-height: 42px;
+}
+
+.item_subprice>span{
+ font-size:1.8rem;
+}
+
+
+.w_top_select .selt_info_wrap .info {
+ position: relative;
+ padding-right: 30px;
+ width: 45%;
+ top: 0.7rem;
+ width: 9em;
+}
+
+.w_top_select .selt_info_wrap .info div{
+ display:block;
+ text-align:right;
+}
+
+.w_top_select .selt_info_wrap .info button {
+ position: absolute;
+ top: 1rem;
+ right: 0;
+}
+
+.bn{
+ border:none;
+ background-color:#fff;
+}
+
+button > img {
+ display: block;
+}
+
+img {
+ border-style: none;
+}
+
+.d-block{
+ display:block;
+}
+
+.original_price {
+ color: #757575;
+ opacity: 0.7;
+}
+
+.discount_price {
+ font-family: 'Campton', Sans-serif;
+ font-weight: 600;
+ font-size:2rem;
+ color: #A73439;
+}
+
+
+
+.section-botton_div .total {
+ background-color: #F5F5F5;
+ border-top: 2px solid #A73439;
+}
+
+.section-botton_div .total {
+ position: relative;
+ background-color: #e6e6e6;
+ padding: 20px 20px 15px;
+ font-size: 16px;
+}
+
+.border-t.dk {
+ border-color: #221e1f;
+}
+
+.section-botton_div{
+ position:absolute;
+ bottom:0;
+ left:0;
+ width:100%;
+}
+
+
+.section-botton_div .total .left {
+ position: absolute;
+ top: 2.5rem;
+ left: 1.5rem;
+ font-size:1.8rem;
+}
+
+.section-botton_div .total .right {
+ text-align: right;
+ padding-left: 5em;
+ padding-bottom: 1rem;
+ line-height: 1.5rem;
+}
+
+
+.section-botton_div .total .txt-small {
+ font-size: 9pt;
+ line-height: 1.5em;
+ opacity: 0.7;
+ font-weight: 400;
+ letter-spacing: -1px;
+}
+
+.total_price {
+ font-family: 'Campton', Sans-serif;
+ font-weight: 600;
+ color: #A73439;
+}
+
+.calender_div{
+ position:relative;
+ padding:30px;
+ height:460px;
+}
+
+.tui-datepicker {
+ position:relative;
+}
+
+.customer-info_div{
+ padding:20px 30px;
+ height:460px;
+}
+.customer-info_div .form-label{
+ float: none;
+ padding-top: 0;
+ width: 100%;
+ display: block;
+ margin-bottom: 4px;
+ color: #444;
+ font-weight: 500;
+ font-size: 2rem;
+ margin-top: 0;
+}
+
+.form-box{
+ margin-top:10px;
+}
+
+.form-box > .right_sec {
+ float: none;
+ width: 100%;
+ flex-wrap: wrap;
+ gap: 8px 4px;
+}
+
+.fm_ctrl {
+ display: block;
+ width: 100%;
+ padding: 7px 5px !important;
+ font-size: 1.7rem;
+ line-height: 1;
+ background-color: #fff;
+ background-clip: padding-box;
+ border: 1px solid #ced4da;
+ border-radius:3px;
+ transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
+}
+
+.__counsl_wrap .wsnwp {
+ position: relative;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ border: 1px solid #A73439;
+ border-radius: 5px;
+ overflow: hidden;
+}
+
+.__counsl_wrap .wsnwp > label {
+ width: 50%;
+ text-align: center;
+ margin-bottom:0px !important;
+}
+
+._cs-radio input[type=radio]:not(old):checked + .r_visible > span {
+ background-color: #A73439;
+ color: #FFFFFF;
+}
+
+._cs-radio input[type=radio] + .r_visible > span {
+ background-color: #FFFFFF;
+ display: block;
+ width: 100%;
+ height: 100%;
+ padding: 7px 0;
+ color: #A73439;
+ cursor: pointer;
+}
+
+._cs-radio input[type=radio]:not(old) {
+ width: 0;
+ margin: 0;
+ padding: 0;
+ opacity: 0;
+ font-size: 1em;
+}
+
+._cs-radio input[type="radio"] {
+ display: none;
+}
+
+.request_memo{
+ width:100%;
+ font-size: 1.7rem;
+ padding:3px;
+}
+
+.section-bottom_div{
+ position:relative;
+ width:100%;
+}
+
+
+
+.b-border{
+ border-bottom:solid 1px #ddd;
+}
+
+.time_div{
+ margin:15px 0px;
+}
+.time-grid {
+ display: grid;
+ grid-template-columns: repeat(4, 1fr);
+ gap: 16px 12px; /* 세로, 가로 간격 */
+ max-width: 350px;
+ margin: 0 auto;
+}
+.time-btn {
+ display: inline-block;
+ width: 100%;
+ padding: 10px 0;
+ border: 1px solid #bbb;
+ border-radius: 20px;
+ background: #fff;
+ color: #444;
+ font-size: 1.3rem;
+ text-align: center;
+ cursor: pointer;
+ transition: background 0.2s, color 0.2s, border 0.2s;
+}
+.time-btn.active {
+ background: #007bff;
+ color: #fff;
+ border-color: #007bff;
+}
+
+
+.tui-calendar-date.tui-calendar-sun {
+ color: #e74c3c !important;
+}
+
+/* 토요일: 회색 */
+.tui-calendar-date.tui-calendar-sat {
+ color: #0000ff !important;
+}
+
+.tui-datepicker-type-date{
+ width:100% !important;
+}
+
+/* 달력 전체 폰트 크기 및 셀 크기 키우기 */
+.tui-datepicker {
+ width:83%;
+ font-size: 22px !important; /* 달력 전체 폰트 크기 */
+}
+
+.tui-calendar {
+ width:100% !important;
+ font-size: 22px !important; /* 달력 내부 폰트 크기 */
+}
+
+.tui-calendar-date {
+ font-size: 22px !important; /* 날짜 숫자 크기 */
+ min-width: 48px;
+ min-height: 48px;
+ line-height: 48px;
+}
+
+/* 요일(일~토) 폰트 크기 */
+.tui-calendar-day {
+ font-size: 20px !important;
+}
+
+/* 달력 헤더(년/월) 폰트 크기 */
+.tui-calendar-header {
+ font-size: 24px !important;
+}
+
+/* 네비게이션(이전/다음) 버튼 크기 */
+.tui-calendar-btn {
+ font-size: 24px !important;
+ width: 40px;
+ height: 40px;
+}
+
+.selected-time_div{
+ padding:10px 30px;
+ text-align:center;
+}
+
+.selected-time_div>span{
+ display:inline-block;
+
+}
+
+.selected-time_div .tit_span{
+ color:#6a6a6a;
+ font-size:1.5rem;
+ width:20%;
+ text-align:center;
+}
+.person-cnt_span{
+ color:#0080ff;
+ font-size:2rem;
+}
+.person-cnt_span>b{
+ color:#6a6a6a;
+ font-size:1.5rem;
+}
+
+.checkbox-area_div{
+ padding:30px;
+ min-height:240px;
+}
+
+.btn-primary {
+ border: 1px solid #a73439;
+ background-color: #a73439;
+ color: #fff;
+ width: 100%;
+ height: 56px;
+}
+
+.disabled-sunday {
+ color: #e74c3c !important; /* 빨간색 */
+ background: #f9d6d5 !important; /* 연한 빨간 배경 (선택) */
+ cursor: not-allowed !important;
+}
+
+.height850{
+ height: 850px;
+}
+
+/* ====== 반응형 웹 미디어 쿼리 추가 ====== */
+
+/* 1. PC 기준(1200px 이상) */
+@media (min-width: 1200px) {
+ .fix_area {
+ min-width: 1200px;
+ width: 1200px;
+ margin: 0 auto;
+ padding: 0 16px;
+ }
+}
+
+/* 2. 태블릿(1200px 미만 ~ 768px 이상) */
+@media (max-width: 1199px) and (min-width: 768px) {
+ .fix_area {
+ min-width: 100%;
+ width: 100%;
+ padding: 0 10px;
+ }
+ .reservation_ul {
+ gap: 12px;
+ }
+ .reservation_ul > li {
+ width: calc((100% - 24px) / 3);
+ border-radius: 16px;
+ }
+ .section_div {
+ height: 650px;
+ }
+ .calender_div,
+ .customer-info_div,
+ .checkbox-area_div {
+ padding: 16px;
+ height: 350px;
+ }
+ .selected-time_div {
+ padding: 8px 10px;
+ }
+ .btn-primary {
+ height: 48px;
+ font-size: 1.2rem;
+ }
+ .time-grid {
+ grid-template-columns: repeat(3, 1fr);
+ max-width: 270px;
+ }
+}
+
+/* 3. 모바일(767px 이하) */
+@media (max-width: 767px) {
+ .fix_area {
+ min-width: 100%;
+ width: 100%;
+ padding: 0 4px;
+ }
+ .reservation_ul {
+ flex-direction: column;
+ gap: 12px;
+ }
+ .reservation_ul > li {
+ width: 100%;
+ border-radius: 12px;
+ }
+ .section_div {
+ height: auto;
+ min-height: 500px;
+ padding: 0;
+ }
+ .section_div_wrap,
+ .reservation-box_div,
+ .main-item-info,
+ .service-list-wrap,
+ .customer-info_div,
+ .calender_div,
+ .checkbox-area_div {
+ position: static;
+ width: 100%;
+ height: auto;
+ padding: 10px 4px;
+ }
+ .tit-box_div {
+ padding: 1rem 1rem 0;
+ gap: 10px;
+ flex-direction: column;
+ align-items: flex-start;
+ }
+ .step_span,
+ .form-label,
+ .item_subprice > span,
+ .discount_price,
+ .total_price,
+ .person-cnt_span {
+ font-size: 1.2rem !important;
+ }
+ .w_top_select .selt_info_wrap {
+ flex-direction: column;
+ align-items: flex-start;
+ padding: 10px 0;
+ }
+ .w_top_select .selt_info_wrap .selt,
+ .w_top_select .selt_info_wrap .info {
+ width: 100%;
+ padding: 0;
+ text-align: left;
+ }
+ .section-botton_div .total {
+ padding: 10px 4px 10px;
+ font-size: 1rem;
+ }
+ .section-botton_div .total .left,
+ .section-botton_div .total .right {
+ position: static;
+ padding: 0;
+ font-size: 1rem;
+ text-align: left;
+ }
+ .selected-time_div {
+ padding: 4px 0;
+ font-size: 1rem;
+ }
+ .selected-time_div .tit_span {
+ font-size: 1rem;
+ width: auto;
+ }
+ .btn-primary {
+ height: 44px;
+ font-size: 1rem;
+ }
+ .time-grid {
+ grid-template-columns: repeat(2, 1fr);
+ max-width: 180px;
+ gap: 8px 6px;
+ }
+ .tui-datepicker,
+ .tui-calendar {
+ width: 100% !important;
+ font-size: 1rem !important;
+ }
+ .tui-calendar-date,
+ .tui-calendar-day,
+ .tui-calendar-header,
+ .tui-calendar-btn {
+ font-size: 1rem !important;
+ min-width: 32px;
+ min-height: 32px;
+ line-height: 32px;
+ }
+}
+
+/* ====== 끝 ====== */
- @media (max-width: 575.98px) {
- .reservation-container {
- max-width: 100% !important;
- padding: 10px;
- gap: 16px;
- }
- .box {
- padding: 16px 8px;
- }
- .calendar-table th,
- .calendar-table td {
- width: 1.5em;
- height: 1.5em;
- font-size: 0.9em;
- }
- .time-btn {
- min-width: 60px;
- font-size: 0.9em;
- padding: 6px 0;
- }
- .step-title {
- font-size: 1em;
- }
- .service-item {
- font-size: 1em;
- }
- }
- .calendar-table td.disabled {
- color: #ccc;
- cursor: not-allowed;
- pointer-events: none;
- background: none !important;
- }
-
- .calendar-table td.disabled:hover {
- background: none !important;
- cursor: not-allowed !important;
- }
\ No newline at end of file
diff --git a/src/main/resources/templates/web/service/makeReservation.html b/src/main/resources/templates/web/service/makeReservation.html
index ad9336c..1bff610 100644
--- a/src/main/resources/templates/web/service/makeReservation.html
+++ b/src/main/resources/templates/web/service/makeReservation.html
@@ -5,7 +5,467 @@
layout:decorate="~{/web/layout/layout}">
-
+
@@ -107,10 +567,7 @@
'2025-10-07', // 추석연휴
'2025-10-08', // 추석 대체휴일
'2025-10-09', // 한글날
- '2025-01-01', // 신정
- '2025-12-18', // 신정
- '2025-12-19', // 신정
- '2025-12-20', // 신정
+ '2026-01-01', // 신정
// 필요에 따라 날짜 추가
];