/* ============================================================
   interior.css
   Styles specific to the Johken Interior main site (index page).
   Sections: Hero carousel, About, Reviews, Review Modal,
             Services, Shop, Contact.
   ============================================================ */

/* HERO */
#home{margin-top:80px;height:calc(100vh - 80px);background:var(--deep-brown);position:relative;}
.c-viewport{position:relative;width:100%;height:100%;overflow:hidden;}
.c-track{display:flex;height:100%;transition:transform .9s cubic-bezier(.77,0,.175,1);}
.c-slide{flex:0 0 100%;width:100%;height:100%;position:relative;overflow:hidden;}
.c-slide img,.c-slide video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;}
.slide-ph{position:absolute;inset:0;z-index:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;}
.ph-icon{font-size:64px;opacity:.3;}.ph-text{font-size:14px;letter-spacing:.06em;color:rgba(255,255,255,.3);}
.slide-overlay{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(135deg,rgba(28,28,26,.68) 0%,rgba(28,28,26,.1) 100%);}
.slide-content{position:absolute;bottom:80px;left:80px;color:var(--warm-white);max-width:540px;z-index:2;}
.slide-tag{font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin-bottom:16px;}
.slide-title{font-family:'Cormorant Garamond',serif;font-size:clamp(36px,5vw,62px);font-weight:300;line-height:1.1;margin-bottom:20px;}
.slide-desc{font-size:14px;font-weight:300;line-height:1.7;color:rgba(253,250,245,.82);margin-bottom:32px;}
.slide-btn{display:inline-block;padding:13px 32px;border:1px solid var(--gold);color:var(--gold);font-size:11px;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;transition:all .25s;}
.slide-btn:hover{background:var(--gold);color:var(--deep-brown);}
.c-prev,.c-next{position:absolute;top:50%;transform:translateY(-50%);z-index:20;width:50px;height:50px;background:rgba(253,250,245,.1);border:1px solid rgba(255,255,255,.2);color:#fff;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .25s;backdrop-filter:blur(4px);}
.c-prev{left:32px;}.c-next{right:32px;}
.c-prev:hover,.c-next:hover{background:var(--gold);border-color:var(--gold);color:var(--deep-brown);}
.c-dots{position:absolute;bottom:28px;right:80px;display:flex;gap:8px;z-index:20;}
.c-dot{width:24px;height:2px;background:rgba(255,255,255,.35);cursor:pointer;transition:all .3s;}
.c-dot.active{background:var(--gold);width:40px;}

/* SECTIONS */
section{padding:100px 80px;}
.section-label{font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);margin-bottom:16px;}
.section-title{font-family:'Cormorant Garamond',serif;font-size:clamp(32px,3.5vw,50px);font-weight:300;line-height:1.15;color:var(--charcoal);}
.section-title em{font-style:italic;color:var(--gold);}
.divider{width:48px;height:1px;background:var(--gold);margin:24px 0;}

/* ABOUT */
#about{background:var(--cream);}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;margin-top:60px;}
.about-img-stack{position:relative;height:500px;}
.about-img-main{position:absolute;width:75%;height:420px;bottom:0;right:0;background:var(--sand-light);overflow:hidden;display:flex;align-items:center;justify-content:center;}
.about-img-main img{width:100%;height:100%;object-fit:cover;}
.about-img-accent{position:absolute;width:55%;height:280px;top:0;left:0;border:6px solid var(--warm-white);box-shadow:0 20px 60px rgba(0,0,0,.12);background:var(--cream);overflow:hidden;display:flex;align-items:center;justify-content:center;}
.about-img-accent img{width:100%;height:100%;object-fit:cover;}
.img-ph{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--muted);font-size:12px;width:100%;height:100%;}
.img-ph span:first-child{font-size:28px;opacity:.3;}
.about-text p{font-size:15px;font-weight:300;line-height:1.85;color:var(--muted);margin-bottom:20px;}
.stats-row{display:flex;gap:40px;margin-top:36px;}
.stat{display:flex;flex-direction:column;}
.stat-num{font-family:'Cormorant Garamond',serif;font-size:42px;font-weight:300;color:var(--gold);}
.stat-label{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);}

