
:root{
  --bg:#f6f0e8;
  --bg-soft:#fbf8f2;
  --surface:#fffdf8;
  --surface-soft:#f3ebe2;
  --surface-strong:#fffaf4;
  --text:#241f1a;
  --muted:#6f645d;
  --line:rgba(36,31,26,.12);
  --line-strong:rgba(36,31,26,.22);
  --red:#c80e1c;
  --red-dark:#a10d18;
  --red-deeper:#770811;
  --red-soft:#d44a56;
  --gold:#b28b4f;
  --gold-deep:#98723d;
  --gold-soft:#d7c090;
  --cream:#f7f2ea;
  --white:#fffdf8;
  --shadow:0 22px 54px rgba(36,31,26,.12);
  --shadow-soft:0 14px 34px rgba(36,31,26,.08);
  --shadow-deep:0 36px 72px rgba(53,7,12,.24);
  --radius:18px;
  --radius-sm:12px;
  --container:1160px;
  --container-narrow:900px;
  --header-h:82px;
  --transition:400ms cubic-bezier(.25,1,.5,1);
  --spring:500ms cubic-bezier(0.34, 1.56, 0.64, 1);
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  min-width:320px;
  background:
    radial-gradient(circle at top left, rgba(200,14,28,.055), transparent 26%),
    radial-gradient(circle at top right, rgba(178,139,79,.09), transparent 26%),
    linear-gradient(180deg, #fbf8f2 0%, var(--bg) 100%);
  color:var(--text);
  font-family:"Inter","Noto Sans JP",system-ui,sans-serif;
  line-height:1.78;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
body::before{
  content:'';
  position:fixed;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(90deg, rgba(255,255,255,.28), transparent 14%, transparent 86%, rgba(255,255,255,.22)),
    linear-gradient(rgba(255,255,255,.12) 1px, transparent 1px);
  background-size:100% 100%, 100% 32px;
  opacity:.23;
  mix-blend-mode:soft-light;
}
body.menu-open{ overflow:hidden; }
a{ color:inherit; text-decoration:none; }
img{ display:block; max-width:100%; }
button,input,select,textarea{ font:inherit; }

.site-main{ overflow:hidden; }
.container{ width:min(calc(100% - 40px), var(--container)); margin-inline:auto; }
.narrow{ width:min(calc(100% - 40px), var(--container-narrow)); margin-inline:auto; }
.section{ position:relative; padding:94px 0; }
.section::before{
  content:'';
  position:absolute;
  left:0; right:0; top:0;
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(178,139,79,.18), transparent);
}
.section-alt{
  background:
    linear-gradient(180deg, rgba(255,255,255,.78), rgba(247,242,234,.94)),
    linear-gradient(90deg, rgba(200,14,28,.02), transparent 40%, rgba(178,139,79,.05));
}
.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:12px;
  margin:0 0 14px;
  font-size:.75rem;
  font-weight:700;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--red-dark);
}
.eyebrow::before{
  content:'';
  width:32px;
  height:1px;
  background:currentColor;
  opacity:.78;
}
.eyebrow--light{ color:rgba(255,249,242,.94); }
.eyebrow--light::before{ background:rgba(255,249,242,.76); }

h1,h2,h3,h4,p,dl,dt,dd,ul{ margin:0; }
h1,h2{ font-family:"Cormorant Garamond","Noto Serif JP",serif; letter-spacing:.02em; font-weight:600; }
h1{ font-size:clamp(3.2rem,7vw,6.15rem); line-height:.95; }
h2{ font-size:clamp(2.2rem,4vw,3.45rem); line-height:.98; }
h3{ font-size:1.18rem; line-height:1.45; }
p{ color:var(--text); }
.meta{ font-size:.82rem; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }

.site-header{
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(248,244,237,.84);
  border-bottom:1px solid transparent;
  backdrop-filter:saturate(1.1) blur(16px);
  transition:background var(--transition), border-color var(--transition), box-shadow var(--transition);
}
.site-header::after{
  content:'';
  position:absolute;
  inset:auto 0 0 0;
  height:2px;
  background:linear-gradient(90deg, transparent, rgba(178,139,79,.45), transparent);
  opacity:0;
  transition:opacity var(--transition);
}
.site-header.is-scrolled{
  background:rgba(248,244,237,.84);
  border-color:rgba(36,31,26,.08);
  box-shadow:0 14px 32px rgba(36,31,26,.08);
  backdrop-filter:saturate(1.2) blur(24px);
}
.site-header.is-scrolled::after{ opacity:1; }
.home-page .site-header{
  background:linear-gradient(180deg, rgba(92,8,15,.56), rgba(92,8,15,0));
  border-bottom-color:transparent;
  backdrop-filter:none;
}
.home-page .site-header.is-scrolled{
  background:rgba(90,7,13,.82);
  border-bottom-color:rgba(255,248,240,.16);
  box-shadow:0 14px 36px rgba(45,0,7,.24);
  backdrop-filter:saturate(1.2) blur(24px);
}
.home-page .site-header.is-scrolled::after{ opacity:.86; background:linear-gradient(90deg, transparent, rgba(215,192,144,.64), transparent); }
.site-header__inner{
  min-height:var(--header-h);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:22px;
}
.site-logo{
  display:inline-flex;
  align-items:center;
  gap:13px;
  min-height:44px;
  position:relative;
}
.site-logo__mark{
  position:relative;
  width:17px;
  height:17px;
  flex:0 0 auto;
  border:2px solid currentColor;
  border-radius:4px;
  transform:rotate(45deg);
  opacity:.9;
}
.site-logo__mark::after{
  content:'';
  position:absolute;
  inset:3px;
  border:1px solid currentColor;
  opacity:.45;
}
.site-logo__text{
  font-family:"Cormorant Garamond","Noto Serif JP",serif;
  font-size:2rem;
  line-height:1;
  letter-spacing:.03em;
}
.home-page .site-logo,
.home-page .site-nav a,
.home-page .lang-switch,
.home-page .menu-toggle span{ color:rgba(255,250,244,.96); }

