/* =========================================================
   EZER ArtHall — 홈(첫 화면)
   데스크톱(≥901px) : 스크롤 없는 한 화면
   모바일(≤900px)  : 세로 스크롤 흐름
   ========================================================= */

.ez-home, .ez-drawer{
  --ez-gold:       #d8a43d;
  --ez-gold-soft:  #e2b869;
  --ez-gold-line:  rgba(206,164,80,.55);
  --ez-gold-faint: rgba(216,164,61,.32);
  --ez-ink:        #f4f1eb;
  --ez-ink-2:      #d6cec1;
  --ez-ink-mute:   #a89e8e;
  --ez-bg:         #050505;
  --ez-hall:       url("/assets/hall-main-user.jpg");   /* 카드 배경용 원본 */
  --ez-font-ko:    "Noto Sans KR", system-ui, -apple-system, sans-serif;
  --ez-font-serif: "Noto Serif KR", serif;
  --ez-font-en:    "Playfair Display", serif;
  --ez-font-en2:   "Cormorant Garamond", serif;
}

/* 전역 규칙은 건드리지 않습니다 — 모바일 화면은 기존 styles.css 그대로 */
.ez-home a{ color:inherit; text-decoration:none; }
.ez-home *,.ez-home *::before,.ez-home *::after{ box-sizing:border-box; }

.ez-sr-only{
  position:absolute; width:1px; height:1px;
  margin:-1px; padding:0; border:0;
  clip:rect(0 0 0 0); clip-path:inset(50%); overflow:hidden; white-space:nowrap;
}

/* =========================================================
   데스크톱 홈
   ========================================================= */

.ez-home{
  position:relative;
  display:none;
  width:100%;
  height:100vh;
  min-height:700px;
  overflow:hidden;
  color:var(--ez-ink);
  background:#050505;
}
/* 무대 사진 레이어 */
/* v1.37 — 사용자가 지정한 공연장 사진을 AI 업스케일 보정본으로 교체하고,
   우측 상단 배치 + 기존 대비 80% 크기로 축소한 뒤 왼쪽/아래쪽을 그라데이션으로 자연스럽게 연결합니다. */
