@charset "utf-8";

*{margin:0;padding:0;box-sizing:border-box}
html{
    scroll-behavior:smooth;
    scroll-padding-top:92px;
    width:100%;
    max-width:100%;
    overflow-x:hidden;
}
body{
    font-family:"Pretendard","Noto Sans KR",sans-serif;
    color:#161616;
    background:#fff;
    line-height:1.6;
    width:100%;
    max-width:100%;
    overflow-x:hidden;
}
a{text-decoration:none;color:inherit}
img{display:block;max-width:100%;height:auto}
button,input,select,textarea{font:inherit}

.mobile-only{display:none}

#visual,
#about,
#products,
#gallery,
#review,
#process,
#contact{
    scroll-margin-top:92px;
}

.container{
    width:100%;
    max-width:1280px;
    margin:0 auto;
    padding:0 24px;
}

.section{padding:110px 0}

.section-head{margin-bottom:54px}
.section-head.center{text-align:center}
.section-head h2{
    font-size:46px;
    line-height:1.2;
    margin-bottom:14px;
    letter-spacing:-0.03em;
}
.section-head p{
    color:#666;
    font-size:18px;
}

.eyebrow{
    display:inline-block;
    margin-bottom:14px;
    font-size:13px;
    font-weight:800;
    letter-spacing:0.18em;
    color:#f97316;
}
.eyebrow.light{color:#ffe9d6}

.btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:56px;
    padding:0 28px;
    border-radius:999px;
    font-weight:700;
    transition:.25s ease;
    border:0;
    cursor:pointer;
    white-space:nowrap;
}
.btn-primary{
    background:linear-gradient(135deg,#ff8a1d 0%,#ff6a00 100%);
    color:#fff;
    box-shadow:0 14px 30px rgba(255,106,0,.22);
}
.btn-primary:hover{transform:translateY(-2px)}
.btn-line{
    border:1px solid #d8d8d8;
    background:#fff;
    color:#161616;
}
.btn-line:hover{border-color:#ff7a11;color:#ff7a11}
.btn-dark{
    background:#111;
    color:#fff;
}
.btn-white{
    background:#fff;
    color:#111;
}
.btn-white-line{
    border:1px solid rgba(255,255,255,.45);
    color:#fff;
    background:transparent;
}
.full{width:100%}

.site-header{
    position:fixed;
    top:0;
    left:0;
    width:100%;
    z-index:1000;
    background:rgba(255,255,255,.78);
    backdrop-filter:blur(16px);
    border-bottom:1px solid rgba(0,0,0,.05);
    transition:.25s ease;
}
.site-header.scrolled{
    box-shadow:0 10px 30px rgba(0,0,0,.06);
}
.header-inner{
    min-height:84px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    min-width:0;
}
.brand{
    display:flex;
    align-items:center;
    gap:12px;
    min-width:0;
    flex:1;
}
.brand-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    height:36px;
    padding:0 14px;
    border-radius:999px;
    background:#fff2e8;
    color:#ff6a00;
    font-size:12px;
    font-weight:800;
    letter-spacing:.12em;
    flex-shrink:0;
}
.brand-text{
    font-size:22px;
    font-weight:800;
    letter-spacing:-0.03em;
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.nav{
    display:flex;
    align-items:center;
    gap:34px;
}
.nav a{
    font-size:16px;
    font-weight:600;
    color:#222;
}
.nav a:hover{color:#ff6a00}
.header-actions{
    display:flex;
    align-items:center;
    gap:12px;
}
.header-link-btn{
    min-height:56px;
    padding:0 28px;
    font-size:inherit;
}
.menu-btn{
    display:none;
    width:44px;
    height:44px;
    border:0;
    border-radius:12px;
    background:#f5f5f5;
    cursor:pointer;
    font-size:22px;
    flex-shrink:0;
}
.mobile-nav{
    display:none;
    padding:0 24px 18px;
    background:#fff;
    border-top:1px solid rgba(0,0,0,.05);
}
.mobile-nav a{
    display:block;
    padding:14px 0;
    border-bottom:1px solid #f1f1f1;
    font-weight:600;
}
.mobile-nav.open{display:block}

.hero{
    position:relative;
    overflow:hidden;
    padding:160px 0 90px;
    background:
        radial-gradient(circle at 10% 20%, rgba(255,138,29,.12), transparent 25%),
        radial-gradient(circle at 90% 10%, rgba(255,210,176,.45), transparent 22%),
        linear-gradient(180deg,#fff7f1 0%, #ffffff 100%);
}
.hero-grid{
    display:grid;
    grid-template-columns:1.05fr .95fr;
    gap:46px;
    align-items:center;
}
.hero-copy,
.hero-visual,
.contact-copy,
.contact-box,
.contact-list-box,
.contact-list-item,
.review-card-main,
.product-copy,
.product-image,
.cta-inner > div{
    min-width:0;
}
.hero-copy h1{
    font-size:68px;
    line-height:1.08;
    letter-spacing:-0.05em;
    margin-bottom:20px;
}
.hero-desc{
    max-width:620px;
    color:#5b5b5b;
    font-size:19px;
    margin-bottom:34px;
}
.hero-cta{
    display:flex;
    flex-wrap:wrap;
    gap:14px;
    margin-bottom:34px;
}
.hero-points{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:14px;
}
.point-card{
    padding:22px 20px;
    border-radius:22px;
    background:rgba(255,255,255,.78);
    border:1px solid rgba(0,0,0,.05);
    box-shadow:0 12px 30px rgba(0,0,0,.04);
}
.point-card strong{
    display:block;
    margin-bottom:6px;
    font-size:16px;
}
.point-card span{
    color:#666;
    font-size:14px;
}

.hero-visual{
    position:relative;
    min-height:620px;
    height:620px;
}
.visual-main{
    position:absolute;
    top:40px;
    left:30px;
    right:0;
    bottom:0;
    border-radius:34px;
    overflow:hidden;
    box-shadow:0 40px 70px rgba(0,0,0,.12);
    background:#f3f3f3;
}
.hero-slider{
    position:relative;
    width:100%;
    height:100%;
}
.hero-slide{
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
    object-fit:cover;
    opacity:0;
    transition:opacity 1s ease-in-out;
}
.hero-slide.active{
    opacity:1;
}

.hero-roll-box{
    position:absolute;
    top:40px;
    left:30px;
    right:0;
    bottom:0;
    border-radius:34px;
    overflow:hidden;
    background:#eee;
    box-shadow:0 40px 70px rgba(0,0,0,.12);
}
.hero-roll-img{
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    opacity:0;
    transition:opacity 1s ease-in-out;
}
.hero-roll-img.active{
    opacity:1;
}

.trust-strip{
    padding:26px 0;
    background:#111;
}
.trust-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:18px;
}
.trust-item{
    color:#fff;
    min-width:0;
}
.trust-item strong{
    display:block;
    margin-bottom:6px;
    font-size:16px;
}
.trust-item span{
    color:rgba(255,255,255,.68);
    font-size:14px;
}

.about{background:#fff}
.reason-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:22px;
}
.reason-card{
    position:relative;
    padding:34px 28px;
    border-radius:28px;
    background:#fff;
    border:1px solid #efefef;
    box-shadow:0 18px 40px rgba(0,0,0,.04);
}
.reason-num{
    width:42px;
    height:42px;
    border-radius:50%;
    background:#fff2e8;
    color:#ff6a00;
    display:flex;
    align-items:center;
    justify-content:center;
    font-weight:800;
    margin-bottom:18px;
}
.reason-card h3{
    font-size:24px;
    line-height:1.3;
    margin-bottom:12px;
    letter-spacing:-0.03em;
}
.reason-card p{color:#666}

.products{
    background:linear-gradient(180deg,#fffaf6 0%,#ffffff 100%);
}
.product-showcase{
    display:flex;
    flex-direction:column;
    gap:30px;
}
.product-block{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:34px;
    align-items:center;
    padding:34px;
    border-radius:34px;
    background:#fff;
    border:1px solid #f0ece8;
    box-shadow:0 22px 50px rgba(0,0,0,.05);
}
.product-block.reverse .product-image{order:2}
.product-block.reverse .product-copy{order:1}

.product-image{
    min-height:390px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:20px;
    border-radius:28px;
    background:linear-gradient(135deg,#fff4ea 0%,#fffaf6 100%);
}
.product-image.bus-bg{
    background:linear-gradient(135deg,#fff7e9 0%,#fffdf8 100%);
}
.product-image img{
    max-height:380px;
    object-fit:contain;
}
.product-copy{
    padding:10px 8px;
}
.product-tag{
    display:inline-flex;
    padding:8px 14px;
    border-radius:999px;
    background:#111;
    color:#fff;
    font-size:12px;
    font-weight:800;
    letter-spacing:.12em;
    margin-bottom:18px;
}
.product-copy h3{
    font-size:42px;
    line-height:1.15;
    letter-spacing:-0.04em;
    margin-bottom:12px;
}
.product-lead{
    font-size:20px;
    color:#444;
    margin-bottom:20px;
}
.product-list{
    list-style:none;
    margin-bottom:28px;
}
.product-list li{
    position:relative;
    padding-left:22px;
    margin-bottom:10px;
    color:#5d5d5d;
}
.product-list li:before{
    content:"•";
    position:absolute;
    left:0;
    top:0;
    color:#ff6a00;
    font-weight:800;
}
.product-btns{
    display:flex;
    gap:12px;
    flex-wrap:wrap;
}

.gallery-grid{
    display:grid;
    grid-template-columns:1.1fr 1fr 1fr;
    grid-auto-rows:280px;
    gap:18px;
}
.gallery-item,
.gallery-item img{
    width:100%;
    height:100%;
}
.gallery-item{
    overflow:hidden;
    border-radius:28px;
    box-shadow:0 18px 40px rgba(0,0,0,.06);
}
.gallery-item img{
    object-fit:cover;
    transition:transform .35s ease;
}
.gallery-item:hover img{transform:scale(1.04)}
.gallery-item.large{grid-row:span 2}
.gallery-item.wide{grid-column:span 2}

/* 기존 정적 후기 섹션 */
.reviews{
    background:#111;
}
.reviews .section-head h2,
.reviews .section-head p{
    color:#fff;
}
.review-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:22px;
}
.review-card{
    padding:30px;
    border-radius:28px;
    background:rgba(255,255,255,.06);
    border:1px solid rgba(255,255,255,.08);
    color:#fff;
}
.review-card p{
    margin:16px 0 22px;
    color:rgba(255,255,255,.78);
    min-height:120px;
}
.stars{
    color:#ffb347;
    letter-spacing:.18em;
    font-size:18px;
}

/* 메인페이지 동적 후기 섹션 */
.review-section{
    background:#111;
    color:#fff;
    padding:50px 0 50px;
}
.review-section .section-head{
    margin-bottom:38px;
}
.review-section .section-head h2,
.review-section .section-head p,
.review-section .eyebrow{
    color:#fff;
}
.review-head{
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:20px;
}
.review-head-actions{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
}
.review-write-btn,
.review-more-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:120px;
    height:44px;
    padding:0 18px;
    border-radius:999px;
    font-size:14px;
    font-weight:700;
    transition:all .2s ease;
}
.review-write-btn{
    background:#fff;
    color:#111;
    border:1px solid #fff;
}
.review-write-btn:hover{
    background:#f2f2f2;
}
.review-more-btn{
    background:transparent;
    color:#fff;
    border:1px solid rgba(255,255,255,0.3);
}
.review-more-btn:hover{
    border-color:#fff;
}
.review-grid-main{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:18px;
    margin-top:16px;
}
.review-card-main{
    display:block;
    background:#1b1b1b;
    border:1px solid rgba(255,255,255,.08);
    border-radius:18px;
    overflow:hidden;
    transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.review-card-main:hover{
    transform:translateY(-3px);
    box-shadow:0 14px 28px rgba(0,0,0,.28);
    border-color:rgba(255,255,255,.18);
}
.review-thumb-main{
    width:90%;
    aspect-ratio:1 / 0.85;
    background:#2a2a2a;
    overflow:hidden;
    margin:14px auto 10px;
    border-radius:14px;
}
.review-thumb-main img{
    width:100%;
    height:100%;
    object-fit:cover;
}
.review-thumb-empty{
    width:100%;
    height:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#aaa;
    font-size:13px;
    background:#2a2a2a;
}
.review-card-main-body{
    padding:16px 16px 18px;
}
.review-stars-main{
    color:#f5b301;
    font-size:15px;
    letter-spacing:1px;
    margin-bottom:6px;
}
.review-card-main-body h3{
    font-size:17px;
    line-height:1.35;
    letter-spacing:-0.02em;
    margin-bottom:8px;
    color:#fff;
}
.review-excerpt-main{
    font-size:13px;
    color:#cfcfcf;
    line-height:1.55;
    margin-bottom:12px;
    display:-webkit-box;
    -webkit-line-clamp:3;
    -webkit-box-orient:vertical;
    overflow:hidden;
    min-height:60px;
}
.review-meta-main{
    display:flex;
    justify-content:space-between;
    gap:10px;
    font-size:12px;
    color:#9d9d9d;
}
.empty-review-main{
    grid-column:1 / -1;
    padding:44px 18px;
    border:1px solid rgba(255,255,255,.08);
    border-radius:18px;
    text-align:center;
    color:#bbb;
    background:#1a1a1a;
    font-size:14px;
}

.process-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:22px;
}
.process-card{
    padding:30px 26px;
    border-radius:28px;
    background:#fff;
    border:1px solid #ededed;
    box-shadow:0 14px 30px rgba(0,0,0,.04);
}
.process-card span{
    display:inline-block;
    margin-bottom:14px;
    color:#ff6a00;
    font-size:13px;
    font-weight:800;
    letter-spacing:.12em;
}
.process-card h3{
    font-size:24px;
    margin-bottom:10px;
}
.process-card p{
    color:#666;
}

.cta-banner{
    padding:46px 0;
    background:linear-gradient(135deg,#ff8e24 0%,#ff6a00 100%);
}
.cta-inner{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
}
.cta-inner h2{
    color:#fff;
    font-size:42px;
    line-height:1.2;
    letter-spacing:-0.04em;
    margin-bottom:10px;
}
.cta-inner p{color:rgba(255,255,255,.85)}
.cta-actions{
    display:flex;
    gap:12px;
    flex-wrap:wrap;
}

.contact-grid{
    display:grid;
    grid-template-columns:1fr .95fr;
    gap:34px;
    align-items:start;
}
.contact-copy h2{
    font-size:48px;
    line-height:1.2;
    letter-spacing:-0.04em;
    margin-bottom:14px;
}
.contact-lead{
    color:#555;
    font-size:18px;
    margin-bottom:22px;
}
.contact-info{
    display:grid;
    gap:18px;
}
.contact-info div{
    padding:20px 0;
    border-bottom:1px solid #ececec;
}
.contact-info strong{
    display:block;
    margin-bottom:6px;
    font-size:15px;
}
.contact-info span{
    color:#666;
    font-size:18px;
}

.contact-list-box{
    margin-top:18px;
    background:#fff;
    border-radius:18px;
    padding:16px;
    box-shadow:0 8px 20px rgba(0,0,0,.05);
    border:1px solid #f0f0f0;
    width:100%;
    max-width:100%;
    min-width:0;
}
.contact-list-box h3{
    margin:0 0 12px;
    font-size:18px;
    color:#222;
}
.contact-list{
    display:flex;
    flex-direction:column;
    gap:8px;
    width:100%;
    max-width:100%;
    min-width:0;
}
.contact-list-item{
    padding:10px 12px;
    background:#fafafa;
    border:1px solid #ececec;
    border-radius:12px;
    transition:all .2s ease;
    width:100%;
    max-width:100%;
    min-width:0;
}
.contact-list-item:hover{
    background:#fff;
    border-color:#dcdcdc;
}
.contact-list-top{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    margin-bottom:4px;
    min-width:0;
}
.contact-list-top strong{
    font-size:14px;
    font-weight:700;
    color:#222;
    line-height:1.2;
    min-width:0;
}
.contact-list-top span{
    display:inline-block;
    padding:3px 8px;
    border-radius:999px;
    background:#222;
    color:#fff;
    font-size:11px;
    line-height:1.2;
    white-space:nowrap;
    max-width:100%;
    min-width:0;
}
.contact-list-text{
    margin:0;
    font-size:13px;
    color:#555;
    line-height:1.45;
    white-space:normal;
    word-break:break-word;
    overflow-wrap:break-word;
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
}
.contact-empty{
    padding:16px;
    border-radius:12px;
    border:1px dashed #ddd;
    text-align:center;
    color:#888;
    background:#fafafa;
    font-size:13px;
}

.contact-box{
    padding:34px;
    border-radius:30px;
    background:#fff8f2;
    border:1px solid #ffe4cf;
}
.contact-box h3{
    font-size:28px;
    margin-bottom:18px;
}
.form-row{margin-bottom:14px}
.form-row input,
.form-row select,
.form-row textarea{
    width:100%;
    max-width:100%;
    height:56px;
    padding:0 18px;
    border:1px solid #e3d8d0;
    border-radius:16px;
    background:#fff;
    outline:none;
}
.form-row textarea{
    height:150px;
    padding:16px 18px;
    resize:none;
}

.site-footer{
    padding:44px 0;
    background:#121212;
    color:#cfcfcf;
}
.footer-inner{
    display:flex;
    justify-content:space-between;
    gap:30px;
}
.footer-brand strong{
    display:block;
    font-size:26px;
    color:#fff;
    margin-bottom:10px;
}
.footer-meta p{
    margin-bottom:6px;
    font-size:14px;
}

/* 서브페이지 공통 */
.subpage-wrap{
    padding-top:120px;
    min-height:calc(100vh - 200px);
}

/* 후기 상세 */
.review-view-page{
    padding:40px 0 80px;
    background:#fff;
}
.review-view-wrap{
    max-width:920px;
    margin:0 auto;
    padding:40px;
    border:1px solid #efefef;
    border-radius:28px;
    background:#fff;
    box-shadow:0 14px 36px rgba(0,0,0,.05);
}
.review-view-head{
    margin-bottom:28px;
    padding-bottom:22px;
    border-bottom:1px solid #ededed;
}
.review-stars.big{
    margin-bottom:10px;
    color:#f5b301;
    font-size:24px;
    letter-spacing:2px;
}
.review-view-head h1{
    font-size:36px;
    line-height:1.25;
    letter-spacing:-0.03em;
    margin-bottom:14px;
    color:#161616;
}
.review-view-meta{
    display:flex;
    flex-wrap:wrap;
    gap:14px;
    color:#777;
    font-size:14px;
}
.review-main-thumb{
    margin-bottom:28px;
    border-radius:22px;
    overflow:hidden;
    background:#f5f5f5;
}
.review-main-thumb img{
    width:100%;
    display:block;
}
.review-content{
    color:#333;
    font-size:17px;
    line-height:1.8;
    margin-bottom:34px;
}
.review-content img{
    max-width:100%;
    height:auto;
}
.review-gallery-title{
    margin-bottom:14px;
    font-size:22px;
    font-weight:800;
    color:#161616;
}
.review-gallery-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:16px;
    margin-bottom:34px;
}
.review-gallery-item{
    border-radius:18px;
    overflow:hidden;
    background:#f5f5f5;
}
.review-gallery-item img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
}
.view-actions{
    display:flex;
    gap:12px;
    flex-wrap:wrap;
    margin-top:10px;
}

/* 후기 작성 */
.review-write-page{
    padding:40px 0 80px;
    background:#fff;
}
.write-wrap{
    max-width:920px;
    margin:0 auto;
    padding:40px;
    border:1px solid #efefef;
    border-radius:28px;
    background:#fff;
    box-shadow:0 14px 36px rgba(0,0,0,.05);
}
.write-head{
    margin-bottom:28px;
    padding-bottom:20px;
    border-bottom:1px solid #ededed;
}
.review-eyebrow{
    display:inline-block;
    margin-bottom:10px;
    font-size:13px;
    font-weight:800;
    letter-spacing:.14em;
    color:#ff6a00;
    text-transform:uppercase;
}
.write-head h1{
    font-size:36px;
    line-height:1.25;
    letter-spacing:-0.03em;
    color:#161616;
}
.review-form .form-row{
    margin-bottom:18px;
}
.review-form label{
    display:block;
    margin-bottom:8px;
    font-size:15px;
    font-weight:700;
    color:#222;
}
.review-form input[type="text"],
.review-form input[type="file"],
.review-form textarea{
    width:100%;
}
.review-form input[type="text"],
.review-form input[type="file"]{
    height:56px;
    padding:0 16px;
    border:1px solid #dfdfdf;
    border-radius:14px;
    background:#fff;
    outline:none;
}
.star-rating{
    display:flex;
    flex-direction:row-reverse;
    justify-content:flex-end;
    gap:4px;
}
.star-rating input{
    display:none;
}
.star-rating label{
    font-size:34px;
    line-height:1;
    color:#d5d5d5;
    cursor:pointer;
    margin-bottom:0;
    transition:.2s ease;
}
.star-rating input:checked ~ label,
.star-rating label:hover,
.star-rating label:hover ~ label{
    color:#f5b301;
}
.note-editor.note-frame{
    border:1px solid #dfdfdf;
    border-radius:18px;
    overflow:hidden;
}
.note-toolbar{
    background:#fafafa;
}
.note-editing-area{
    background:#fff;
}

/* 후기 목록 */
.review-list-page{
    padding:40px 0 80px;
    background:#fff;
}

.review-list-top{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:20px;
    margin-bottom:30px;
}

.review-list-top h1{
    font-size:40px;
    line-height:1.2;
    letter-spacing:-0.03em;
    margin-bottom:10px;
    color:#161616;
}

.review-list-desc{
    color:#666;
    font-size:17px;
}

.review-list-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:22px;
}

.review-list-card{
    display:block;
    background:#fff;
    border:1px solid #ededed;
    border-radius:24px;
    overflow:hidden;
    box-shadow:0 10px 28px rgba(0,0,0,.04);
    transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.review-list-card:hover{
    transform:translateY(-4px);
    box-shadow:0 18px 34px rgba(0,0,0,.08);
    border-color:#e1e1e1;
}

.review-list-thumb{
    width:100%;
    aspect-ratio:1 / 0.82;
    background:#f3f3f3;
    overflow:hidden;
}

.review-list-thumb img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.review-list-no-image{
    width:100%;
    height:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#999;
    font-size:13px;
    background:#f3f3f3;
}

.review-list-card-body{
    padding:18px 18px 20px;
}

.review-list-stars{
    color:#f5b301;
    font-size:15px;
    letter-spacing:1px;
    margin-bottom:8px;
}

.review-list-card-body h3{
    font-size:19px;
    line-height:1.35;
    letter-spacing:-0.02em;
    margin-bottom:10px;
    color:#161616;
}

.review-list-meta{
    color:#777;
    font-size:13px;
}

.empty-review-list{
    grid-column:1 / -1;
    padding:50px 18px;
    border:1px dashed #ddd;
    border-radius:20px;
    text-align:center;
    color:#888;
    background:#fafafa;
    font-size:15px;
}

.pagination{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:8px;
    margin-top:34px;
    flex-wrap:wrap;
}

.pagination a{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:42px;
    height:42px;
    padding:0 12px;
    border-radius:12px;
    border:1px solid #ddd;
    background:#fff;
    color:#222;
    font-size:14px;
    font-weight:700;
    transition:all .2s ease;
}

.pagination a:hover{
    border-color:#ff7a11;
    color:#ff7a11;
}

.pagination a.active{
    background:#111;
    color:#fff;
    border-color:#111;
}

.process-bottom-links{
    display:flex;
    justify-content:center;
    gap:12px;
    flex-wrap:wrap;
    margin-top:28px;
}

.process-bottom-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:240px;
    min-height:62px;
    padding:0 34px;
    border-radius:999px;
    background:#111;
    color:#fff;
    font-size:18px;
    font-weight:700;
    transition:.2s ease;
}
.process-bottom-btn:hover{
    transform:translateY(-2px);
    background:#ff6a00;
}

@media (max-width:1180px){
    .hero-grid{grid-template-columns:1fr}
    .reason-grid,
    .process-grid,
    .review-grid,
    .review-grid-main,
    .trust-grid{
        grid-template-columns:repeat(2,1fr);
    }
    .hero-copy h1{font-size:56px}
    .hero-visual{min-height:520px;height:520px}
    .product-block{
        grid-template-columns:1fr;
    }
    .product-block.reverse .product-image,
    .product-block.reverse .product-copy{
        order:initial;
    }
    .contact-grid{
        grid-template-columns:1fr;
    }
    .gallery-grid{
        grid-template-columns:1fr 1fr;
        grid-auto-rows:240px;
    }
    .gallery-item.large,
    .gallery-item.wide{
        grid-row:auto;
        grid-column:auto;
    }
    .footer-inner{flex-direction:column}
    .review-list-grid{
        grid-template-columns:repeat(2,1fr);
    }
}

@media (max-width:768px){
    .mobile-only{
        display:block;
    }

    html{
        scroll-padding-top:80px;
    }

    #visual,
    #about,
    #products,
    #gallery,
    #review,
    #process,
    #contact{
        scroll-margin-top:80px;
    }

    .container{
        padding:0 16px;
    }

    .section{
        padding:40px 0;
    }

    #gallery.section{
        padding-top:20px;
    }

    #gallery .section-head{
        margin-bottom:24px;
    }

    .nav,
    .header-actions .header-link-btn{
        display:none;
    }

    .menu-btn{
        display:inline-flex;
        align-items:center;
        justify-content:center;
        width:42px;
        height:42px;
        flex-shrink:0;
    }

    .header-inner{
        min-height:72px;
        gap:12px;
        min-width:0;
    }

    .brand{
        flex:1;
        min-width:0;
        gap:8px;
    }

    .brand-badge{
        padding:0 10px;
        height:32px;
        font-size:11px;
        letter-spacing:.08em;
    }

    .brand-text{
        font-size:16px;
        min-width:0;
        overflow:hidden;
        text-overflow:ellipsis;
        white-space:nowrap;
    }

    .hero{
        padding:132px 0 70px;
    }

    .hero-copy h1{
        font-size:38px;
    }

    .hero-desc{
        font-size:16px;
    }

    .hero-cta{
        display:none;
    }

    .hero-points{
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
    margin-top:12px;
}

    .point-card{
    padding:14px 14px;
    border-radius:14px;
    min-height:auto;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:flex-start;
    text-align:left;
}

.point-card strong{
    font-size:14px;
    line-height:1.3;
    margin-bottom:4px;
    word-break:keep-all;
}

.point-card span{
    font-size:12px;
    line-height:1.45;
    word-break:keep-all;
    color:#666;
}

    .reason-grid{
        grid-template-columns:1fr;
        gap:12px;
    }

    .reason-card{
        padding:18px 16px;
        border-radius:18px;
    }

    .reason-num{
        width:34px;
        height:34px;
        margin-bottom:10px;
        font-size:14px;
    }

    .reason-card h3{
        font-size:18px;
        line-height:1.35;
        margin-bottom:6px;
    }

    .reason-card p{
        font-size:13px;
        line-height:1.5;
    }

    .review-grid,
    .review-grid-main,
    .process-grid,
    .trust-grid,
    .contact-grid{
        grid-template-columns:1fr;
    }

    .hero-visual{
        min-height:360px;
        height:360px;
    }

    .visual-main{
        left:0;
        top:20px;
    }

    .hero-roll-box{
        top:20px;
        left:0;
    }

    .section-head h2,
    .contact-copy h2,
    .cta-inner h2,
    .product-copy h3{
        font-size:32px;
    }

    #about .section-head h2{
        font-size:26px;
        line-height:1.3;
    }

    .gallery-grid{
        grid-template-columns:1fr;
    }

    .cta-inner{
        flex-direction:column;
        align-items:flex-start;
    }

    .cta-actions{
        width:100%;
        flex-direction:column;
        gap:8px;
    }

    .cta-actions .btn,
    .cta-actions .btn-white,
    .cta-actions .btn-white-line{
        width:100%;
        min-height:42px;
        padding:0 16px;
        font-size:14px;
        text-align:center;
        border-radius:999px;
    }

    .product-image{
        min-height:auto;
        padding:4px;
    }

    .product-image img{
        width:100%;
        max-height:none;
        object-fit:cover;
        border-radius:16px;
    }

    .product-block{
        padding:22px 18px;
        gap:22px;
    }

    .product-btns{
        flex-direction:column;
    }

    .product-btns .btn{
        width:100%;
        text-align:center;
        min-height:45px;
        padding:0 18px;
        font-size:14px;
        border-radius:999px;
    }

    .review-head{
        flex-direction:column;
        align-items:flex-start;
    }

    .review-head-actions{
        width:100%;
    }

    .review-write-btn,
    .review-more-btn{
        flex:1;
    }

    .review-excerpt-main{
        min-height:auto;
    }

    .review-thumb-main{
        width:100%;
        margin:0 0 10px;
    }

    .process-bottom-links{
        flex-direction:column;
        gap:10px;
    }

    .process-bottom-btn{
        width:100%;
        min-width:0;
        min-height:46px;
        padding:0 16px;
        font-size:16px;
    }

    .process-card{
        padding:10px 15px;
        border-radius:20px;
    }

    .process-card span{
        margin-bottom:10px;
        font-size:12px;
    }

    .process-card h3{
        font-size:18px;
        margin-bottom:6px;
        line-height:1.3;
    }

    .process-card p{
        font-size:13px;
        line-height:1.5;
    }

    .contact-grid{
        gap:20px;
    }

    .contact-list-box{
        padding:14px;
        border-radius:16px;
    }

    .contact-list-item{
        padding:10px 11px;
        border-radius:12px;
    }

    .contact-list-top{
        align-items:flex-start;
        flex-direction:column;
        gap:6px;
    }

    .contact-list-top span{
        font-size:11px;
        white-space:normal;
    }

    .contact-list-text{
        font-size:12px;
    }

    .contact-box{
        padding:24px 16px;
        border-radius:22px;
    }

    .contact-box h3{
        font-size:24px;
        line-height:1.3;
    }

    .form-row input,
    .form-row select,
    .form-row textarea,
    .full{
        width:100%;
        max-width:100%;
    }

    .subpage-wrap{
        padding-top:92px;
    }

    .review-view-page{
        padding:28px 0 60px;
    }

    .review-view-wrap{
        padding:24px 18px;
        border-radius:20px;
    }

    .review-view-head h1{
        font-size:28px;
    }

    .review-content{
        font-size:15px;
    }

    .review-gallery-grid{
        grid-template-columns:1fr;
    }

    .review-write-page{
        padding:28px 0 60px;
    }

    .write-wrap{
        padding:24px 18px;
        border-radius:20px;
    }

    .write-head h1{
        font-size:28px;
    }

    .star-rating label{
        font-size:28px;
    }

    .review-list-page{
        padding:28px 0 60px;
    }

    .review-list-top{
        flex-direction:column;
        align-items:flex-start;
        margin-bottom:24px;
    }

    .review-list-top h1{
        font-size:30px;
    }

    .review-list-desc{
        font-size:15px;
    }

    .review-list-grid{
        grid-template-columns:1fr;
    }

    .review-list-card{
        border-radius:20px;
    }

    .review-list-card-body{
        padding:16px 16px 18px;
    }
}