.site-nav{
  display:flex;
  align-items:center;
  gap:28px;
}
.site-nav ul{ display:flex; align-items:center; gap:16px; list-style:none; padding:0; }
.site-nav a{
  position:relative;
  display:inline-flex;
  align-items:center;
  min-height:40px;
  padding:0 2px;
  font-size:.81rem;
  letter-spacing:.17em;
  text-transform:uppercase;
  color:var(--text);
  transition:color var(--transition), opacity var(--transition);
}
.site-nav a::after{
  content:'';
  position:absolute;
  left:0; right:0; bottom:5px;
  height:1px;
  background:currentColor;
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform var(--transition), opacity var(--transition);
  opacity:.72;
}
.site-nav a:hover::after,
.site-nav a.is-active::after{ transform:scaleX(1); }
.site-nav a.is-active{ font-weight:600; }
.lang-switch{
  display:inline-flex;
  align-items:center;
  gap:9px;
  padding:6px 0 6px 16px;
  border-left:1px solid rgba(36,31,26,.14);
  font-size:.84rem;
  color:var(--muted);
}
.home-page .lang-switch{ border-left-color:rgba(255,248,240,.24); color:rgba(255,250,244,.82); }
.lang-switch a{ min-height:auto; padding:0; letter-spacing:.14em; }
.lang-switch a.is-active{ font-weight:700; opacity:1; }

.menu-toggle{
  display:none;
  width:48px;
  height:48px;
  border:0;
  background:transparent;
  padding:0;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:6px;
}
.menu-toggle span{
  display:block;
  width:24px;
  height:2px;
  background:var(--text);
  transition:transform var(--transition), opacity var(--transition), background var(--transition);
}
.menu-open .menu-toggle span:nth-child(1){ transform:translateY(8px) rotate(45deg); }
.menu-open .menu-toggle span:nth-child(2){ opacity:0; }
.menu-open .menu-toggle span:nth-child(3){ transform:translateY(-8px) rotate(-45deg); }

.hero{
  position:relative;
  margin-top:calc(var(--header-h) * -1);
  padding-top:var(--header-h);
  overflow:hidden;
  background:
    linear-gradient(180deg, #b50f1c 0%, var(--red-dark) 100%);
}
.hero::before{
  content:'';
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 50% -10%, rgba(255,255,255,.18), transparent 34%),
    linear-gradient(180deg, rgba(0,0,0,.08), transparent 26%, rgba(0,0,0,.18)),
    linear-gradient(90deg, rgba(255,255,255,.065) 50%, transparent 50%) 0 0/82px 82px,
    linear-gradient(rgba(255,255,255,.052) 50%, transparent 50%) 0 0/82px 82px;
  pointer-events:none;
}
.hero::after{
  content:'';
  position:absolute;
  inset:auto 0 0 0;
  height:190px;
  background:linear-gradient(180deg, rgba(0,0,0,0), rgba(55,5,10,.22));
  pointer-events:none;
}
.hero-slider{ position:relative; min-height:calc(100svh - 10px); }
.hero-slide{
  position:absolute;
  inset:0;
  opacity:0;
  pointer-events:none;
  transition:opacity 1000ms ease;
}
.hero-slide.is-active{ opacity:1; pointer-events:auto; }
.hero-slide__pattern{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg, rgba(255,255,255,.055) 50%, transparent 50%) 0 0/88px 88px,
    linear-gradient(rgba(255,255,255,.045) 50%, transparent 50%) 0 0/88px 88px,
    linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,0));
  opacity:.8;
}
.hero-slide__inner{
  position:relative;
  z-index:2;
  min-height:calc(100svh - 10px);
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);
  gap:58px;
  align-items:center;
  padding-top:44px;
  padding-bottom:174px;
}
.hero-slide__copy{
  color:var(--white);
  max-width:720px;
  position:relative;
}
.hero-slide__copy::before{
  content:'';
  position:absolute;
  left:-18px;
  top:-18px;
  width:72px;
  height:72px;
  border:1px solid rgba(255,249,242,.22);
  pointer-events:none;
}
.hero-kicker{
  margin:0 0 18px;
  color:rgba(255,249,242,.92);
  font-size:clamp(1rem,2vw,1.36rem);
  letter-spacing:.09em;
}
.hero-summary{
  max-width:35rem;
  color:rgba(255,249,242,.86);
  font-size:1rem;
}
.hero-ribbon{
  position:relative;
  display:inline-flex;
  align-items:center;
  min-height:62px;
  margin:34px 0 28px;
  padding:0 34px;
  color:#fff6e8;
  font-family:"Noto Serif JP",serif;
  font-size:clamp(.95rem,2vw,1.18rem);
  letter-spacing:.12em;
  background:linear-gradient(90deg, #a78045, var(--gold), #98723d);
  box-shadow:0 16px 28px rgba(64,18,6,.18);
}
.hero-ribbon::before,
.hero-ribbon::after{
  content:'';
  position:absolute;
  top:0;
  width:30px;
  height:100%;
  background:inherit;
}
.hero-ribbon::before{ left:-18px; clip-path:polygon(100% 0,0 50%,100% 100%); }
.hero-ribbon::after{ right:-18px; clip-path:polygon(0 0,100% 50%,0 100%); }
.hero-ribbon span{
  position:relative;
  z-index:1;
}
.hero-ribbon span::after{
  content:'';
  position:absolute;
  inset:8px -16px;
  border:1px solid rgba(255,243,226,.38);
  pointer-events:none;
}
.hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
}
.hero-slide__visual{
  position:relative;
  display:flex;
  justify-content:flex-end;
}
.hero-frame{
  position:relative;
  width:min(100%, 500px);
  aspect-ratio:5/6;
  padding:16px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,247,238,.22);
  box-shadow:var(--shadow-deep);
}
.hero-frame::after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,0));
  pointer-events:none;
}
.hero-frame__border{
  position:absolute;
  inset:14px;
  border:1px solid rgba(255,249,242,.45);
  pointer-events:none;
}
.hero-frame img{
  width:100%;
  height:100%;
  object-fit:cover;
  border:10px solid rgba(255,249,242,.86);
  background:#f7f2eb;
}
.hero-frame--empty img{ object-fit:contain; padding:18px; }
.hero-frame {
  transition: transform var(--spring), box-shadow var(--transition);
}
.hero-slide.is-active .hero-frame {
  animation: floatFrame 14s ease-in-out infinite alternate;
}
@keyframes floatFrame {
  0% { transform: translateY(0) scale(1); }
  100% { transform: translateY(-8px) scale(1.025); }
}