/* REVIEWS */
#reviews-section{background:var(--warm-white);padding:80px;}
.reviews-inner{max-width:1200px;margin:0 auto;}
.reviews-header{display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;margin-bottom:50px;gap:16px;}
.reviews-header>div{display:flex;flex-direction:column;align-items:center;}
.leave-review-btn{padding:12px 28px;background:transparent;border:1px solid var(--gold);color:var(--gold);font-family:'Jost',sans-serif;font-size:11px;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:all .25s;flex-shrink:0;}
.leave-review-btn:hover{background:var(--gold);color:var(--deep-brown);}
.reviews-grid{display:flex;flex-wrap:wrap;gap:24px;justify-content:center;}
.review-card{flex:0 1 340px;}
.review-card{background:var(--cream);padding:36px 32px;border-top:3px solid var(--gold);text-align:center;display:flex;flex-direction:column;align-items:center;}
.review-stars{color:var(--gold);font-size:18px;letter-spacing:4px;margin-bottom:18px;}
.review-text{font-family:'Cormorant Garamond',serif;font-size:18px;font-weight:300;line-height:1.65;color:var(--charcoal);margin-bottom:22px;font-style:italic;}
/* reviewer info row with avatar — centered */
.review-author-row{display:flex;align-items:center;justify-content:center;gap:12px;}
.review-avatar{width:42px;height:42px;border-radius:50%;background:var(--sand-light);overflow:hidden;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:18px;opacity:.5;}
.review-avatar img{width:100%;height:100%;object-fit:cover;display:block;}
.review-author-text{text-align:left;}
.review-author{font-size:12px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--charcoal);}
.review-role{font-size:11px;color:var(--muted);margin-top:2px;}
.reviews-empty{text-align:center;padding:60px;color:var(--muted);font-family:'Cormorant Garamond',serif;font-size:20px;}

/* REVIEW MODAL */
.modal-overlay{position:fixed;inset:0;z-index:4000;background:rgba(28,28,26,.7);backdrop-filter:blur(6px);display:none;align-items:center;justify-content:center;padding:20px;}
.modal-overlay.open{display:flex;}
.modal-box{background:var(--warm-white);width:100%;max-width:540px;padding:48px;border-top:3px solid var(--gold);animation:modalIn .3s ease;position:relative;max-height:90vh;overflow-y:auto;}
@keyframes modalIn{from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:translateY(0);}}
.modal-close{position:absolute;top:18px;right:18px;width:36px;height:36px;border:none;background:none;cursor:pointer;font-size:20px;color:var(--muted);display:flex;align-items:center;justify-content:center;}
.modal-close:hover{color:var(--charcoal);}
.modal-title{font-family:'Cormorant Garamond',serif;font-size:28px;font-weight:300;color:var(--charcoal);margin-bottom:6px;}
.modal-sub{font-size:12px;color:var(--muted);margin-bottom:30px;}
.mform-group{display:flex;flex-direction:column;gap:7px;margin-bottom:16px;}
.mform-group label{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);}
.mform-group input,.mform-group textarea{background:var(--cream);border:1px solid var(--sand-light);padding:12px 14px;color:var(--charcoal);font-family:'Jost',sans-serif;font-size:14px;font-weight:300;outline:none;transition:border .2s;resize:none;width:100%;}
.mform-group input:focus,.mform-group textarea:focus{border-color:var(--gold);}
.star-picker{display:flex;gap:8px;margin-top:4px;}
.star-picker span{font-size:32px;cursor:pointer;opacity:.2;transition:opacity .12s,transform .12s;color:var(--gold);}
.star-picker span:hover{opacity:.6;transform:scale(1.15);}
.star-picker span.active{opacity:1;transform:scale(1.08);}
.star-picker span.hover-fill{opacity:.45;}
.modal-submit{width:100%;padding:14px;background:var(--charcoal);color:var(--cream);border:none;font-family:'Jost',sans-serif;font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:.25s;margin-top:8px;}
.modal-submit:hover{background:var(--gold);color:var(--deep-brown);}

