:root{
  --cr:#9B1B1B;--crl:#C0392B;--gd:#A0750A;--gdl:#C9930E;
  --bg:#FAF3E6;--bg2:#F3E8D5;--bg3:#EDE0C8;
  --ink:#1A0A05;--ink2:#3D2010;--ink3:#6B3A1F;
  --divider:#C9930E;--card:#FFFFFF;
}
*{box-sizing:border-box;margin:0;padding:0;}
body{font-family:'Cormorant Garamond',serif;background:var(--bg);color:var(--ink);overflow-x:hidden;}
h1,h2,h3,h4{font-family:'Cinzel',serif;color:var(--cr);}
h5{font-family:'Cinzel',serif;color:var(--gd);}
a{text-decoration:none;}

.sakura{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0;overflow:hidden;}
.petal{position:absolute;top:-20px;border-radius:50% 0 50% 0;opacity:.6;animation:fall linear infinite;}
@keyframes fall{0%{top:-20px;transform:rotate(0deg) translateX(0);opacity:.7}100%{top:110vh;transform:rotate(720deg) translateX(80px);opacity:0}}

.navbar{background:#FAF3E6!important;border-bottom:2px solid var(--cr);position:fixed;width:100%;top:0;z-index:1000;padding:10px 0;box-shadow:0 2px 18px rgba(155,27,27,.12);}
.navbar-brand{font-family:'Cinzel',serif;color:var(--cr)!important;letter-spacing:3px;font-size:1.1rem;font-weight:700;}
.nav-link{color:var(--ink2)!important;font-family:'Cinzel',serif;font-size:.68rem;letter-spacing:1.5px;text-transform:uppercase;transition:color .3s;padding:8px 10px!important;}
.nav-link:hover,.nav-link.act{color:var(--cr)!important;}
.navbar-toggler{border-color:rgba(155,27,27,.4)!important;}
.navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28155%2C27%2C27%2C.9%29' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")!important;}

.pg{display:none;}.pg.active{display:block;}
.mc{margin-top:65px;position:relative;z-index:1;}

.dvd{display:flex;align-items:center;gap:14px;margin:22px 0;}
.dvd-l{flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--divider),transparent);}