.hero-cloud{
  position:absolute;
  top:22%;
  width:330px;
  height:94px;
  opacity:.82;
  pointer-events:none;
  animation: floatCloud 14s ease-in-out infinite;
}
@keyframes floatCloud {
  0%, 100% { transform: translate(0, 0) rotate(0deg); }
  33% { transform: translate(12px, -8px) rotate(1deg); }
  66% { transform: translate(-8px, 6px) rotate(-1deg); }
}
.hero-cloud--bottom {
  top: auto;
  bottom: 24%;
  left: 20%;
  animation: floatCloudBottom 16s ease-in-out infinite 1s;
  opacity: .5;
}
@keyframes floatCloudBottom {
  0%, 100% { transform: translate(0, 0) rotate(0deg) scale(0.85); }
  33% { transform: translate(-18px, -12px) rotate(2deg) scale(0.85); }
  66% { transform: translate(14px, 10px) rotate(-1.5deg) scale(0.85); }
}
.hero-cloud::before,
.hero-cloud::after{
  content:'';
  position:absolute;
  inset:0;
  border:5px solid rgba(255,248,240,.92);
  border-radius:999px;
}
.hero-cloud::after{
  width:60%;
  top:38px;
}
.hero-cloud--left{ left:-56px; }
.hero-cloud--left::after{ left:-26px; }
.hero-cloud--right{ right:-40px; transform:scaleX(-1); animation: floatCloudRight 16s ease-in-out infinite 2s; }
@keyframes floatCloudRight {
  0%, 100% { transform: scaleX(-1) translate(0, 0) rotate(0deg); }
  33% { transform: scaleX(-1) translate(16px, 12px) rotate(-1.5deg); }
  66% { transform: scaleX(-1) translate(-12px, -8px) rotate(1deg); }
}
.hero-cloud--right::after{ left:-26px; }
.hero-slider__dots{
  position:absolute;
  left:50%;
  bottom:128px;
  transform:translateX(-50%);
  display:flex;
  gap:10px;
  z-index:3;
}
.hero-slider__dots button{
  width:11px;
  height:11px;
  border-radius:999px;
  border:1px solid rgba(255,248,240,.68);
  background:rgba(255,248,240,.28);
  transition:background var(--transition), transform var(--transition);
}
.hero-slider__dots button.is-active{
  background:#fff6ee;
  transform:scale(1.1);
}
.hero-showcase{
  position:relative;
  z-index:4;
  margin-top:-106px;
  margin-bottom:18px;
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:24px;
}
.showcase-card{
  position:relative;
  display:grid;
  grid-template-columns:200px 1fr;
  gap:0;
  overflow:hidden;
  background:rgba(255,250,244,.95);
  border:1px solid rgba(255,255,255,.34);
  box-shadow:0 30px 58px rgba(53,7,13,.25);
  transition:transform var(--transition), box-shadow var(--transition), border-color var(--transition);
}
.showcase-card::before{
  content:'';
  position:absolute;
  inset:0 auto 0 0;
  width:4px;
  background:linear-gradient(180deg, var(--gold-soft), var(--gold), rgba(178,139,79,.2));
}
.showcase-card { transition: transform var(--spring), box-shadow var(--transition), border-color var(--transition); }
.showcase-card:hover{ transform:translateY(-8px) scale(1.015); box-shadow:0 38px 72px rgba(53,7,13,.34); border-color:rgba(215,192,144,.6); }
.showcase-card__media{ aspect-ratio:16/10; overflow:hidden; background:var(--surface-soft); }
.showcase-card__media img{ width:100%; height:100%; object-fit:cover; transition:transform 800ms var(--spring); }
.showcase-card:hover .showcase-card__media img{ transform:scale(1.03); }
.showcase-card__body{
  padding:24px 26px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  background:
    linear-gradient(180deg, rgba(255,255,255,.92), rgba(248,241,232,.98));
}
.showcase-card__body h2{ font-size:clamp(1.9rem,3vw,2.6rem); margin-bottom:12px; }
.showcase-card__body p:last-child{ color:var(--muted); }