/* AVATAR UPLOAD in review modal */
.avatar-upload-row{display:flex;align-items:center;gap:18px;margin-bottom:16px;}
.avatar-circle{width:64px;height:64px;border-radius:50%;border:2px solid var(--sand-light);background:var(--sand-light);overflow:hidden;flex-shrink:0;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color .2s;position:relative;}
.avatar-circle:hover{border-color:var(--gold);}
.avatar-circle img{width:100%;height:100%;object-fit:cover;display:none;}
.avatar-circle .avatar-ph{font-size:26px;opacity:.3;position:absolute;}
.avatar-circle input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%;}
.avatar-upload-hint{display:flex;flex-direction:column;gap:4px;}
.avatar-upload-hint span:first-child{font-size:12px;font-weight:500;color:var(--charcoal);}
.avatar-upload-hint span:last-child{font-size:11px;color:var(--muted);}

/* SERVICES */
#services{background:var(--cream);}
.services-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:30px;margin-top:50px;}
.service-card{background:var(--warm-white);overflow:hidden;transition:transform .3s,box-shadow .3s;display:flex;flex-direction:column;text-decoration:none;color:inherit;}
.service-card:hover{transform:translateY(-6px);box-shadow:0 24px 60px rgba(0,0,0,.1);}
.service-img{width:100%;height:220px;background:var(--sand-light);overflow:hidden;display:flex;align-items:center;justify-content:center;position:relative;}
.service-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
.service-card:hover .service-img img{transform:scale(1.04);}
.service-ph-icon{font-size:48px;opacity:.2;}
.service-body{padding:24px 26px 28px;flex:1;display:flex;flex-direction:column;}
.service-name{font-family:'Cormorant Garamond',serif;font-size:22px;font-weight:400;color:var(--charcoal);margin-bottom:10px;}
.service-desc{font-size:13px;font-weight:300;line-height:1.75;color:var(--muted);flex:1;}
.service-link-row{margin-top:18px;display:flex;align-items:center;gap:6px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-weight:400;}
.service-link-row::after{content:'→';font-size:14px;transition:transform .2s;}
.service-card:hover .service-link-row::after{transform:translateX(4px);}
.services-empty{text-align:center;padding:80px;color:var(--muted);font-family:'Cormorant Garamond',serif;font-size:20px;}

/* SHOP CTA */
.shop-cta{background:var(--warm-white);padding:100px 80px !important;}
.shop-cta-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;max-width:1200px;margin:0 auto;}
.shop-cta-img{position:relative;overflow:hidden;background:var(--sand-light);height:420px;}
.shop-cta-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.shop-cta-img-ph{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--muted);font-size:14px;}
.shop-cta-img-ph span:first-child{font-size:56px;opacity:.15;}
.shop-cta-text{display:flex;flex-direction:column;justify-content:center;}
.shop-cta-desc{font-size:15px;font-weight:300;line-height:1.85;color:var(--muted);margin-bottom:36px;max-width:440px;}
.shop-cta-btn{display:inline-block;padding:14px 36px;border:1px solid var(--charcoal);color:var(--charcoal);font-family:'Jost',sans-serif;font-size:11px;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;transition:all .25s;align-self:flex-start;}
.shop-cta-btn:hover{background:var(--charcoal);color:var(--cream);}

/* CONTACT */
#contact{background:var(--charcoal);color:var(--cream);}
#contact .section-title{color:var(--cream);}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;margin-top:60px;}
.contact-info p{font-size:14px;font-weight:300;line-height:1.8;color:var(--sand);margin-bottom:28px;}
.contact-detail{display:flex;gap:16px;align-items:flex-start;margin-bottom:20px;}
.icon-box{width:36px;height:36px;border:1px solid var(--gold);display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0;color:var(--gold);}
.cdt{font-size:13px;font-weight:300;color:var(--sand);line-height:1.6;}
.cdl{font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:3px;}
.contact-form{display:flex;flex-direction:column;gap:18px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.form-group{display:flex;flex-direction:column;gap:8px;}
.form-group label{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--sand);}
.form-group input,.form-group textarea,.form-group select{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);padding:13px 16px;color:var(--cream);font-family:'Jost',sans-serif;font-size:14px;font-weight:300;outline:none;transition:border .2s;resize:none;}
.form-group input:focus,.form-group textarea:focus,.form-group select:focus{border-color:var(--gold);}
.form-group select option{background:var(--charcoal);}
.form-submit{padding:15px 36px;background:var(--gold);color:var(--deep-brown);border:none;font-family:'Jost',sans-serif;font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:.25s;align-self:flex-start;}
.form-submit:hover{background:var(--gold-light);}