.ez-home::before{
  content:"";
  position:absolute; top:0; right:0; z-index:0;
  width:90%; height:90%;
  background:url("/assets/hall-stage-hq-v137.webp") right top / cover no-repeat;
  filter:saturate(1.03) contrast(1.04) brightness(1.01);
  -webkit-mask-image:
    linear-gradient(90deg, transparent 0%, rgba(0,0,0,.72) 16%, #000 31%, #000 100%),
    linear-gradient(180deg, #000 0%, #000 72%, transparent 100%);
  -webkit-mask-composite: source-in;
  mask-image:
    linear-gradient(90deg, transparent 0%, rgba(0,0,0,.72) 16%, #000 31%, #000 100%),
    linear-gradient(180deg, #000 0%, #000 72%, transparent 100%);
  mask-composite: intersect;
}
/* 가독성을 위한 어둡기 레이어 */
.ez-home::after{
  content:"";
  position:absolute; inset:0; z-index:1;
  background:
    linear-gradient(90deg,
      rgba(5,5,5,1) 0%,
      rgba(5,5,5,.985) 25%,
      rgba(5,5,5,.88) 37%,
      rgba(5,5,5,.48) 52%,
      rgba(5,5,5,.16) 68%,
      rgba(5,5,5,.10) 100%),
    linear-gradient(180deg,
      rgba(0,0,0,.12) 0%,
      rgba(0,0,0,.04) 36%,
      rgba(0,0,0,.18) 64%,
      rgba(0,0,0,.80) 100%);
}

/* ---------- 상단 헤더 ---------- */
.ez-hd{
  position:absolute; inset:0 0 auto 0;
  z-index:8;
  height:64px;
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:24px;
  padding:0 34px;
  background:linear-gradient(180deg, rgba(0,0,0,.55), rgba(0,0,0,.18));
  border-bottom:1px solid rgba(206,164,80,.5);
}
.ez-hd-brand{ display:flex; align-items:center; gap:12px; white-space:nowrap; }
.ez-hd-brand-mark{ width:22px; height:30px; display:grid; place-items:center; color:var(--ez-gold); }
.ez-hd-brand-mark svg{ width:100%; height:100%; fill:none; stroke:currentColor; stroke-width:2.1; stroke-linecap:round; stroke-linejoin:round; }
.ez-hd-brand-text{
  color:var(--ez-gold);
  font-family:var(--ez-font-en2);
  font-size:15.5px; font-weight:600; letter-spacing:.13em;
  text-transform:uppercase;
}

.ez-hd-nav{ justify-self:end; display:flex; align-items:center; gap:6px; }
.ez-hd-nav a{
  position:relative;
  padding:9px 13px;
  font:600 15.5px/1.1 var(--ez-font-serif);
  color:#ece8e0; letter-spacing:-.01em;
  white-space:nowrap;
  transition:color .18s;
}
.ez-hd-nav a:hover,
.ez-hd-nav a.ez-is-active{ color:var(--ez-gold); }

.ez-hd-burger{
  width:44px; height:44px;
  display:grid; place-content:center; gap:6px;
  border:0; background:transparent; cursor:pointer;
}
.ez-hd-burger i{ display:block; width:30px; height:2px; border-radius:999px; background:var(--ez-gold); }

/* ---------- 히어로 카피 ---------- */
.ez-hero{
  position:absolute; left:4.7%; top:9.6vh;
  z-index:4;
  width:min(32vw, 430px);
  display:grid; gap:0;
  text-shadow:0 2px 18px rgba(0,0,0,.55);
}
.ez-hero-kicker{
  margin-bottom:14px;
  font:600 clamp(17px,1.32vw,23px)/1.3 var(--ez-font-serif);
  color:#ece7dd; letter-spacing:-.015em;
}
.ez-hero-word{
  margin:0;
  font:600 clamp(96px,7.5vw,130px)/.86 var(--ez-font-en);
  color:var(--ez-gold); letter-spacing:-.035em;
}
.ez-hero-sub{
  display:block; margin-top:2px;
  font:500 clamp(68px,5.4vw,95px)/.98 var(--ez-font-en);
  color:#faf8f4; letter-spacing:-.03em;
}
.ez-hero-tag{
  margin-top:14px;
  font:600 clamp(12.5px,.88vw,15px)/1.2 var(--ez-font-en2);
  letter-spacing:.34em; color:#cfc3ae; font-style:normal;
  text-transform:uppercase;
}
.ez-hero-lead{
  margin:22px 0 0;
  font:400 clamp(16px,1.14vw,20px)/1.75 var(--ez-font-serif);
  color:#ddd7cb; word-break:keep-all;
}

/* ---------- 다음 공연 패널 (포스터 + 설명) ---------- */
.ez-upcoming{
  position:absolute;
  left:4.7%; bottom:8.6%;
  z-index:5;
  width:clamp(430px, 32vw, 534px);
  height:clamp(300px, 41vh, 392px);
  display:grid;
  grid-template-rows:minmax(0,1fr);
  border:1px solid var(--ez-gold-line);
  border-radius:14px;
  background:linear-gradient(180deg, rgba(10,9,8,.90), rgba(6,6,6,.96));
  box-shadow:0 22px 54px rgba(0,0,0,.45);
  overflow:hidden;
}
.ez-upcoming-head{
  display:flex; align-items:center; justify-content:flex-end;
  padding:0 18px;
}
.ez-upcoming-head a{
  font:600 12px/1 var(--ez-font-ko);
  letter-spacing:.04em; color:var(--ez-gold);
  padding-bottom:3px; border-bottom:1px solid rgba(206,164,80,.35);
  transition:border-color .18s;
}
.ez-upcoming-head a:hover{ border-bottom-color:var(--ez-gold); }
.ez-upcoming-body{ min-height:0; padding:10px 18px 14px; }

.ez-upcoming-empty{
  height:100%; margin:0;
  display:grid; place-items:center;
  text-align:center;
  color:var(--ez-ink-mute); font-size:13px; line-height:1.7;
}

/* 포스터 + 설명 2단 */
.ez-upcoming-item{
  height:100%;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  grid-template-rows:minmax(0,1fr) auto;
  column-gap:22px; row-gap:10px;
}
.ez-upcoming-poster{
  grid-row:1; grid-column:1;
  display:block;
  height:100%; min-height:0;
  aspect-ratio:3 / 4;   /* 세로로 긴 포스터 비율 */
  width:auto;
  border-radius:8px; overflow:hidden;
  border:1px solid rgba(206,164,80,.3);
  background:#0b0a09;
}
.ez-upcoming-poster img{
  width:100%; height:100%;
  object-fit:cover; display:block;
}
.ez-upcoming-info{
  grid-row:1; grid-column:2;
  min-width:0;
  display:grid; gap:0; align-content:center;
}
.ez-upcoming-info h3{
  margin:0;
  font:700 clamp(16px,1.2vw,20px)/1.5 var(--ez-font-serif);
  color:#fff; letter-spacing:-.015em; word-break:keep-all;
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;
}
.ez-upcoming-info strong{
  margin-top:11px;
  font:700 clamp(12.5px,.94vw,15px)/1 var(--ez-font-ko);
  letter-spacing:.01em; color:var(--ez-gold);
}
/* v1.34 — 날짜 바로 아래에 붙는 정원 · 예약 · 잔여 현황 */
.ez-upcoming-capacity{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
  gap:6px; margin-top:12px; width:100%;
  font-family:var(--ez-font-serif);
}
.ez-upcoming-capacity > span{
  min-height:44px; padding:6px 8px 6px;
  display:grid; grid-template-columns:auto auto 1fr; align-items:end; column-gap:3px;
  border:1px solid rgba(216,164,61,.34); border-radius:9px;
  background:linear-gradient(145deg,rgba(25,21,15,.93),rgba(8,8,7,.96));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}
.ez-upcoming-capacity small{
  grid-column:1 / -1; margin-bottom:1px;
  color:#b9ad99; font:600 9px/1.15 var(--ez-font-serif); letter-spacing:.02em;
}
.ez-upcoming-capacity b{
  color:var(--ez-gold-soft); font:700 clamp(16px,1.08vw,20px)/1 var(--ez-font-serif);
}
.ez-upcoming-capacity em{
  align-self:end; padding-bottom:1px; color:#ddd4c6; font:500 9px/1 var(--ez-font-serif); font-style:normal;
}
.ez-upcoming-capacity .ez-capacity-remain{
  border-color:rgba(226,184,105,.64);
  background:linear-gradient(145deg,rgba(48,34,16,.94),rgba(13,10,7,.97));
}
.ez-upcoming-capacity .ez-capacity-remain b{color:#ffd98a}
@media (min-width:901px) and (max-height:820px){
  .ez-upcoming-capacity{margin-top:8px;gap:5px}
  .ez-upcoming-capacity > span{min-height:38px;padding:4px 6px}
  .ez-upcoming-capacity small{font-size:8px}
  .ez-upcoming-capacity b{font-size:15px}
}
.ez-upcoming-info p{
  margin:10px 0 0;
  font:400 clamp(11.5px,.82vw,13px)/1.8 var(--ez-font-ko);
  color:#aaa294; word-break:keep-all;
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;
}
.ez-upcoming-summary{
  margin-top:10px;
  color:#b2aa9c;
}
.ez-upcoming-cta{
  justify-self:start;
  margin-top:18px;
  height:44px; padding:0 24px;
  display:inline-flex; align-items:center; gap:8px;
  border:1px solid var(--ez-gold);
  border-radius:999px;
  background:linear-gradient(180deg, rgba(216,164,61,.96), rgba(190,140,48,.96));
  color:#151007;
  font:700 clamp(13px,.96vw,14.5px)/1 var(--ez-font-ko); letter-spacing:.01em;
  transition:filter .18s, transform .18s;
}
.ez-upcoming-cta:hover{ filter:brightness(1.08); transform:translateY(-1px); }
.ez-upcoming-cta::after{ content:"›"; font-size:17px; line-height:1; }

.ez-upcoming-dots{
  grid-row:2; grid-column:1 / -1;
  display:flex; align-items:center; gap:7px;
}
.ez-upcoming-dots i{
  width:7px; height:7px; border-radius:50%;
  background:rgba(206,164,80,.3);
}
.ez-upcoming-dots i.ez-on{ background:var(--ez-gold); }

/* ---------- 바로가기 카드 ---------- */
.ez-quick{
  position:absolute;
  right:4.25%; bottom:8.6%;
  z-index:5;
  display:flex; justify-content:flex-end;
  gap:18px;
}
.ez-quick-card{
  position:relative;
  overflow:hidden;
  width:clamp(168px, 13.6vw, 228px);
  aspect-ratio:1 / 1;
  padding:24px 16px;
  border:1px solid var(--ez-gold-line);
  border-radius:16px;
  display:grid;
  grid-template-rows:auto auto auto;
  justify-items:center; align-content:center;
  gap:14px;
  text-align:center;
  color:#fff;
  background-size:cover; background-position:center; background-repeat:no-repeat;
  box-shadow:0 18px 44px rgba(0,0,0,.4);
  transition:transform .2s, border-color .2s;
}
.ez-quick-card:hover{ transform:translateY(-4px); border-color:rgba(226,184,105,.9); }
.ez-quick-card::before{
  content:""; position:absolute; inset:0; z-index:0;
  background:linear-gradient(180deg, rgba(7,6,5,.90), rgba(2,2,2,.95));
}
.ez-quick-card > *{ position:relative; z-index:1; }

.ez-q-concert{ background-image:url("/assets/hall.jpg"); }
.ez-q-ticket { background-image:url("/assets/hall-main-user.jpg"); }
.ez-q-rental { background-image:url("/assets/practice.jpg"); }
.ez-q-salon  { background-image:url("/assets/hall-main.jpg"); }

.ez-quick-icon{
  width:58px; height:58px;
  display:grid; place-items:center;
  border:1px solid rgba(216,172,88,.85);
  border-radius:50%;
  color:var(--ez-gold-soft);
}
.ez-quick-icon svg{ width:26px; height:26px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.ez-quick-card b{
  font:600 clamp(17px,1.34vw,22px)/1.3 var(--ez-font-serif);
  color:#fff; letter-spacing:-.015em; word-break:keep-all;
}
.ez-quick-card small{
  margin-top:-3px;
  font:400 clamp(11px,.8vw,12.5px)/1.75 var(--ez-font-ko);
  color:#a8a094; word-break:keep-all;
}

/* ---------- 푸터 (한 줄) ---------- */
.ez-ft{
  position:absolute; left:0; right:0; bottom:0;
  z-index:6;
  height:62px;
  display:flex; align-items:center;
  gap:22px;
  padding:0 34px;
  background:linear-gradient(180deg, rgba(5,5,5,.86), rgba(6,6,6,.96));
  border-top:1px solid rgba(206,164,80,.4);
}
.ez-ft-contact{
  display:flex; align-items:center; gap:9px;
  min-width:0;
  font:500 12.5px/1.2 var(--ez-font-ko); letter-spacing:-.005em; color:#ddd8cf;
}
.ez-ft-address{ flex:0 1 auto; }
.ez-ft-contact span{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ez-ft-contact svg{ width:19px; height:19px; flex:0 0 auto; fill:none; stroke:var(--ez-gold); stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }

.ez-ft-sep{ width:1px; height:22px; background:rgba(206,164,80,.35); }

.ez-ft-social{ display:flex; align-items:center; gap:9px; }
.ez-ft-social a{
  width:32px; height:32px;
  display:grid; place-items:center;
  border:1px solid rgba(206,164,80,.55);
  border-radius:8px; color:var(--ez-gold);
}
.ez-ft-social svg{ width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.ez-ft-social .ez-dot{ fill:currentColor; stroke:none; }

.ez-ft-support{
  flex:0 0 auto;
  font-family:var(--ez-font-ko);
  height:32px; padding:0 20px;
  border:1px solid rgba(206,164,80,.6);
  border-radius:999px;
  background:transparent;
  color:var(--ez-gold);
  font:600 11.5px/1 var(--ez-font-ko); letter-spacing:.12em;
  cursor:pointer;
}
.ez-ft-support:hover{ background:rgba(206,164,80,.1); }

.ez-ft-policy{
  margin-left:auto;
  display:flex; align-items:center; gap:11px;
  white-space:nowrap;
}
.ez-ft-policy a{ font:500 11.5px/1 var(--ez-font-ko); letter-spacing:-.005em; color:#b7ac96; }
.ez-ft-policy a:hover{ color:var(--ez-gold); }
.ez-ft-policy i{ display:block; width:1px; height:11px; background:var(--ez-gold-faint); }

.ez-ft-note{
  position:absolute; left:34px; right:34px; bottom:66px;
  margin:0; padding:11px 16px;
  border:1px solid rgba(206,164,80,.4);
  border-radius:10px;
  background:rgba(8,8,8,.96);
  color:#d3c9b6; font:500 12px/1.5 var(--ez-font-ko);
}
.ez-ft-note[hidden]{ display:none; }

/* ---------- 데스크톱 중간 폭 보정 ---------- */
@media (max-width:1280px){
  .ez-hd{ padding:0 22px; }
  .ez-hd-nav{ gap:14px; }
  .ez-hd-nav a{ font-size:14px; padding:8px 5px; }
  .ez-hero{ left:3.6%; width:min(33vw,360px); }
  .ez-upcoming{ left:3.6%; width:clamp(380px,34vw,450px); }
  .ez-quick{ right:3.6%; gap:12px; }
  .ez-quick-card{ width:clamp(140px,13vw,180px); padding:18px 10px; gap:11px; }
  .ez-quick-icon{ width:48px; height:48px; }
  .ez-quick-icon svg{ width:22px; height:22px; }
    .ez-ft{ padding:0 20px; gap:14px; }
  .ez-ft-contact{ font-size:11.5px; }
  .ez-ft-policy{ gap:8px; }
  .ez-ft-policy a{ font-size:11px; }
}

/* 데스크톱에서만 새 홈을 사용하고, 900px 이하 모바일은 기존 화면을 그대로 씁니다 */
@media (min-width:901px){
  .ez-home{ display:block; }
}
@media (max-width:900px){
  .ez-home{ display:none !important; }
}

/* =========================================================
   공용 드로어
   ========================================================= */

.ez-drawer{
  position:fixed; top:0; right:0; z-index:60;
  width:min(330px, 82vw); height:100%;
  padding:90px 32px 30px;
  background:rgba(8,8,8,.985);
  border-left:1px solid rgba(206,164,80,.38);
  transform:translateX(100%);
  transition:transform .24s ease;
  visibility:hidden;
}
.ez-drawer.ez-is-open{ transform:translateX(0); visibility:visible; }
.ez-drawer-title{
  display:block; margin-bottom:28px;
  color:#e1b75f; font-family:var(--ez-font-en); font-size:28px;
}
.ez-drawer nav{ display:grid; gap:4px; }
.ez-drawer nav a{
  display:flex; align-items:center;
  min-height:48px;
  border-bottom:1px solid rgba(206,164,80,.17);
  color:#eee; font-size:15px;
}
.ez-drawer-close{
  position:absolute; right:25px; top:22px;
  width:44px; height:44px;
  border:0; background:transparent;
  color:#fff; font-size:38px; line-height:1; cursor:pointer;
}
.ez-drawer-backdrop{
  position:fixed; inset:0; z-index:59;
  border:0; background:rgba(0,0,0,.5);
}
.ez-drawer-backdrop[hidden]{ display:none; }

@media (prefers-reduced-motion:reduce){
  *{ transition:none !important; animation:none !important; }
}

/* =========================================================
   v1.6 · 다음 공연 안내 가로 슬라이드 / 자동 롤링
   - 최대 4개 예정 공연을 좌우로 넘김
   - 4.5초마다 자동 전환
   - 마우스/터치/트랙패드 좌우 이동 가능
   - 별도의 '공연예매' 버튼 제거, 포스터/제목으로 상세 확인
   ========================================================= */
.ez-upcoming-body{
  display:grid;
  grid-template-rows:minmax(0,1fr) auto;
  gap:10px;
  overflow:hidden;
}
.ez-upcoming-track{
  min-width:0;
  min-height:0;
  display:flex;
  overflow-x:auto;
  overflow-y:hidden;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  overscroll-behavior-x:contain;
  touch-action:pan-x;
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
}
.ez-upcoming-track::-webkit-scrollbar{display:none}
.ez-upcoming-slide{
  flex:0 0 100%;
  width:100%;
  min-width:100%;
  height:100%;
  scroll-snap-align:start;
  scroll-snap-stop:always;
}
.ez-upcoming-slide .ez-upcoming-item{
  grid-template-rows:minmax(0,1fr) auto;
  height:100%;
}
.ez-upcoming-title-link{
  color:inherit;
  text-decoration:none;
}
.ez-upcoming-title-link:hover h3{color:var(--ez-gold)}
.ez-upcoming-cta{display:none!important}
.ez-upcoming-dots{
  grid-row:auto;
  grid-column:auto;
  justify-content:flex-start;
  gap:8px;
  min-height:10px;
}
.ez-upcoming-dots button{
  width:7px;
  height:7px;
  margin:0;
  padding:0;
  border:0;
  border-radius:50%;
  background:rgba(206,164,80,.30);
  cursor:pointer;
  transition:width .22s ease, border-radius .22s ease, background .22s ease;
}
.ez-upcoming-dots button.ez-on{
  width:22px;
  border-radius:999px;
  background:var(--ez-gold);
}


/* =========================================================
   v1.8 · 홈 다음 공연 카드 개선
   - 상단 전체보기 제거
   - 포스터를 상단 여유공간까지 확대
   - 포스터/제목/일시/설명 전체 클릭 시 해당 공연예매 상세로 이동
   ========================================================= */
.ez-upcoming{
  grid-template-rows:minmax(0,1fr)!important;
}
.ez-upcoming-head{display:none!important}
.ez-upcoming-body{
  height:100%;
  padding:10px 18px 14px!important;
}
.ez-upcoming-track{height:100%}
.ez-upcoming-slide{height:100%}
.ez-upcoming-slide .ez-upcoming-item{height:100%}
.ez-upcoming-poster{
  height:100%!important;
  max-height:none!important;
  align-self:stretch;
}
.ez-upcoming-info-link{
  color:inherit;
  text-decoration:none;
  cursor:pointer;
  border-radius:10px;
}
.ez-upcoming-info-link:hover h3{color:var(--ez-gold)}
.ez-upcoming-info-link:focus-visible{
  outline:2px solid var(--ez-gold);
  outline-offset:5px;
}

/* =========================================================
   v1.17 · 홈 텍스트 자동맞춤 보조 규칙
   JS가 실제 박스 폭을 측정해 필요한 경우에만 글자를 줄입니다.
   ========================================================= */
.ez-hd-brand-text,
.ez-hd-nav a,
.ez-hero-kicker,
.ez-hero-word,
.ez-hero-sub,
.ez-hero-tag,
.ez-ft-contact,
.ez-ft-policy a,
.ez-ft-support{
  white-space:nowrap;
}
.ez-hero-lead,
.ez-upcoming-info h3,
.ez-upcoming-info p,
.ez-quick-card b,
.ez-quick-card small{
  word-break:keep-all;
  overflow-wrap:normal;
  text-wrap:balance;
}
.ez-upcoming-info strong{white-space:nowrap}
.mobile-live-home .mobile-top-project-nav b,
.mobile-live-home .mobile-top-project-nav small,
.mobile-live-home .mobile-live-menu-card b,
.mobile-live-home .mobile-live-menu-card small,
.mobile-live-home .mobile-live-contact-row b{
  word-break:keep-all;
  overflow-wrap:normal;
  text-wrap:balance;
}
html[data-ezer-home-autofit="on"] .ez-hd-nav,
html[data-ezer-home-autofit="on"] .ez-quick-card,
html[data-ezer-home-autofit="on"] .ez-upcoming-info{
  min-width:0;
}
.ez-upcoming-info h3,
.ez-upcoming-info strong,
.ez-upcoming-info p,
.ez-quick-card b,
.ez-quick-card small{
  max-width:100%;
}
.ez-quick-card b,.ez-quick-card small{display:block}

/* v1.25 · 홍성 사운드 살롱 홈 카드 운영 안내 */
.ez-salon-home-note{
  margin-top:12px; padding:12px 14px;
  border:1px solid rgba(206,164,80,.68); border-radius:12px;
  background:rgba(12,10,7,.42);
  display:grid; gap:4px; color:#f5efe2;
  font-family:var(--ez-font-ko);
}
.ez-salon-home-note span{
  color:var(--ez-gold); font-weight:700; font-size:11px; letter-spacing:.02em;
}
.ez-salon-home-note b{
  color:#fff; font-size:clamp(12.5px,.92vw,15px); line-height:1.45;
}
.ez-salon-home-note small{
  display:block; color:#eee4d2; font-size:11px; line-height:1.45; font-weight:600;
}
.ez-salon-home-note .ez-salon-home-closed{color:#e2b65f}
.ez-salon-home-note em{
  margin-top:3px; color:#c8bfaf; font-size:10.5px; line-height:1.55; font-style:normal;
}
@media(max-width:1100px){
  .ez-salon-home-note{padding:10px 11px;gap:3px}
  .ez-salon-home-note em{font-size:10px}
}


/* =========================================================
   v1.41 · 시안 기반 데스크톱 홈 정교화
   - 기존 기능/링크/모바일 화면은 유지
   - 좌측 브랜드 영역 + SPACE & SOUND + 공연카드 + 4개 퀵카드 구조
   ========================================================= */
@media (min-width:901px){
  .ez-home{
    --ez-panel:rgba(8,7,6,.90);
    --ez-panel-deep:rgba(3,3,3,.97);
    --ez-line:rgba(211,164,65,.62);
    --ez-soft-line:rgba(211,164,65,.28);
  }

  /* 무대는 사용자가 확정한 동일 이미지 / 우측 상단 90% */
  .ez-home::before{
    width:90%;
    height:90%;
    background-position:right top;
    filter:saturate(1.04) contrast(1.045) brightness(.98);
    -webkit-mask-image:
      linear-gradient(90deg, transparent 0%, rgba(0,0,0,.55) 12%, #000 27%, #000 100%),
      linear-gradient(180deg, #000 0%, #000 73%, transparent 100%);
    mask-image:
      linear-gradient(90deg, transparent 0%, rgba(0,0,0,.55) 12%, #000 27%, #000 100%),
      linear-gradient(180deg, #000 0%, #000 73%, transparent 100%);
  }
  .ez-home::after{
    background:
      linear-gradient(90deg,
        rgba(4,4,4,1) 0%,
        rgba(4,4,4,.99) 23%,
        rgba(4,4,4,.84) 34%,
        rgba(4,4,4,.42) 49%,
        rgba(4,4,4,.11) 67%,
        rgba(4,4,4,.08) 100%),
      linear-gradient(180deg,
        rgba(0,0,0,.10) 0%,
        rgba(0,0,0,.03) 38%,
        rgba(0,0,0,.16) 65%,
        rgba(0,0,0,.84) 100%);
  }

  /* 상단 메뉴: 시안처럼 얇고 정갈한 비율 */
  .ez-hd{
    height:62px;
    padding:0 34px;
    background:linear-gradient(180deg,rgba(0,0,0,.52),rgba(0,0,0,.10));
    border-bottom-color:rgba(211,164,65,.42);
  }
  .ez-hd-brand-text{font-size:15px;letter-spacing:.15em}
  .ez-hd-nav{gap:3px}
  .ez-hd-nav a{font-size:13px;padding:10px 14px;color:#e5dfd5}

  /* 좌측 브랜드 카피 */
  .ez-hero{
    left:4.55%;
    top:9.4vh;
    width:min(19.5vw,350px);
  }
  .ez-hero-kicker{
    margin-bottom:13px;
    font-size:clamp(17px,1.25vw,22px);
    letter-spacing:-.018em;
  }
  .ez-hero-word{
    font-size:clamp(82px,6.3vw,112px);
    line-height:.87;
  }
  .ez-hero-sub{
    margin-top:3px;
    font-size:clamp(60px,4.75vw,84px);
    line-height:.95;
  }
  .ez-hero-tag{
    margin-top:14px;
    font-size:clamp(11px,.74vw,13.5px);
    letter-spacing:.32em;
  }
  .ez-hero-lead{
    margin-top:28px;
    font-size:clamp(15px,1.05vw,19px);
    line-height:1.8;
    color:#ded8cc;
  }

  /* SPACE & SOUND — 정보표가 아니라 에디토리얼 사양 소개처럼 */
  .ez-space-sound{
    position:absolute;
    z-index:4;
    left:24.15%;
    top:9.4vh;
    width:clamp(305px,20.7vw,382px);
    color:#e9e2d6;
    padding:2px 0 0 39px;
    border-left:1px solid rgba(216,164,61,.76);
    text-shadow:0 2px 18px rgba(0,0,0,.48);
  }
  .ez-space-sound-head span{
    display:block;
    font:600 clamp(11px,.72vw,13px)/1.2 var(--ez-font-en2);
    color:var(--ez-gold);
    letter-spacing:.35em;
  }
  .ez-space-sound-head h2{
    margin:11px 0 0;
    font:500 clamp(17px,1.16vw,21px)/1.45 var(--ez-font-serif);
    color:#f2ede5;
    letter-spacing:-.02em;
  }
  .ez-space-sound-head > i{
    display:block;
    width:34px;
    height:1px;
    margin:18px 0 17px;
    background:var(--ez-gold);
  }
  .ez-spec-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
  }
  .ez-spec-item{
    min-width:0;
    min-height:92px;
    padding:18px 12px 15px 0;
    border-top:1px solid rgba(216,164,61,.24);
  }
  .ez-spec-item:nth-child(-n+2){border-top:0;padding-top:12px}
  .ez-spec-item:nth-child(odd){
    padding-right:22px;
    border-right:1px solid rgba(216,164,61,.30);
  }
  .ez-spec-item:nth-child(even){padding-left:25px;padding-right:0}
  .ez-spec-item strong{
    display:block;
    font:500 clamp(15.5px,1.02vw,18.5px)/1.18 var(--ez-font-en2);
    color:#e8d6ae;
    letter-spacing:-.01em;
  }
  .ez-spec-seat strong{
    font-family:var(--ez-font-serif);
    color:#f0dfbb;
  }
  .ez-spec-item small{
    display:block;
    margin-top:8px;
    font:400 clamp(10.5px,.68vw,12px)/1.55 var(--ez-font-ko);
    color:#a9a196;
    letter-spacing:-.015em;
    word-break:keep-all;
  }
  .ez-space-signature{
    margin:10px 0 0;
    display:flex;
    align-items:center;
    gap:11px;
    color:#b88935;
  }
  .ez-space-signature span{
    font:600 9px/1 var(--ez-font-en2);
    letter-spacing:.31em;
    font-style:italic;
    white-space:nowrap;
  }
  .ez-space-signature i{
    width:28px;height:1px;background:rgba(216,164,61,.55);
  }

  /* 왼쪽 공연 카드 */
  .ez-upcoming{
    left:4.55%;
    bottom:8.2%;
    width:clamp(470px,31.2vw,548px);
    height:clamp(286px,33.2vh,326px);
    border-radius:13px;
    border-color:rgba(216,164,61,.56);
    background:linear-gradient(145deg,rgba(12,10,8,.92),rgba(3,3,3,.97));
    box-shadow:0 20px 55px rgba(0,0,0,.52), inset 0 1px 0 rgba(255,255,255,.025);
  }
  .ez-upcoming-body{padding:12px 17px 13px!important;gap:8px}
  .ez-upcoming-item{column-gap:20px}
  .ez-upcoming-poster{border-radius:7px;border-color:rgba(216,164,61,.25)}
  .ez-upcoming-info{align-content:center}
  .ez-upcoming-info h3{
    font-size:clamp(16px,1.18vw,20px);
    line-height:1.5;
  }
  .ez-upcoming-info strong{margin-top:9px;font-size:clamp(12px,.82vw,14px)}
  .ez-upcoming-capacity{margin-top:11px;gap:6px}
  .ez-upcoming-capacity > span{min-height:41px;border-radius:8px;padding:5px 7px}
  .ez-upcoming-info p{margin-top:10px;line-height:1.62;color:#aaa092}
  .ez-upcoming-dots{gap:7px}

  /* 우측 4개 주요 메뉴: 시안처럼 낮고 넓은 프리미엄 카드 */
  .ez-quick{
    right:3.95%;
    bottom:8.2%;
    gap:13px;
  }
  .ez-quick-card{
    width:clamp(168px,13.05vw,216px);
    height:clamp(238px,27.6vh,268px);
    aspect-ratio:auto;
    padding:22px 14px 20px;
    border-radius:14px;
    border-color:rgba(216,164,61,.60);
    grid-template-rows:auto auto auto;
    align-content:center;
    gap:15px;
    box-shadow:0 20px 48px rgba(0,0,0,.42), inset 0 0 0 1px rgba(255,255,255,.018);
  }
  .ez-quick-card::before{
    background:
      linear-gradient(180deg,rgba(7,6,5,.74),rgba(2,2,2,.94)),
      linear-gradient(90deg,rgba(216,164,61,.02),transparent 45%);
  }
  .ez-quick-card:hover{
    transform:translateY(-3px);
    border-color:rgba(228,188,105,.94);
    box-shadow:0 25px 55px rgba(0,0,0,.52), inset 0 0 0 1px rgba(226,184,105,.08);
  }
  .ez-quick-icon{width:56px;height:56px}
  .ez-quick-icon svg{width:24px;height:24px}
  .ez-quick-card b{font-size:clamp(17px,1.22vw,21px)}
  .ez-quick-card small{font-size:clamp(10.5px,.70vw,12px);line-height:1.7;color:#b2aa9c}
  .ez-quick-card small::after{
    content:"";
    display:block;
    width:18px;
    height:1px;
    margin:11px auto 0;
    background:rgba(216,164,61,.74);
  }

  /* 하단은 시안처럼 더 얇고 어둡게 */
  .ez-ft{
    height:58px;
    padding:0 33px;
    gap:18px;
    background:linear-gradient(180deg,rgba(4,4,4,.93),rgba(2,2,2,.99));
    border-top-color:rgba(216,164,61,.36);
  }
  .ez-ft-contact{font-size:11.5px;color:#cfc8bc}
  .ez-ft-policy a{font-size:10.8px}
  .ez-ft-social a{width:31px;height:31px}
  .ez-ft-support{height:31px}
}

/* 노트북/작은 데스크톱 — 겹치지 않게 비율만 조정 */
@media (min-width:901px) and (max-width:1500px){
  .ez-hero{left:3.8%;width:300px}
  .ez-space-sound{left:24.5%;width:315px;padding-left:29px}
  .ez-spec-item{min-height:80px;padding-top:13px;padding-bottom:11px}
  .ez-spec-item:nth-child(-n+2){padding-top:8px}
  .ez-spec-item:nth-child(even){padding-left:18px}
  .ez-spec-item:nth-child(odd){padding-right:16px}
  .ez-space-signature{margin-top:6px}
  .ez-upcoming{left:3.8%;width:420px}
  .ez-quick{right:3.4%;gap:10px}
  .ez-quick-card{width:clamp(150px,12.6vw,188px)}
}

@media (min-width:901px) and (max-height:840px){
  .ez-hero{top:8.8vh}
  .ez-hero-kicker{margin-bottom:9px}
  .ez-hero-tag{margin-top:9px}
  .ez-hero-lead{margin-top:17px;line-height:1.65}
  .ez-space-sound{top:8.8vh}
  .ez-space-sound-head h2{margin-top:7px}
  .ez-space-sound-head > i{margin:12px 0 10px}
  .ez-spec-item{min-height:68px;padding-top:9px;padding-bottom:8px}
  .ez-spec-item:nth-child(-n+2){padding-top:5px}
  .ez-spec-item small{margin-top:5px;line-height:1.4}
  .ez-space-signature{margin-top:4px}
  .ez-upcoming{bottom:8.4%;height:276px}
  .ez-quick{bottom:8.4%}
  .ez-quick-card{height:220px;padding-top:16px;padding-bottom:15px;gap:10px}
  .ez-quick-icon{width:48px;height:48px}
}