.section-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:24px;
  margin-bottom:32px;
}
.section-head.no-margin{ margin-bottom:22px; }
.section-head h2{
  position:relative;
  display:inline-block;
}
.section-head h2::after{
  content:'';
  position:absolute;
  left:0;
  bottom:-11px;
  width:66px;
  height:4px;
  background:linear-gradient(90deg, var(--gold), rgba(183,148,87,0));
}
.text-link{
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:var(--red-dark);
  font-size:.86rem;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.text-link::after{ content:'→'; transition:transform var(--transition); }
.text-link:hover::after{ transform:translateX(4px); }

.card-grid{ display:grid; gap:22px; }
.card-grid--news{ grid-template-columns:repeat(3, minmax(0,1fr)); }
.card-grid--discography{ grid-template-columns:repeat(4, minmax(0,1fr)); }
.card{
  position:relative;
  display:block;
  background:rgba(255,252,246,.92);
  border:1px solid rgba(36,31,26,.08);
  box-shadow:var(--shadow-soft);
  overflow:hidden;
  transition:transform var(--transition), box-shadow var(--transition), border-color var(--transition);
}
.card::before{
  content:'';
  position:absolute;
  left:0; right:0; top:0;
  height:3px;
  background:linear-gradient(90deg, rgba(178,139,79,.82), rgba(178,139,79,0));
  opacity:.92;
  z-index:1;
}
.card { transition: transform var(--spring), box-shadow var(--transition), border-color var(--transition); }
.card:hover{
  transform:translateY(-8px) scale(1.02);
  box-shadow:0 34px 64px rgba(36,31,26,.15);
  border-color:rgba(183,148,87,.58);
}
.card__image{ aspect-ratio:16/10; overflow:hidden; background:var(--surface-soft); }
.card__image img{ width:100%; height:100%; object-fit:cover; transition:transform 800ms var(--spring); }
.card:hover .card__image img{ transform:scale(1.045); }
.card__body{ padding:18px 18px 20px; display:grid; gap:10px; }
.card__body p:last-child{ color:var(--muted); }
.news-card .card__body h3,
.disc-card .card__body h3{ font-size:1.22rem; }
.news-card .card__body::before,
.disc-card .card__body::before{
  content:'';
  width:44px;
  height:1px;
  background:linear-gradient(90deg, var(--gold), transparent);
}

.live-stack{ display:grid; gap:16px; }
.live-item{
  display:grid;
  grid-template-columns:104px 1fr auto;
  gap:20px;
  align-items:center;
  padding:22px;
  background:rgba(255,252,246,.92);
  border:1px solid rgba(36,31,26,.08);
  box-shadow:var(--shadow-soft);
  transition:transform var(--spring), box-shadow var(--transition), border-color var(--transition);
}
.live-item:hover{ transform:translateY(-6px) scale(1.01); box-shadow:0 28px 58px rgba(36,31,26,.14); border-color:rgba(183,148,87,.55); }
.live-item--featured{ background:linear-gradient(180deg, rgba(255,252,246,.96), rgba(252,245,236,.98)); }
.live-item__date{
  display:grid;
  place-items:center;
  min-height:96px;
  padding:14px 10px;
  border:1px solid rgba(183,148,87,.34);
  background:
    linear-gradient(180deg, rgba(183,148,87,.13), rgba(200,14,28,.05)),
    linear-gradient(90deg, rgba(255,255,255,.18) 50%, transparent 50%) 0 0/28px 28px;
}
.live-item__date span{ font-size:.74rem; letter-spacing:.22em; color:var(--muted); }
.live-item__date strong{ font-family:"Cormorant Garamond","Noto Serif JP",serif; font-size:2.5rem; line-height:.9; }
.live-item__body h3{ font-size:1.2rem; }
.live-item__body p:last-child{ color:var(--muted); }
.status-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:126px;
  min-height:42px;
  padding:0 16px;
  border:1px solid rgba(36,31,26,.08);
  font-size:.75rem;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  background:var(--white);
}
.status-upcoming{ color:var(--red-dark); }
.status-sold_out{ color:#6f521c; background:#f5eddc; }
.status-ended{ color:#5d5d5d; background:#efeeec; }

.split-grid{ display:grid; grid-template-columns:1.18fr .82fr; gap:28px; }
.gallery-preview{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.gallery-preview__item{
  display:block;
  aspect-ratio:1/1;
  overflow:hidden;
  background:var(--surface-soft);
  box-shadow:var(--shadow-soft);
  border:1px solid rgba(36,31,26,.08);
}
.gallery-preview__item img,
.gallery-tile img{ width:100%; height:100%; object-fit:cover; transition:transform 700ms ease; }
.gallery-preview__item:hover img,
.gallery-tile:hover img{ transform:scale(1.04); }
.bio-teaser__box,
.contact-form,
.thanks-box,
.empty-box,
.article-body,
.detail-list,
.detail-section,
.bio-page__body{
  background:rgba(255,252,246,.92);
  border:1px solid rgba(36,31,26,.08);
  box-shadow:var(--shadow-soft);
}
.bio-teaser__box{ padding:30px; margin:0 0 22px; }
.bio-teaser__box p + p{ margin-top:14px; }

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  min-height:54px;
  padding:0 22px;
  border:1px solid transparent;
  font-size:.84rem;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
  transition:transform var(--spring), background var(--transition), color var(--transition), border-color var(--transition), box-shadow var(--transition);
  cursor:pointer;
}
.btn:hover{ transform:translateY(-3px) scale(1.02); }
.btn-primary{
  position:relative;
  overflow:hidden;
  color:#fff9f2;
  background:linear-gradient(135deg, var(--red) 0%, var(--red-dark) 100%);
  box-shadow:0 14px 28px rgba(91,6,13,.18);
}
.btn-primary::after {
  content: '';
  position: absolute;
  top: 0; left: -120%;
  width: 50%; height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.22), transparent);
  transform: skewX(-20deg);
  transition: none;
}
.btn-primary:hover::after {
  animation: shine 1.1s ease-in-out infinite;
}
@keyframes shine {
  0% { left: -100%; }
  100% { left: 200%; }
}
.btn-primary:hover{
  box-shadow:0 18px 36px rgba(91,6,13,.26);
}
.btn-outline{
  color:var(--text);
  background:transparent;
  border-color:rgba(36,31,26,.16);
}
.btn-outline:hover{ border-color:rgba(183,148,87,.56); background:rgba(255,255,255,.46); }
.btn-outline--light{
  color:#fff7ef;
  border-color:rgba(255,249,242,.48);
}
.btn-outline--light:hover{ background:rgba(255,249,242,.08); }