/* HERO */
.hero{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;position:relative;overflow:hidden;padding:0;}
.hero-left{display:flex;flex-direction:column;justify-content:center;padding:100px 56px 60px 48px;background:linear-gradient(135deg,#FAF3E6,#F3E8D5);position:relative;z-index:2;}
.hero-left::before{content:'巫女';position:absolute;font-size:22vw;color:rgba(155,27,27,.04);font-family:'Noto Serif JP',serif;right:-5%;bottom:-5%;line-height:1;pointer-events:none;}
.hero-right{position:relative;overflow:hidden;min-height:100vh;}
.hero-photo{position:absolute;inset:0;background:linear-gradient(160deg,#E8CEAA,#D4B08A,#C09A70);display:flex;flex-direction:column;align-items:center;justify-content:center;}
.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block;}
.hero-photo-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(160deg,#E8CEAA 0%,#D4B08A 50%,#B8946A 100%);}
.hero-photo::after{content:'';position:absolute;inset:0;background:linear-gradient(to right,rgba(243,232,213,.5) 0%,transparent 30%),linear-gradient(to top,rgba(155,27,27,.12) 0%,transparent 40%);pointer-events:none;}
.hero-title{font-size:clamp(2.8rem,4vw,4.5rem);color:var(--cr);text-shadow:1px 1px 0 rgba(155,27,27,.15);line-height:1.05;}
.hero-sub{font-family:'Noto Serif JP',serif;color:var(--gd);font-size:.88rem;letter-spacing:6px;margin-bottom:1.2rem;}
@media(max-width:991px){.hero{grid-template-columns:1fr;}.hero-left{padding:100px 28px 50px;}.hero-right{min-height:60vw;max-height:520px;}}

.rc{background:#FFFFFF;border:1px solid rgba(155,27,27,.15);padding:28px;transition:all .3s;position:relative;overflow:hidden;box-shadow:0 3px 15px rgba(155,27,27,.07);}
.rc::before{content:'';position:absolute;top:0;left:0;width:3px;height:100%;background:var(--cr);}
.rc:hover{border-color:rgba(155,27,27,.35);transform:translateY(-3px);box-shadow:0 10px 30px rgba(155,27,27,.15);}

.form-control,.form-select{background:#FFFFFF!important;border:1px solid rgba(155,27,27,.25)!important;color:var(--ink)!important;font-family:'Cormorant Garamond',serif;font-size:1rem;padding:11px 14px;border-radius:2px;}
.form-control:focus,.form-select:focus{border-color:var(--cr)!important;box-shadow:0 0 8px rgba(155,27,27,.15)!important;}
.form-control::placeholder{color:#B0927A!important;}
.form-label{color:var(--cr);font-family:'Cinzel',serif;font-size:.68rem;letter-spacing:2px;text-transform:uppercase;margin-bottom:6px;}
textarea.form-control{resize:vertical;}

.btn-r{background:var(--cr);border:none;color:#FAF3E6;font-family:'Cinzel',serif;letter-spacing:2px;text-transform:uppercase;padding:13px 32px;font-size:.75rem;transition:all .3s;border-radius:2px;}
.btn-r:hover{background:#7A1212;color:#FAF3E6;transform:translateY(-2px);box-shadow:0 6px 20px rgba(155,27,27,.4);}
.btn-g{background:var(--gd);border:none;color:#FAF3E6;font-family:'Cinzel',serif;letter-spacing:2px;text-transform:uppercase;padding:13px 32px;font-size:.75rem;transition:all .3s;border-radius:2px;}
.btn-g:hover{background:var(--gdl);color:#FAF3E6;transform:translateY(-2px);box-shadow:0 6px 20px rgba(160,117,10,.4);}

.ph{padding:75px 0 30px;text-align:center;position:relative;overflow:hidden;background:linear-gradient(180deg,#F0DCC0,var(--bg));}
.ph-k{position:absolute;font-family:'Noto Serif JP',serif;font-size:min(12rem,30vw);color:rgba(155,27,27,.06);top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none;line-height:1;}
.ph h1{font-size:clamp(1.8rem,4vw,2.8rem);letter-spacing:5px;}
.ph p{color:var(--ink3);}

.tc{background:#FFFFFF;border:1px solid rgba(155,27,27,.12);padding:30px;position:relative;height:100%;box-shadow:0 3px 15px rgba(155,27,27,.06);}
.tc::before{content:'"';position:absolute;top:0;left:16px;font-size:5rem;color:rgba(155,27,27,.1);font-family:Georgia,serif;line-height:1;}
.t-auth{color:var(--cr);font-family:'Cinzel',serif;font-size:.75rem;letter-spacing:2px;margin-top:14px;}

.accordion-item{background:#FFFFFF!important;border:1px solid rgba(155,27,27,.15)!important;border-radius:2px!important;margin-bottom:8px;}
.accordion-button{background:#FFFFFF!important;color:var(--ink)!important;font-family:'Cinzel',serif;letter-spacing:1px;font-size:.84rem;border-radius:2px!important;}
.accordion-button:not(.collapsed){background:#FDF0E8!important;color:var(--cr)!important;box-shadow:none!important;}
.accordion-button::after{filter:none;}
.accordion-body{background:#FDFAF6!important;color:var(--ink2)!important;font-size:1.05rem;line-height:1.85;}

.rs{display:flex;gap:18px;padding:20px;background:#FFFFFF;border-left:3px solid var(--cr);margin-bottom:14px;box-shadow:0 2px 10px rgba(155,27,27,.06);}
.rs-n{font-family:'Noto Serif JP',serif;font-size:2rem;color:rgba(155,27,27,.25);line-height:1;min-width:42px;}

.dc{background:#FFFFFF;border:1px solid rgba(155,27,27,.14);padding:24px;box-shadow:0 3px 15px rgba(155,27,27,.06);}
.dc h5{border-bottom:2px solid rgba(155,27,27,.1);padding-bottom:12px;margin-bottom:16px;}
.pi{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid rgba(155,27,27,.07);}
.mi{border-left:3px solid var(--cr);padding:12px 16px;margin-bottom:12px;background:#FDF8F2;}
.bdg{background:rgba(155,27,27,.12);color:var(--cr);font-family:'Cinzel',serif;font-size:.62rem;padding:3px 10px;letter-spacing:1px;}

.ci{display:flex;align-items:flex-start;gap:14px;padding:13px 0;border-bottom:1px solid rgba(155,27,27,.1);}
.ci i{color:var(--cr);font-size:1.1rem;width:26px;margin-top:3px;}

.pp{background:#FFFFFF;border:2px solid rgba(155,27,27,.2);padding:28px;box-shadow:0 4px 20px rgba(155,27,27,.1);}
.price{font-size:2rem;color:var(--cr);font-family:'Cinzel',serif;}
.al{background:rgba(155,27,27,.08);border:1px solid rgba(155,27,27,.3);color:var(--ink);border-radius:2px;font-size:1rem;padding:14px 18px;}

footer{background:var(--cr);color:#FAF3E6;padding:45px 0 20px;margin-top:80px;}

.sec{padding:70px 0;}
.sec-alt{background:var(--bg2);}
::-webkit-scrollbar{width:5px;}
::-webkit-scrollbar-track{background:var(--bg2);}
::-webkit-scrollbar-thumb{background:var(--cr);}
.stars{color:var(--gd);}

.quote-block{border-left:4px solid var(--cr);padding:14px 20px;background:#FDF0E8;margin-bottom:22px;}
.label-tag{display:inline-block;background:rgba(155,27,27,.1);color:var(--cr);font-family:'Cinzel',serif;font-size:.62rem;letter-spacing:2px;padding:4px 10px;text-transform:uppercase;}