/* ============================================================
   WhiteSoul — subpage shared styles (loads after style4.css)
   light, no pins · subhero + circle rise + content
   ============================================================ */
.subhero{position:relative;height:64vh;min-height:440px;overflow:hidden;background:var(--noir);}
.subhero__media{position:absolute;inset:0;}
.subhero__media img,.subhero__media video{width:100%;height:100%;object-fit:cover;opacity:.9;}
.subhero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,15,12,.5),rgba(20,15,12,.32) 42%,rgba(20,15,12,.55));z-index:1;}
.subhero__inner{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#fff;padding:0 24px 4vh;}
.subhero__eyebrow{font-family:var(--serif-en);font-size:15px;letter-spacing:.36em;text-transform:uppercase;color:rgba(255,255,255,.85);margin-bottom:20px;}
.subhero__title{font-family:var(--serif-ko);font-weight:400;font-size:clamp(44px,7.4vw,98px);line-height:1.05;letter-spacing:.01em;}
.subhero__title em{color:var(--rose-soft);}
.subhero__sub{margin-top:22px;font-family:var(--serif-ko);font-size:clamp(16px,1.8vw,21px);color:rgba(255,255,255,.92);}

/* body rises over hero (round panel) */
.subbody{position:relative;z-index:5;margin-top:-7vh;background:var(--paper);border-radius:60px 60px 0 0;padding-top:var(--s16);}
@media(max-width:680px){.subbody{border-radius:34px 34px 0 0;margin-top:-5vh;}}

.subsec{padding:var(--s20) 0;}
.subhead{text-align:center;margin-bottom:var(--s16);}
.subhead .eyebrow{color:var(--rose);}
.subhead h2{font-family:var(--serif-ko);font-size:clamp(30px,4.2vw,58px);line-height:1.12;color:var(--ink);}
.subhead h2 em{color:var(--rose);}
.subhead p{margin-top:18px;color:var(--ink-soft);font-size:16px;}

/* filter tabs */
.filters{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin-bottom:var(--s12);}
.filters button{font-family:var(--serif-ko);font-size:15px;color:var(--ink-soft);background:transparent;border:1px solid var(--line);border-radius:999px;padding:10px 22px;cursor:pointer;transition:.4s var(--ease);}
.filters button:hover{border-color:var(--rose);color:var(--rose);}
.filters button.on{background:var(--ink);color:var(--paper);border-color:var(--ink);}

/* film grid */
.filmgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px 28px;}
.filmgrid .film{flex:none;}
.filmgrid .film__frame{position:relative;aspect-ratio:3/4;overflow:hidden;border-radius:var(--r) var(--r) 16px 16px;background:var(--noir);}
.filmgrid .film__frame img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease);}
.filmgrid .film:hover .film__frame img{transform:scale(1.06);}
.filmgrid .film__veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,15,12,0) 52%,rgba(20,15,12,.55));}
.filmgrid .film__play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:64px;height:64px;border:1px solid rgba(255,255,255,.8);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:.5s var(--ease);}
.filmgrid .film:hover .film__play{background:#fff;}
.filmgrid .film__play svg{width:16px;height:16px;fill:#fff;margin-left:3px;}
.filmgrid .film:hover .film__play svg{fill:var(--ink);}
.filmgrid .film__cap{text-align:center;padding:20px 6px 0;}
.filmgrid .film__venue{font-family:var(--serif-ko);font-size:14px;color:var(--rose);}
.filmgrid .film__name{font-size:17px;margin-top:6px;}

/* about: split rows */
.splitrow{display:grid;grid-template-columns:1fr 1fr;gap:var(--s16);align-items:center;}
.splitrow.rev{direction:rtl;}.splitrow.rev>*{direction:ltr;}
.splitrow__media{aspect-ratio:4/5;overflow:hidden;border-radius:var(--r) var(--r) 16px 16px;}
.splitrow__media img{width:100%;height:100%;object-fit:cover;}
.splitrow h3{font-family:var(--serif-ko);font-size:clamp(26px,3.4vw,44px);line-height:1.2;}
.splitrow h3 em{color:var(--rose);}
.splitrow p{margin-top:28px;color:var(--ink-soft);font-size:16.5px;line-height:1.85;max-width:480px;}

/* process steps (about) */
.psteps{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--s8);margin-top:var(--s12);}
.pstep{text-align:center;}
.pstep .n{font-family:var(--serif-ko);font-style:normal;font-size:15px;color:var(--rose);}
.pstep h4{font-family:var(--serif-ko);font-size:19px;margin:14px 0 8px;}
.pstep p{font-size:13.5px;color:var(--muted);line-height:1.7;}

/* big quote band (about) */
.qband{position:relative;height:62vh;min-height:440px;overflow:hidden;display:flex;align-items:center;justify-content:center;text-align:center;margin:var(--s12) 0;}
.qband img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.qband::after{content:"";position:absolute;inset:0;background:rgba(18,13,8,.58);}
.qband__q{position:relative;z-index:2;color:#fff;max-width:860px;padding:0 24px;}
.qband__q p{font-family:var(--serif-ko);font-size:clamp(26px,3.6vw,48px);line-height:1.35;}
.qband__q .by{margin-top:22px;font-family:var(--serif-en);letter-spacing:.28em;text-transform:uppercase;font-size:12px;color:var(--rose-soft);}

/* package detail cards (collection) */
.pkgrow{border-top:1px solid var(--line);display:grid;grid-template-columns:.9fr 1.6fr;gap:var(--s12);padding:var(--s12) 0;align-items:start;}
.pkgrow:last-child{border-bottom:1px solid var(--line);}
.pkgrow__name{font-family:var(--serif-ko);}
.pkgrow__name .tag{font-style:normal;font-size:14px;color:var(--rose);}
.pkgrow__name h3{font-size:clamp(28px,3.4vw,42px);margin:8px 0 8px;}
.pkgrow__name .price{font-size:15px;color:var(--muted);}
.pkgrow__list{columns:2;column-gap:40px;}
.pkgrow__list li{font-size:15px;color:var(--ink-soft);padding:7px 0 7px 20px;position:relative;break-inside:avoid;}
.pkgrow__list li::before{content:"";position:absolute;left:0;top:14px;width:10px;height:1px;background:var(--rose);}

/* faq */
.faq{max-width:780px;margin:0 auto;}
.faq__item{border-bottom:1px solid var(--line);}
.faq__q{width:100%;text-align:left;background:transparent;border:0;cursor:pointer;padding:24px 40px 24px 0;font-family:var(--serif-ko);font-size:19px;color:var(--ink);position:relative;}
.faq__q::after{content:"+";position:absolute;right:6px;top:50%;transform:translateY(-50%);color:var(--rose);font-size:24px;transition:.3s;}
.faq__item.open .faq__q::after{content:"–";}
.faq__a{max-height:0;overflow:hidden;transition:max-height .45s var(--ease);}
.faq__a p{padding:0 0 24px;color:var(--ink-soft);font-size:15.5px;line-height:1.85;}

/* review grid (review page) */
.revgrid{columns:3;column-gap:24px;}
.revcard{break-inside:avoid;background:var(--white);border:1px solid var(--line);border-radius:40px 40px 14px 14px;padding:34px 30px;margin-bottom:24px;}
.revcard .stars{color:var(--rose);letter-spacing:3px;font-size:14px;}
.revcard q{display:block;font-family:var(--serif-ko);font-size:18px;line-height:1.6;margin:16px 0 18px;quotes:none;}
.revcard .by{font-family:var(--serif-ko);font-size:16px;}
.revcard .by span{display:block;font-family:var(--sans);font-size:12px;color:var(--muted);margin-top:3px;}

@media(max-width:1024px){
  .filmgrid{grid-template-columns:repeat(2,1fr);}
  .splitrow{grid-template-columns:1fr;gap:var(--s8);}
  .splitrow.rev{direction:ltr;}
  .psteps{grid-template-columns:repeat(2,1fr);gap:var(--s8);}
  .pkgrow{grid-template-columns:1fr;gap:var(--s4);}
  .revgrid{columns:2;}
}
@media(max-width:680px){
  .filmgrid{grid-template-columns:1fr;}
  .pkgrow__list{columns:1;}
  .revgrid{columns:1;}
}

/* review submit form (light) */
.rform__row{display:grid;grid-template-columns:1fr 1fr .8fr;gap:16px}
.rfield{margin-bottom:18px}
.rfield label{display:block;font-size:13px;color:var(--ink-soft);margin-bottom:8px}
.rfield label .req{color:var(--rose)}
.rform input,.rform select,.rform textarea{width:100%;height:50px;padding:0 16px;font-family:var(--sans);font-size:15px;color:var(--ink);background:var(--white);border:1px solid var(--line);border-radius:12px;transition:.3s var(--ease)}
.rform textarea{height:auto;padding:14px 16px;resize:vertical}
.rform input:focus,.rform select:focus,.rform textarea:focus{outline:none;border-color:var(--rose)}
.rfield.err input,.rfield.err textarea{border-color:#c0563f}
.ragree{display:flex;gap:8px;align-items:center;font-size:13px;color:var(--muted);margin:4px 0 22px}
.ragree input{width:18px;height:18px;accent-color:var(--ink);flex-shrink:0}
.rform .btn{width:100%}
.rform__ok{display:none;text-align:center;padding:30px 10px}
.rform__ok.show{display:block}
.rform__ok .ic{font-size:38px;color:var(--rose);font-family:var(--serif-ko)}
.rform__ok h3{font-family:var(--serif-ko);font-size:24px;margin:12px 0 8px}
.rform__ok p{color:var(--muted)}
@media(max-width:680px){.rform__row{grid-template-columns:1fr}}