.page-hero{
  position:relative;
  padding:116px 0 36px;
}
.page-hero__box{
  position:relative;
  overflow:hidden;
  padding:44px 44px 42px;
  background:
    linear-gradient(90deg, rgba(200,14,28,.93), rgba(161,13,24,.93)),
    linear-gradient(90deg, rgba(255,255,255,.06) 50%, transparent 50%) 0 0/46px 46px,
    linear-gradient(rgba(255,255,255,.045) 50%, transparent 50%) 0 0/46px 46px;
  box-shadow:0 22px 48px rgba(82,11,16,.16);
}
.page-hero__box::after{
  content:'';
  position:absolute;
  left:44px;
  right:44px;
  bottom:0;
  height:4px;
  background:linear-gradient(90deg, rgba(215,192,144,.92), rgba(215,192,144,0));
}
.page-hero__box h1{ color:#fff8f1; }
.page-hero__lead{ margin-top:14px; max-width:720px; color:rgba(255,248,240,.82); }
.page-hero__ornament{
  position:absolute;
  top:24px;
  width:156px;
  height:42px;
  opacity:.8;
}
.page-hero__ornament::before,
.page-hero__ornament::after{
  content:'';
  position:absolute;
  inset:0;
  border:3px solid rgba(255,248,240,.92);
  border-radius:999px;
}
.page-hero__ornament::after{ width:56%; top:20px; }
.page-hero__ornament--left{ left:-38px; }
.page-hero__ornament--left::after{ left:-16px; }
.page-hero__ornament--right{ right:-38px; transform:scaleX(-1); }
.page-hero__ornament--right::after{ left:-16px; }

.article-hero,
.gallery-detail,
.detail-card__image,
.bio-page__image{
  overflow:hidden;
  background:var(--surface-soft);
  box-shadow:var(--shadow-soft);
  border:1px solid rgba(36,31,26,.08);
}
.article-hero img,
.gallery-detail img,
.detail-card__image img,
.bio-page__image img{ width:100%; height:auto; display:block; }
.article-body{ margin-top:28px; padding:32px; }
.article-body p + p{ margin-top:16px; }
.article-nav{ margin-top:26px; }
.detail-card{ display:grid; grid-template-columns:.88fr 1fr; gap:28px; align-items:start; }
.detail-card__image--square img{ aspect-ratio:1/1; object-fit:cover; }
.detail-card__body{ display:grid; gap:18px; }
.detail-list{ display:grid; gap:12px; padding:24px; }
.detail-list div{
  display:grid;
  grid-template-columns:160px 1fr;
  gap:16px;
  padding-bottom:12px;
  border-bottom:1px solid var(--line);
}
.detail-list div:last-child{ border-bottom:0; padding-bottom:0; }
.detail-list dt{ color:var(--muted); }
.detail-section{ padding:24px; }
.detail-section h2{ margin-bottom:12px; font-size:1.42rem; }
.external-links{ display:flex; flex-wrap:wrap; gap:12px; }
.bio-page{ display:grid; grid-template-columns:.78fr 1fr; gap:28px; align-items:start; }
.bio-page__body{ padding:30px; }
.bio-page__body p + p{ margin-top:16px; }
.gallery-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.gallery-tile{
  position:relative;
  display:block;
  aspect-ratio:4/5;
  overflow:hidden;
  box-shadow:var(--shadow-soft);
  border:1px solid rgba(36,31,26,.08);
}
.gallery-tile__caption{
  position:absolute;
  left:16px;
  right:16px;
  bottom:16px;
  z-index:1;
  color:#fff8f0;
  font-size:1.04rem;
  font-weight:700;
}
.gallery-tile::after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, transparent 36%, rgba(36,20,14,.74));
}

.form-group{ display:grid; gap:8px; margin-bottom:18px; }
.form-group label{ font-weight:700; }
.form-group input,
.form-group textarea,
.form-group select{
  width:100%;
  border:1px solid rgba(36,31,26,.12);
  background:#fffdf9;
  padding:14px 16px;
  outline:none;
  transition:border-color var(--transition), box-shadow var(--transition), background var(--transition);
}
.form-group input:focus,
.form-group textarea:focus,
.form-group select:focus{
  border-color:rgba(183,148,87,.7);
  box-shadow:0 0 0 4px rgba(183,148,87,.10);
  background:#fffefb;
}
.contact-form,
.thanks-box,
.empty-box{ padding:30px; }
.checkbox-line{ display:flex; gap:12px; align-items:flex-start; margin:0 0 18px; }
.error-text{ color:var(--red-deeper); font-size:.92rem; }

.site-footer{
  position:relative;
  padding:46px 0 56px;
  background:
    linear-gradient(180deg, rgba(122,10,19,.98), rgba(95,8,15,.98)),
    linear-gradient(90deg, rgba(255,255,255,.04) 50%, transparent 50%) 0 0/44px 44px,
    linear-gradient(rgba(255,255,255,.03) 50%, transparent 50%) 0 0/44px 44px;
  color:#fff7ef;
}
.site-footer::before{
  content:'';
  position:absolute;
  left:0; right:0; top:0;
  height:4px;
  background:linear-gradient(90deg, var(--gold) 0%, rgba(215,192,144,.95) 50%, var(--gold) 100%);
  opacity:.9;
}
.site-footer__inner{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:26px;
}
.site-footer__brand{ display:grid; gap:12px; }
.site-logo--footer{ color:#fff8f1; }
.site-logo--footer .site-logo__text{ font-size:1.9rem; }
.site-footer__meta{
  display:grid;
  justify-items:end;
  gap:18px;
}
.site-footer__copy{ color:rgba(255,247,239,.72); }
.site-footer__social{
  display:flex;
  align-items:center;
  gap:14px;
}
.site-footer__social-link{
  width:44px;
  height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  border:1px solid rgba(215,192,144,.28);
  background:linear-gradient(180deg, rgba(255,250,243,.08), rgba(255,250,243,.02));
  box-shadow:0 12px 22px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,247,239,.12);
  color:var(--gold-soft);
  transition:transform var(--transition), border-color var(--transition), color var(--transition), box-shadow var(--transition), background var(--transition);
}
.site-footer__social-link svg{
  width:20px;
  height:20px;
  display:block;
  fill:currentColor;
}
.site-footer__social-link:hover{
  transform:translateY(-2px);
  color:#e4c889;
  border-color:rgba(228,200,137,.55);
  box-shadow:0 16px 30px rgba(0,0,0,.22), 0 0 22px rgba(215,192,144,.14), inset 0 1px 0 rgba(255,247,239,.16);
  background:linear-gradient(180deg, rgba(255,250,243,.14), rgba(255,250,243,.04));
}
.site-footer__links{ display:flex; flex-wrap:wrap; gap:14px 18px; }
.site-footer__links a{
  color:rgba(255,247,239,.82);
  font-size:.84rem;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.site-footer__links a:hover{ color:#fffdf8; }

.reveal{
  opacity:0;
  transform:translateY(32px);
  transition:opacity 1100ms cubic-bezier(0.16, 1, 0.3, 1), transform 1100ms cubic-bezier(0.16, 1, 0.3, 1);
}
.reveal.is-visible{
  opacity:1;
  transform:none;
}

@media (max-width: 1120px){
  .hero-slide__inner{ grid-template-columns:1fr .88fr; gap:40px; }
  .card-grid--discography{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .split-grid,
  .detail-card,
  .bio-page{ grid-template-columns:1fr; }
}

@media (max-width: 920px){
  :root{ --header-h:72px; }
  .container,
  .narrow{ width:min(calc(100% - 28px), var(--container)); }
  .menu-toggle{ display:flex; }
  .site-nav{
    position:fixed;
    top:var(--header-h);
    left:14px;
    right:14px;
    padding:18px 18px 20px;
    display:none;
    flex-direction:column;
    align-items:flex-start;
    background:rgba(249,245,239,.98);
    border:1px solid rgba(36,31,26,.10);
    box-shadow:0 20px 40px rgba(36,31,26,.12);
  }
  .home-page .site-nav{
    background:rgba(112,12,19,.98);
    border-color:rgba(255,248,240,.14);
    box-shadow:0 22px 44px rgba(50,5,10,.28);
  }
  .menu-open .site-nav{ display:flex; }
  .site-nav ul{ width:100%; flex-direction:column; align-items:flex-start; gap:10px; }
  .site-nav li{ width:100%; }
  .site-nav a{ width:100%; min-height:44px; }
  .lang-switch{ width:100%; padding:14px 0 0; border-left:0; border-top:1px solid rgba(36,31,26,.12); }
  .home-page .lang-switch{ border-top-color:rgba(255,248,240,.18); }
  .hero-slider{ min-height:auto; }
  .hero-slide{ position:relative; display:none; }
  .hero-slide.is-active{ display:block; }
  .hero-slide__inner{
    min-height:auto;
    grid-template-columns:1fr;
    gap:30px;
    padding-top:124px;
    padding-bottom:172px;
  }
  .hero-slide__visual{ justify-content:flex-start; }
  .hero-frame{ width:min(100%, 560px); aspect-ratio:4/3; }
  .hero-cloud{ width:210px; height:60px; opacity:.56; top:18%; }
  .hero-showcase{
    grid-template-columns:1fr;
    margin-top:-112px;
  }
  .showcase-card{ grid-template-columns:128px 1fr; }
  .showcase-card__media{ min-height:148px; }
  .card-grid--news,
  .gallery-grid{ grid-template-columns:repeat(2, minmax(0,1fr)); }
}

@media (max-width: 640px){
  .section{ padding:68px 0; }
  .site-logo__text{ font-size:1.72rem; }
  h1{ font-size:clamp(2.5rem,13vw,4rem); }
  h2{ font-size:clamp(1.95rem,9vw,2.7rem); }
  .hero-kicker{ font-size:1rem; }
  .hero-ribbon{ min-height:56px; padding:0 22px; margin:28px 0 22px; font-size:.86rem; }
  .hero-actions{ gap:10px; }
  .btn{ width:100%; }
  .hero-actions .btn{ width:auto; }
  .showcase-card{ grid-template-columns:1fr; }
  .card-grid--news,
  .card-grid--discography,
  .gallery-preview,
  .gallery-grid{ grid-template-columns:1fr; }
  .live-item{ grid-template-columns:82px 1fr; padding:18px; }
  .status-pill{ grid-column:2 / -1; justify-self:start; }
  .detail-list div{ grid-template-columns:1fr; gap:6px; }
  .page-hero{ padding-top:96px; }
  .page-hero__box{ padding:34px 22px 30px; }
  .page-hero__box::after{ left:22px; right:22px; }
  .page-hero__ornament{ width:112px; height:30px; top:16px; }
  .article-body,
  .detail-list,
  .detail-section,
  .bio-page__body,
  .bio-teaser__box,
  .contact-form,
  .thanks-box,
  .empty-box{ padding:22px; }
  .site-footer__inner{ flex-direction:column; }
  .site-footer__meta{ justify-items:center; }
}


/* --- GrabVag final logo-driven refinements --- */
.site-logo{
  display:inline-flex;
  align-items:center;
  min-height:56px;
  min-width:0;
}
.site-logo__mark,
.site-logo__text{ display:none !important; }
.site-logo__image{
  display:block;
  width:auto;
  height:52px;
  max-width:min(46vw, 280px);
  object-fit:contain;
}
.site-logo--footer{
  display:inline-flex;
  padding:10px 14px;
  background:rgba(255,248,241,.96);
  box-shadow:0 12px 28px rgba(45,0,7,.18);
}
.site-logo--footer .site-logo__image{
  height:44px;
  max-width:280px;
}
.hero-slide__inner{
  grid-template-columns:minmax(0,.84fr) minmax(360px,1.16fr);
  gap:44px;
}
.hero-slide__copy{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:0;
  max-width:560px;
}
.hero-slide__copy::before{ display:none; }
.hero-brand{
  display:inline-flex;
  align-items:center;
  max-width:min(100%, 560px);
}
.hero-brand__logo{
  display:block;
  width:100%;
  height:auto;
  filter:drop-shadow(0 10px 26px rgba(26,0,3,.22));
}
.hero-ribbon--compact{
  min-height:56px;
  margin:28px 0 0;
  padding:0 28px;
  font-size:.86rem;
  letter-spacing:.18em;
}
.hero-slide__visual{
  justify-content:flex-end;
  align-items:center;
}
.hero-frame{
  width:min(100%, 640px);
  aspect-ratio:16 / 10.5;
  padding:16px;
}
.hero-frame img{
  border-width:8px;
}
.hero-frame--logo{
  display:grid;
  place-items:center;
  background:
    linear-gradient(180deg, rgba(255,248,241,.10), rgba(255,248,241,.04)),
    linear-gradient(90deg, rgba(255,255,255,.05) 50%, transparent 50%) 0 0/50px 50px,
    linear-gradient(rgba(255,255,255,.04) 50%, transparent 50%) 0 0/50px 50px;
}
.hero-frame__logo{
  width:min(78%, 480px);
  height:auto;
  object-fit:contain;
  border:0 !important;
  background:transparent !important;
  margin-inline:auto;
}
.showcase-card__body .meta{
  margin-bottom:10px;
  color:var(--red-dark);
}
.showcase-card__body h2{
  font-size:clamp(1.55rem,2.8vw,2.15rem);
  margin-bottom:10px;
}
.section-head{
  align-items:center;
  margin-bottom:26px;
}
.section-head > h2{
  position:relative;
  display:inline-block;
}
.section-head > h2::after{
  content:'';
  position:absolute;
  left:0;
  bottom:-11px;
  width:62px;
  height:4px;
  background:linear-gradient(90deg, var(--gold), rgba(183,148,87,0));
}
.text-link{
  font-size:.74rem;
  letter-spacing:.22em;
}
.news-card .card__body,
.disc-card .card__body{
  gap:8px;
}
.news-card .card__body p:last-child{
  color:var(--text);
}
.bio-teaser__box{
  min-height:100%;
}
.page-hero{
  padding:110px 0 30px;
}
.page-hero__brand{
  display:inline-flex;
  align-items:center;
  margin-bottom:18px;
}
.page-hero__brand--plain{
  margin-bottom:20px;
}
.page-hero__logo{
  display:block;
  width:auto;
  height:56px;
  max-width:min(70vw, 320px);
  object-fit:contain;
}
.page-hero__logo--dark{
  filter:none;
}
.page-hero__lead{
  margin-top:16px;
  font-size:.96rem;
  letter-spacing:.08em;
}
.thanks-box > p:not(.error-text),
.thanks-box > .admin-note{
  max-width:38rem;
}
@media (max-width: 920px){
  .site-logo__image{
    height:46px;
    max-width:min(60vw, 230px);
  }
  .hero-slide__inner{
    gap:24px;
    padding-top:118px;
    padding-bottom:164px;
  }
  .hero-slide__copy{
    max-width:100%;
  }
  .hero-brand{
    max-width:min(100%, 460px);
  }
  .hero-slide__visual{
    justify-content:flex-start;
  }
  .hero-frame{
    width:min(100%, 560px);
    aspect-ratio:16 / 11;
  }
}
@media (max-width: 640px){
  .site-logo__image{
    height:40px;
    max-width:min(66vw, 200px);
  }
  .hero-brand{
    max-width:100%;
  }
  .hero-ribbon--compact{
    min-height:50px;
    padding:0 20px;
    font-size:.74rem;
    letter-spacing:.14em;
  }
  .hero-frame{
    padding:12px;
  }
  .showcase-card__body h2{
    font-size:1.45rem;
  }
  .page-hero__logo{
    height:42px;
    max-width:min(78vw, 250px);
  }
}


/* --- GrabVag final pass: smaller header logo / centered hero nav / visible hamburger --- */
.site-header .site-logo__image{
  height:30px;
  max-width:min(34vw, 170px);
}
.site-header__inner{
  min-height:74px;
}
.menu-toggle{
  border:1px solid rgba(36,31,26,.14);
  border-radius:999px;
  background:rgba(255,251,245,.92);
  box-shadow:0 12px 24px rgba(36,31,26,.10);
  backdrop-filter:blur(10px);
}
.menu-toggle span{
  width:20px;
  background:var(--text);
}
.home-page .menu-toggle{
  background:rgba(93,8,14,.56);
  border-color:rgba(255,247,239,.28);
  box-shadow:0 14px 30px rgba(40,0,6,.18);
}
.home-page .menu-toggle span,
.home-page .site-header.is-scrolled .menu-toggle span{
  background:rgba(255,250,244,.96);
}
.home-page .site-header.is-scrolled .menu-toggle{
  background:rgba(78,7,12,.72);
  border-color:rgba(255,247,239,.22);
}
.hero-slide__inner{
  grid-template-columns:minmax(0,1fr);
  gap:22px;
  justify-items:center;
  padding-top:132px;
  padding-bottom:182px;
}
.hero-slide__topnav{
  position:relative;
  z-index:3;
  width:min(100%, 960px);
  display:flex;
  justify-content:center;
}
.hero-quicknav{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:12px;
}
.hero-quicknav__link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:0 18px;
  border-radius:999px;
  border:1px solid rgba(255,247,239,.26);
  background:rgba(90,7,13,.22);
  color:rgba(255,249,242,.96);
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.14em;
  line-height:1;
  box-shadow:0 14px 28px rgba(38,0,5,.12);
  backdrop-filter:blur(8px);
  transition:transform var(--transition), background var(--transition), border-color var(--transition), box-shadow var(--transition);
  white-space:nowrap;
}
.hero-quicknav__link:hover,
.hero-quicknav__link:focus-visible{
  transform:translateY(-2px);
  background:rgba(255,248,240,.14);
  border-color:rgba(215,192,144,.72);
  box-shadow:0 18px 36px rgba(38,0,5,.18);
}
.hero-slide__copy{
  width:100%;
  display:flex;
  justify-content:center;
  align-items:center;
  max-width:none;
  text-align:center;
}
.hero-ribbon--compact{
  margin:0;
}
.hero-slide__visual{
  width:100%;
  justify-content:center;
  align-items:center;
}
.hero-frame{
  width:min(100%, 860px);
  aspect-ratio:16 / 10;
}
.hero-frame__logo{
  width:min(72%, 440px);
}
@media (max-width: 920px){
  .site-header .site-logo__image{
    height:28px;
    max-width:min(44vw, 150px);
  }
  .site-header__inner{
    min-height:70px;
  }
  .hero-slide__inner{
    gap:18px;
    padding-top:104px;
    padding-bottom:160px;
  }
  .hero-quicknav{
    gap:10px;
  }
  .hero-quicknav__link{
    min-height:40px;
    padding:0 16px;
    font-size:.72rem;
    letter-spacing:.1em;
  }
  .hero-frame{
    width:min(100%, 620px);
    aspect-ratio:16 / 11;
  }
}
@media (max-width: 640px){
  .site-header .site-logo__image{
    height:24px;
    max-width:min(46vw, 130px);
  }
  .menu-toggle{
    width:44px;
    height:44px;
  }
  .hero-slide__inner{
    padding-top:96px;
    padding-bottom:146px;
  }
  .hero-quicknav{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    width:100%;
  }
  .hero-quicknav__link{
    width:100%;
    min-height:38px;
    padding:0 12px;
    font-size:.7rem;
  }
  .hero-ribbon--compact{
    min-height:48px;
    padding:0 18px;
    font-size:.68rem;
    letter-spacing:.1em;
  }
  .hero-frame{
    width:100%;
    aspect-ratio:1 / 1;
  }
  .hero-frame__logo{
    width:min(78%, 320px);
  }
}


.hp-field {
  position: absolute !important;
  left: -9999px !important;
  width: 1px !important;
  height: 1px !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

.form-error-box {
  margin-bottom: 18px;
  padding: 12px 14px;
  border: 1px solid rgba(165, 22, 32, 0.18);
  background: rgba(165, 22, 32, 0.06);
}
