:root{
  --bg:#fbfaf8;
  --paper:#ffffff;
  --muted:#f3f1ed;
  --ink:#111111;
  --sub:#4a4a4a;
  --line:rgba(17,17,17,.12);
  --shadow:0 10px 30px rgba(17,17,17,.08);
  --radius:18px;
  --serif:"Cormorant Garamond", serif;
  --sans:"Inter", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  color:var(--ink);
  background:var(--bg);
  font-family:var(--sans);
  letter-spacing:-.01em;
}
a{color:inherit; text-decoration:none}
img{max-width:100%; display:block}
code{font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size:.92em}
:focus-visible{outline:2px solid rgba(17,17,17,.35); outline-offset:3px}

.skip{position:absolute; left:-9999px; top:auto; width:1px; height:1px; overflow:hidden}
.skip:focus{left:16px; top:16px; width:auto; height:auto; padding:10px 12px; background:var(--paper); border:1px solid var(--line); border-radius:12px; z-index:9999}

.container{width:min(1120px, 92%); margin:0 auto}
.muted{color:var(--sub)}
.lead{font-size:1.05rem; line-height:1.8; color:var(--sub)}
.eyebrow{font-size:.85rem; letter-spacing:.22em; text-transform:uppercase; color:var(--sub); margin:0 0 14px}
.center{text-align:center}

/* Header */
.header{
  position:sticky; top:0; z-index:50;
  background:rgba(251,250,248,.75);
  backdrop-filter: blur(10px);
  border-bottom:1px solid rgba(17,17,17,.08);
}
.header__inner{display:flex; align-items:center; gap:18px; padding:14px 0}
.brand{display:flex; flex-direction:column; gap:2px}
.brand__mark{font-family:var(--serif); font-weight:600; font-size:1.35rem; letter-spacing:.02em}
.brand__sub{font-size:.78rem; color:var(--sub)}
.nav{display:flex; gap:16px; margin-left:auto}
.nav__link{font-size:.92rem; color:var(--sub); padding:10px 6px; border-radius:12px}
.nav__link:hover{background:rgba(17,17,17,.04); color:var(--ink)}
.nav__link.is-active{color:var(--ink); text-decoration:underline; text-underline-offset:6px}
.header__cta{
  display:inline-flex; align-items:center; justify-content:center;
  padding:10px 14px; border-radius:999px;
  border:1px solid var(--line);
  background:var(--paper);
  box-shadow:0 6px 18px rgba(17,17,17,.05);
  font-size:.9rem;
}
.header__cta:hover{transform:translateY(-1px)}
.navbtn{
  display:none;
  width:44px; height:44px; border-radius:14px;
  border:1px solid var(--line); background:var(--paper);
  align-items:center; justify-content:center; gap:6px;
}
.navbtn span{display:block; width:18px; height:2px; background:var(--ink); opacity:.75}

/* Drawer */
.drawer{position:fixed; inset:0; display:none; z-index:80}
.drawer.is-open{display:block}
.drawer__backdrop{position:absolute; inset:0; background:rgba(0,0,0,.25)}
.drawer__panel{
  position:absolute; right:0; top:0; height:100%; width:min(420px, 86%);
  background:var(--paper); box-shadow:var(--shadow);
  padding:18px;
  display:flex; flex-direction:column; gap:14px;
}
.drawer__top{display:flex; align-items:center; justify-content:space-between}
.drawer__brand{font-family:var(--serif); font-weight:600; font-size:1.2rem}
.drawer__close{width:44px; height:44px; border-radius:14px; border:1px solid var(--line); background:var(--paper); font-size:1.3rem}
.drawer__links{display:flex; flex-direction:column; gap:6px; margin-top:6px}
.drawer__links a{padding:12px 10px; border-radius:14px; color:var(--sub)}
.drawer__links a:hover{background:rgba(17,17,17,.04); color:var(--ink)}
.drawer__cta{margin-top:10px; background:var(--ink); color:var(--paper) !important}
.drawer__cta:hover{background:var(--ink)}
.drawer__meta{margin-top:auto; border-top:1px solid rgba(17,17,17,.08); padding-top:14px}

/* Buttons */
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:12px 16px; border-radius:999px;
  background:var(--ink); color:var(--paper);
  border:1px solid var(--ink);
  font-size:.95rem;
  transition:transform .15s ease, opacity .15s ease;
}
.btn:hover{transform:translateY(-1px); opacity:.92}
.btn--ghost{background:transparent; color:var(--ink); border:1px solid var(--line)}
.btn--block{width:100%}

/* Hero */
.hero{position:relative; min-height:78vh; display:flex; align-items:center}
.hero__bg{
  position:absolute; inset:0;
  background:
    radial-gradient(1200px 600px at 20% 10%, rgba(17,17,17,.10), transparent 60%),
    radial-gradient(900px 500px at 80% 30%, rgba(17,17,17,.06), transparent 60%),
    linear-gradient(180deg, rgba(17,17,17,.04), rgba(17,17,17,0));
}
.hero__inner{position:relative; padding:90px 0 64px}
.hero__title{
  font-family:var(--serif);
  font-size:clamp(2.3rem, 5vw, 4.1rem);
  line-height:1.02;
  margin:0 0 14px;
}
.hero__desc{max-width:52ch; margin:0 0 26px; color:var(--sub); line-height:1.85}
.hero__actions{display:flex; gap:10px; flex-wrap:wrap}

/* Sections */
.section{padding:72px 0}
.section--muted{background:var(--muted); border-top:1px solid rgba(17,17,17,.06); border-bottom:1px solid rgba(17,17,17,.06)}
.section--cta{background:linear-gradient(180deg, rgba(17,17,17,.04), rgba(17,17,17,0))}
.section__head{display:flex; align-items:flex-end; justify-content:space-between; gap:16px; margin-bottom:18px}
.section__head h2{margin:0}
h2{font-family:var(--serif); font-size:2rem; margin:0 0 10px}
h3{margin:0 0 8px; font-size:1.05rem}
p{margin:0 0 14px; line-height:1.85}

/* Layout helpers */
.split{display:grid; grid-template-columns: 1.2fr .8fr; gap:26px; align-items:start}
.cards{display:grid; gap:14px}
.card{
  background:var(--paper);
  border:1px solid rgba(17,17,17,.08);
  border-radius:var(--radius);
  padding:18px;
  box-shadow:0 8px 20px rgba(17,17,17,.05);
}
.card--soft{background:rgba(255,255,255,.8)}
.card__kicker{font-family:var(--serif); font-size:1.1rem; opacity:.7; margin-bottom:6px}
.bullets{padding-left:18px; margin:0}
.bullets li{margin:0 0 10px; line-height:1.7; color:var(--sub)}
.grid{display:grid; gap:14px}
.grid--2{grid-template-columns:repeat(2, minmax(0,1fr))}
.grid--3{grid-template-columns:repeat(3, minmax(0,1fr))}

.tile{
  background:var(--paper);
  border:1px solid rgba(17,17,17,.10);
  border-radius:var(--radius);
  padding:18px;
  transition:transform .15s ease, box-shadow .15s ease;
}
.tile:hover{transform:translateY(-2px); box-shadow:var(--shadow)}

/* Masonry-ish */
.masonry{display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:12px}
.masonry__item{
  height:160px; border-radius:var(--radius);
  border:1px solid rgba(17,17,17,.10);
  background:
    radial-gradient(500px 220px at 30% 30%, rgba(17,17,17,.10), transparent 60%),
    linear-gradient(180deg, rgba(17,17,17,.05), rgba(17,17,17,0));
  display:flex; align-items:flex-end; padding:14px;
}
.masonry__label{font-size:.92rem; color:rgba(17,17,17,.85)}

/* Steps */
.steps{list-style:none; padding:0; margin:0; display:grid; gap:12px}
.steps li{
  background:rgba(255,255,255,.65);
  border:1px solid rgba(17,17,17,.10);
  border-radius:var(--radius);
  padding:16px;
  display:grid; grid-template-columns:48px 1fr; gap:14px; align-items:start
}
.steps__num{
  display:inline-flex; align-items:center; justify-content:center;
  width:44px; height:44px; border-radius:14px;
  border:1px solid rgba(17,17,17,.12);
  background:rgba(255,255,255,.8);
  font-family:var(--serif); font-size:1.05rem;
}
.steps--wide li{grid-template-columns:58px 1fr}

/* Quotes */
.quote{background:var(--paper); border:1px solid rgba(17,17,17,.10); border-radius:var(--radius); padding:18px}
.quote--card{box-shadow:0 8px 18px rgba(17,17,17,.04)}
.quote__by{display:block; margin-top:10px; color:var(--sub); font-size:.92rem}

/* Gallery */
.filters{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px}
.chip{
  padding:10px 12px; border-radius:999px;
  border:1px solid rgba(17,17,17,.16);
  background:var(--paper); color:var(--sub);
}
.chip.is-active{background:var(--ink); color:var(--paper); border-color:var(--ink)}
.gallery{display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:12px}
.gallery__item{
  background:var(--paper);
  border:1px solid rgba(17,17,17,.10);
  border-radius:var(--radius);
  overflow:hidden;
  display:flex; flex-direction:column;
}
.gallery__thumb{
  height:170px;
  background:
    radial-gradient(520px 220px at 40% 30%, rgba(17,17,17,.10), transparent 60%),
    linear-gradient(180deg, rgba(17,17,17,.04), rgba(17,17,17,0));
}
.gallery__meta{padding:14px}
.gallery__title{display:block; font-weight:500}
.gallery__sub{display:block; font-size:.92rem; color:var(--sub); margin-top:4px}

/* Partners */
.partner{background:var(--paper); border:1px solid rgba(17,17,17,.10); border-radius:var(--radius); padding:18px}
.partner__logo{
  height:44px; border-radius:14px; border:1px dashed rgba(17,17,17,.18);
  background:rgba(17,17,17,.02);
  margin-bottom:10px
}

/* People */
.person{background:var(--paper); border:1px solid rgba(17,17,17,.10); border-radius:var(--radius); padding:18px}
.person__photo{
  height:180px; border-radius:var(--radius);
  border:1px dashed rgba(17,17,17,.18);
  background:rgba(17,17,17,.02);
  margin-bottom:12px
}

/* Posts */
.posts{display:grid; gap:12px}
.post__link{
  display:grid; grid-template-columns:260px 1fr; gap:16px;
  background:var(--paper);
  border:1px solid rgba(17,17,17,.10);
  border-radius:var(--radius);
  overflow:hidden;
}
.post__thumb{
  min-height:170px;
  background:
    radial-gradient(520px 220px at 40% 30%, rgba(17,17,17,.10), transparent 60%),
    linear-gradient(180deg, rgba(17,17,17,.04), rgba(17,17,17,0));
}
.post__body{padding:16px}
.post__meta{margin:0 0 8px; font-size:.85rem; letter-spacing:.1em; text-transform:uppercase; color:var(--sub)}
.post__title{font-family:var(--serif); margin:0 0 10px; font-size:1.6rem}

/* Form */
.form{background:var(--paper); border:1px solid rgba(17,17,17,.10); border-radius:var(--radius); padding:18px}
.form__row{display:flex; flex-direction:column; gap:8px; margin-bottom:14px}
label{font-size:.92rem; color:var(--sub)}
input, select, textarea{
  padding:12px 12px;
  border-radius:14px;
  border:1px solid rgba(17,17,17,.16);
  background:rgba(255,255,255,.9);
  font-family:inherit;
  font-size:1rem;
  outline:none;
}
input:focus, select:focus, textarea:focus{border-color:rgba(17,17,17,.35)}
.form__error{display:none; color:#8a1f1f; font-size:.86rem}
.form__row.is-invalid .form__error{display:block}
.toast{margin-top:12px; padding:12px 12px; border-radius:14px; display:none; border:1px solid rgba(17,17,17,.12)}
.toast.is-show{display:block}

/* QA */
.qa{border:1px solid rgba(17,17,17,.10); border-radius:var(--radius); background:rgba(255,255,255,.75); padding:16px}
.qa__q{font-weight:500; margin-top:10px}
.qa__a{color:var(--sub); margin-top:6px}
.qa__q:first-child{margin-top:0}

/* Footer */
.footer{padding:36px 0; border-top:1px solid rgba(17,17,17,.08)}
.footer__inner{display:flex; justify-content:space-between; gap:18px; flex-wrap:wrap}
.footer__brand{font-family:var(--serif); font-weight:600; font-size:1.15rem; margin-bottom:6px}
.footer__cols{display:flex; gap:26px; flex-wrap:wrap}
.footer__title{font-size:.9rem; color:var(--sub); letter-spacing:.12em; text-transform:uppercase; margin-bottom:8px}
.hr{border:none; border-top:1px solid rgba(17,17,17,.10); margin:14px 0}

/* Page hero */
.pagehero{padding:70px 0 26px}
.pagehero h1{font-family:var(--serif); font-size:clamp(2rem, 4vw, 3.2rem); margin:0 0 12px}

/* Floating CTA */
.floating-cta{
  position:fixed; right:16px; bottom:16px; z-index:60;
  display:inline-flex; align-items:center; justify-content:center;
  padding:12px 14px; border-radius:999px;
  background:var(--ink); color:var(--paper);
  box-shadow:var(--shadow);
  font-size:.92rem;
}

/* Responsive */
@media (max-width: 980px){
  .nav{display:none}
  .navbtn{display:inline-flex; margin-left:auto}
  .header__cta{display:none}
  .split{grid-template-columns:1fr}
  .grid--3{grid-template-columns:repeat(2, minmax(0,1fr))}
  .masonry{grid-template-columns:repeat(2, minmax(0,1fr))}
  .gallery{grid-template-columns:repeat(2, minmax(0,1fr))}
  .post__link{grid-template-columns:1fr}
}
@media (max-width: 560px){
  .grid--2{grid-template-columns:1fr}
  .grid--3{grid-template-columns:1fr}
  .gallery{grid-template-columns:1fr}
}

/* V3 additions */
.hero__note{margin-top:18px; font-size:.92rem}

.storycard{
  display:grid;
  grid-template-rows: 170px 1fr;
  background:var(--paper);
  border:1px solid rgba(17,17,17,.10);
  border-radius:var(--radius);
  overflow:hidden;
  transition:transform .15s ease, box-shadow .15s ease;
}
.storycard:hover{transform:translateY(-2px); box-shadow:var(--shadow)}
.storycard__img{
  background:
    radial-gradient(520px 220px at 40% 30%, rgba(17,17,17,.10), transparent 60%),
    linear-gradient(180deg, rgba(17,17,17,.04), rgba(17,17,17,0));
}
.storycard__body{padding:14px}
.storycard__meta{margin:0 0 8px; font-size:.82rem; letter-spacing:.14em; text-transform:uppercase; color:var(--sub)}

.crumbs{padding:18px 0 0}
.crumbs a{color:var(--sub)}
.crumbs a:hover{color:var(--ink); text-decoration:underline; text-underline-offset:4px}
.crumbs span{color:rgba(17,17,17,.35); margin:0 8px}

.pagehero--tight{padding-top:34px}

.badges{display:flex; gap:8px; flex-wrap:wrap; margin-top:10px}
.badge{
  display:inline-flex; align-items:center;
  padding:8px 10px; border-radius:999px;
  border:1px solid rgba(17,17,17,.14);
  background:rgba(255,255,255,.6);
  color:var(--sub);
  font-size:.9rem;
}

.facts{display:grid; gap:10px}
.facts div{display:flex; align-items:baseline; justify-content:space-between; gap:12px}
.facts b{font-weight:600}

.story__cta{display:flex; gap:10px; flex-wrap:wrap; margin-top:18px}

.shots{display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:12px}
.shot{
  margin:0;
  background:var(--paper);
  border:1px solid rgba(17,17,17,.10);
  border-radius:var(--radius);
  overflow:hidden;
}
.shot__ph{
  height:220px;
  background:
    radial-gradient(520px 220px at 40% 30%, rgba(17,17,17,.10), transparent 60%),
    linear-gradient(180deg, rgba(17,17,17,.04), rgba(17,17,17,0));
}
.shot figcaption{padding:12px 14px; font-size:.92rem}
@media (max-width: 560px){
  .shots{grid-template-columns:1fr}
}


/* V4.3 Soft Typography */
@import url('https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css');

:root{
  --font-body: 'Pretendard', -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  --font-title: 'Cormorant Garamond', serif;
}

body{
  font-family: var(--font-body);
  font-weight: 300;
  line-height: 1.75;
  letter-spacing: -0.01em;
}

h1, h2, h3, .hero__title{
  font-family: var(--font-title);
  font-weight: 500;
  letter-spacing: -0.02em;
}



/* V5.0 Venues filters */
.sr-only{
  position:absolute!important;
  width:1px;height:1px;
  padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);
  white-space:nowrap;border:0;
}

.filters{
  margin: 1.25rem 0 1.5rem;
  padding: 1rem;
  border: 1px solid rgba(0,0,0,0.06);
  border-radius: 16px;
  background: rgba(255,255,255,0.6);
  backdrop-filter: blur(6px);
}

.filters__row{
  display:flex;
  flex-wrap:wrap;
  gap: .75rem;
  align-items:center;
  justify-content:space-between;
}

.filters__group{
  display:flex;
  flex-wrap:wrap;
  gap: .5rem;
  align-items:center;
}

.filters__search{
  flex: 1 1 220px;
  justify-content:flex-end;
}

.filters__meta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  margin-top: .75rem;
}

.chip{
  border: 1px solid rgba(0,0,0,0.10);
  background: rgba(255,255,255,0.8);
  padding: .5rem .75rem;
  border-radius: 999px;
  font-size: .95rem;
  line-height: 1;
  cursor: pointer;
  transition: transform .06s ease, background .15s ease, border-color .15s ease;
}

.chip:hover{ transform: translateY(-1px); }
.chip.is-active{
  border-color: rgba(0,0,0,0.25);
  background: rgba(0,0,0,0.06);
}

.input{
  width: 100%;
  max-width: 360px;
  border: 1px solid rgba(0,0,0,0.10);
  border-radius: 999px;
  padding: .55rem .85rem;
  font-size: .95rem;
  background: rgba(255,255,255,0.9);
}

.btn--ghost{
  background: transparent;
  border: 1px solid rgba(0,0,0,0.10);
}

.btn--sm{
  padding: .45rem .7rem;
  font-size: .95rem;
  border-radius: 999px;
}

.is-hidden{ display:none !important; }

/* V5.1 filters responsive */
@media (max-width: 720px){
  .filters__row{ gap: .6rem; }
  .filters__search{ flex: 1 1 100%; justify-content:stretch; }
  .input{ max-width: 100%; }
}

/* V5.2 mood/condition labels */
.filters__label{
  font-size: .9rem;
  opacity: .75;
  margin-right: .25rem;
}



/* V5.3 Home refinement */
.hero--refined{
  padding: 5.5rem 0 3.5rem;
}
.hero__cta{
  display:flex;
  gap:.75rem;
  flex-wrap:wrap;
  margin-top: 1.25rem;
}
.hero__meta{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
  margin-top: 1.25rem;
}
.pill{
  display:inline-flex;
  align-items:center;
  padding:.45rem .7rem;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,0.10);
  background: rgba(255,255,255,0.7);
  font-size: .95rem;
}

.section__head--split{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap: 1.25rem;
  flex-wrap:wrap;
}
.section__cta{
  margin-top: 1.25rem;
  display:flex;
  justify-content:flex-start;
}

.tile{
  display:block;
  padding: 1.25rem;
  border-radius: 18px;
  border: 1px solid rgba(0,0,0,0.08);
  background: rgba(255,255,255,0.75);
  text-decoration:none;
  transition: transform .08s ease, border-color .15s ease;
}
.tile:hover{ transform: translateY(-2px); border-color: rgba(0,0,0,0.16); }

.story{
  display:block;
  padding: 0;
  border-radius: 18px;
  border: 1px solid rgba(0,0,0,0.08);
  background: rgba(255,255,255,0.75);
  overflow:hidden;
  text-decoration:none;
  transition: transform .08s ease, border-color .15s ease;
}
.story:hover{ transform: translateY(-2px); border-color: rgba(0,0,0,0.16); }
.story__thumb{
  height: 180px;
  background: rgba(0,0,0,0.05);
}
.story h3{ padding: 1rem 1rem 0; margin:0; }
.story p{ padding: 0 .95rem 1rem; margin:.35rem 0 0; }

.quotes{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}
.quote{
  padding: 1.25rem;
  border-radius: 18px;
  border: 1px solid rgba(0,0,0,0.08);
  background: rgba(255,255,255,0.75);
}
.quote p{ margin:0 0 .75rem; }

.cta-bar{
  display:flex;
  gap:.75rem;
  flex-wrap:wrap;
}

@media (max-width: 900px){
  .quotes{ grid-template-columns: 1fr; }
  .story__thumb{ height: 160px; }
}



/* V5.3.1 Hero title refinement */
.hero--refined .hero__title{
  font-size: clamp(2rem, 3.2vw, 2.6rem);
  line-height: 1.2;
}



/* V5.3.2 Typography micro-tuning */
.hero--refined .hero__desc{
  font-weight: 300;
  opacity: .88;
  letter-spacing: -0.01em;
}

.br-mobile{ display: none; }
@media (max-width: 560px){
  .br-mobile{ display: inline; }
  .hero--refined .hero__title{ letter-spacing: -0.02em; }
}



/* V5.3.3 Subpage heading refinement */
/* Page hero titles (About, Services, Partners, Weddings, etc.) */
.pagehero h1,
.section h1{
  font-size: clamp(1.8rem, 2.8vw, 2.4rem);
  line-height: 1.25;
  letter-spacing: -0.01em;
}

/* Section titles inside subpages */
.section h2{
  font-size: clamp(1.3rem, 2.1vw, 1.6rem);
  line-height: 1.3;
  letter-spacing: -0.005em;
}

/* Eyebrow text softer */
.eyebrow{
  font-weight: 400;
  letter-spacing: .12em;
  opacity: .75;
}



/* V5.3.4 Micro-interactions & accessibility */
:root{
  --ring: 0 0 0 4px rgba(0,0,0,.08);
}

a, button{
  -webkit-tap-highlight-color: transparent;
}

.btn, .chip, .tile, .story, .partner--link, .card, .input{
  transition: transform .12s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease, opacity .18s ease;
}

.btn:hover{
  transform: translateY(-1px);
  box-shadow: 0 10px 24px rgba(0,0,0,0.06);
}
.btn:active{
  transform: translateY(0px);
  box-shadow: 0 6px 16px rgba(0,0,0,0.05);
}

.btn--ghost:hover{
  background: rgba(0,0,0,0.04);
}

a:hover{
  opacity: .96;
}

a:focus-visible,
button:focus-visible,
input:focus-visible{
  outline: none;
  box-shadow: var(--ring);
  border-color: rgba(0,0,0,0.18);
}

.partner--link:hover,
.tile:hover,
.story:hover{
  box-shadow: 0 14px 30px rgba(0,0,0,0.06);
}

.input:focus-visible{
  background: rgba(255,255,255,1);
}

@media (prefers-reduced-motion: reduce){
  .btn, .chip, .tile, .story, .partner--link, .card, .input{
    transition: none !important;
  }
  .btn:hover, .btn:active{ transform: none !important; }
}



/* V5.3.5 Brand title size unification */
/* Applies to main & sub pages */
.brand-title,
.pagehero .brand-title,
.hero .brand-title{
  font-size: clamp(1.30rem, 1.8vw, 1.65rem);
  line-height: 1.25;
  letter-spacing: -0.01em;
  font-weight: 500;
}

.brand-subtitle,
.pagehero .brand-subtitle,
.hero .brand-subtitle{
  font-size: .95rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  opacity: .75;
}



/* V5.3.6 Header refinement: brand sizing + scroll shrink */
.brand__mark{
  font-size: clamp(1.30rem, 1.8vw, 1.65rem);
  line-height: 1.1;
  letter-spacing: -0.01em;
  font-weight: 500;
}

.brand__sub{
  display:block;
  margin-top: .15rem;
  font-size: .95rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  opacity: .75;
}

/* Sticky header polish */
.header{
  position: sticky;
  top: 0;
  z-index: 50;
  backdrop-filter: blur(10px);
}

/* Compact state on scroll */
.header.header--scrolled{
  box-shadow: 0 10px 24px rgba(0,0,0,0.06);
}

.header.header--scrolled .header__inner{
  padding-top: .55rem;
  padding-bottom: .55rem;
}

.header.header--scrolled .brand__mark{
  font-size: clamp(1.35rem, 2.0vw, 1.75rem);
}

.header.header--scrolled .brand__sub{
  font-size: .85rem;
  opacity: .7;
}

.header.header--scrolled .nav__link{
  opacity: .9;
}

@media (max-width: 720px){
  .brand__sub{ letter-spacing: .14em; }
  .header.header--scrolled .brand__sub{ display:none; } /* 모바일에서는 스크롤 시 2줄 제거 */
}



/* V5.3.7 Pagehero spacing refinement (premium rhythm) */
.pagehero{
  padding: 4.25rem 0 2.5rem;
}

.pagehero .eyebrow{
  margin-bottom: .6rem;
}

.pagehero h1{
  margin: 0;
  line-height: 1.18;
}

.pagehero .lead{
  margin-top: 1rem;
  max-width: 56ch;
  line-height: 1.8;
  opacity: .88;
}

/* Ensure section spacing feels consistent across subpages */
.section{
  padding: 3.25rem 0;
}

.section.section--muted{
  padding: 3.25rem 0;
}

@media (max-width: 720px){
  .pagehero{ padding: 3.5rem 0 2rem; }
  .section{ padding: 2.75rem 0; }
}



/* V5.3.8 Force brand title size to match /partners/ across all pages */
.header .brand__mark{
  font-size: clamp(1.30rem, 1.8vw, 1.65rem) !important;
  line-height: 1.1 !important;
  letter-spacing: -0.01em !important;
  font-weight: 500 !important;
}
.header .brand__sub{
  font-size: .72rem !important;
  letter-spacing: .18em !important;
  text-transform: uppercase !important;
  opacity: .75 !important;
}



/* V5.3.9 Brand title size downscale (final hierarchy tuning) */
/* TheBride : one step smaller */
.header .brand__mark{
  font-size: clamp(1.30rem, 1.8vw, 1.65rem) !important;
}

/* 웨딩 플래닝 & 컨설팅 : two steps smaller */
.header .brand__sub{
  font-size: .72rem !important;
  letter-spacing: .16em !important;
  opacity: .7 !important;
}



/* V5.4 Header final polish */
/* Slightly slimmer default header padding (if header__inner exists) */
.header .header__inner{
  padding-top: .85rem;
  padding-bottom: .85rem;
}

/* Mobile: hide subtitle to keep header clean */
@media (max-width: 560px){
  .header .brand__sub{ display:none !important; }
}

/* Scrolled state: tighten letter spacing subtly */
.header.header--scrolled .brand__mark{
  letter-spacing: -0.02em !important;
}

/* Scrolled state: slightly slimmer */
.header.header--scrolled .header__inner{
  padding-top: .5rem;
  padding-bottom: .5rem;
}



/* V5.4.1 Brand size lock across all pages (including /partners) */
.header .brand__mark{
  font-size: clamp(1.30rem, 1.8vw, 1.65rem) !important;
  line-height: 1.1 !important;
  letter-spacing: -0.01em !important;
  font-weight: 500 !important;
}
.header .brand__sub{
  font-size: .72rem !important;
  letter-spacing: .16em !important;
  opacity: .7 !important;
}



/* V5.4.2 Absolute brand size unification (fix for /partners mismatch) */
/* Lock header base font-size so rem rendering is identical across pages */
.header{ font-size: 16px; }

/* Extra-specific selector to beat any page-specific overrides */
body header.header a.brand .brand__mark{
  font-size: clamp(1.30rem, 1.8vw, 1.65rem) !important;
  line-height: 1.1 !important;
  letter-spacing: -0.01em !important;
  font-weight: 500 !important;
}

body header.header a.brand .brand__sub{
  font-size: .72rem !important;
  letter-spacing: .16em !important;
  text-transform: uppercase !important;
  opacity: .7 !important;
}



/* V5.4.3 FINAL brand size lock (wins against any earlier !important rules) */
html body header.header .container.header__inner a.brand span.brand__mark{
  font-size: clamp(1.30rem, 1.8vw, 1.65rem) !important;
  line-height: 1.1 !important;
  letter-spacing: -0.01em !important;
  font-weight: 500 !important;
}
html body header.header .container.header__inner a.brand span.brand__sub{
  font-size: .72rem !important;
  letter-spacing: .16em !important;
  text-transform: uppercase !important;
  opacity: .7 !important;
}



/* V5.4.4 FINAL brand size lock (stronger + visually clearer) */
html body header.header .container.header__inner a.brand span.brand__mark{
  font-size: clamp(1.30rem, 1.8vw, 1.65rem) !important;
  line-height: 1.08 !important;
  letter-spacing: -0.01em !important;
  font-weight: 500 !important;
}
html body header.header .container.header__inner a.brand span.brand__sub{
  font-size: .72rem !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
  opacity: .68 !important;
}



/* V5.6 VictoriaBlanche-inspired main layout */
.vb-hero{
  padding: 3.25rem 0 2.5rem;
}
.vb-hero__grid{
  display:grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 1.75rem;
  align-items: start;
}
.vb-hero__kicker{
  font-size: .75rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  opacity: .75;
  margin: 0 0 .85rem;
}
.vb-hero__title{
  font-family: var(--serif);
  font-size: clamp(2rem, 3.4vw, 2.8rem);
  line-height: 1.18;
  margin: 0 0 1rem;
  letter-spacing: -0.02em;
}
.vb-hero__desc{
  max-width: 58ch;
  line-height: 1.85;
  margin: 0 0 1.25rem;
  opacity: .9;
}
.vb-hero__actions{
  display:flex;
  gap:.75rem;
  flex-wrap:wrap;
}
.vb-hero__meta{
  margin-top: 1rem;
  display:flex;
  flex-wrap:wrap;
  gap:.65rem;
  font-size: .95rem;
  opacity: .8;
}
.vb-hero__card{
  border: 1px solid rgba(0,0,0,0.08);
  border-radius: 22px;
  padding: 1.4rem 1.35rem;
  background: rgba(255,255,255,0.75);
}
.vb-hero__card h2{
  margin:0 0 .85rem;
  font-size: .9rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  opacity:.8;
}
.vb-card__title{
  margin:0 0 .6rem;
  font-family: var(--serif);
  font-size: 1.25rem;
}
.vb-card__desc{ margin:0 0 .9rem; opacity:.9; line-height:1.75; }
.vb-card__list{ margin:0 0 1rem; padding-left: 1.1rem; opacity:.85; }
.vb-section{
  padding: 4rem 0;
}
.vb-section--muted{
  background: rgba(0,0,0,0.03);
}
.vb-section__kicker{
  font-size: .75rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  opacity: .75;
  margin: 0 0 .75rem;
}
.vb-section__title{
  font-family: var(--serif);
  font-size: clamp(1.6rem, 2.4vw, 2.05rem);
  line-height: 1.22;
  margin: 0 0 1.25rem;
}
.vb-value{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 1rem;
}
.vb-value__item{
  border: 1px solid rgba(0,0,0,0.08);
  border-radius: 22px;
  padding: 1.35rem 1.25rem;
  background: rgba(255,255,255,0.75);
}
.vb-num{
  font-size: .9rem;
  letter-spacing: .18em;
  opacity:.8;
}
.vb-value__item h3{ margin:.6rem 0 .5rem; }
.vb-value__item ul{ margin:.8rem 0 0; padding-left: 1.05rem; opacity:.85; }
.vb-collections{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 1rem;
}
.vb-collections__item{
  border: 1px solid rgba(0,0,0,0.08);
  border-radius: 22px;
  padding: 1.35rem 1.25rem;
  background: rgba(255,255,255,0.75);
}
.vb-collections__label{
  margin:0 0 .6rem;
  font-size:.85rem;
  letter-spacing:.16em;
  text-transform: uppercase;
  opacity:.75;
}
.vb-links{
  display:flex;
  flex-wrap:wrap;
  gap:.75rem;
  margin: 1rem 0 1.25rem;
}
.vb-link{
  display:inline-flex;
  align-items:center;
  padding: .75rem 1rem;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,0.10);
  background: rgba(255,255,255,0.75);
}
.vb-note{ margin: 0 0 1rem; }
@media (max-width: 980px){
  .vb-hero__grid{ grid-template-columns: 1fr; }
  .vb-value, .vb-collections{ grid-template-columns: 1fr; }
}



/* V5.6.1 Venues & Partners upgrade (editorial sub-main) */
.vp-actions{ display:flex; gap:.5rem; flex-wrap:wrap; justify-content:flex-end; }
.vp-criteria{
  margin-top: 1.25rem;
  display:grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .9rem;
}
.vp-criteria__item{
  padding: 1.05rem 1.05rem;
  border-radius: 18px;
  border: 1px solid rgba(0,0,0,0.08);
  background: rgba(255,255,255,0.70);
}
.vp-criteria__item h3{ margin:0 0 .4rem; font-size: 1.05rem; }
.vp-criteria__item p{ margin:0; }

.vp-filters{
  margin-top: 1.25rem;
  border-radius: 18px;
  border: 1px solid rgba(0,0,0,0.08);
  background: rgba(255,255,255,0.70);
  overflow:hidden;
}
.vp-filters > summary{
  cursor:pointer;
  padding: .95rem 1.05rem;
  list-style:none;
  font-weight: 500;
}
.vp-filters > summary::-webkit-details-marker{ display:none; }
.vp-filters[open] > summary{ border-bottom: 1px solid rgba(0,0,0,0.08); }
.vp-filters .filters{ padding: 1rem 1.05rem 1.1rem; }

.vp-grid-wrap{ margin-top: 1.35rem; }
.vp-grid-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; flex-wrap:wrap; margin-bottom:.9rem; }
.vp-grid-title{ margin:0; font-size: 1.2rem; }

.vp-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}
.vp-card{
  display:flex;
  gap: 1rem;
  align-items: stretch;
  padding: .95rem;
  border-radius: 18px;
  border: 1px solid rgba(0,0,0,0.08);
  background: rgba(255,255,255,0.75);
  text-decoration:none;
}
.vp-card__thumb{
  width: 160px;
  flex: 0 0 160px;
  border-radius: 14px;
  background: rgba(0,0,0,0.06) center/cover no-repeat;
}
.vp-card__body{ flex: 1 1 auto; }
.vp-card__meta{ display:flex; align-items:center; gap:.45rem; margin-bottom: .5rem; }
.tag{
  display:inline-flex;
  align-items:center;
  padding:.25rem .55rem;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,0.10);
  font-size: .72rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  opacity: .85;
}
.dot{ opacity:.55; }
.vp-card h4{ margin: 0 0 .35rem; font-size: 1.15rem; }
.vp-card p{ margin: 0; }

.vp-bottom{
  margin-top: 1.5rem;
  padding: 1.2rem 1.1rem;
  border-radius: 18px;
  border: 1px solid rgba(0,0,0,0.08);
  background: rgba(255,255,255,0.75);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 1rem;
  flex-wrap:wrap;
}
.vp-bottom h3{ margin:0 0 .35rem; }
.vp-bottom p{ margin:0; max-width: 60ch; }

@media (max-width: 980px){
  .vp-criteria{ grid-template-columns: 1fr 1fr; }
  .vp-grid{ grid-template-columns: 1fr; }
  .vp-card__thumb{ width: 140px; flex-basis: 140px; }
}
@media (max-width: 520px){
  .vp-criteria{ grid-template-columns: 1fr; }
  .vp-card{ flex-direction: column; }
  .vp-card__thumb{ width: 100%; flex-basis: auto; height: 180px; }
  .vp-actions{ justify-content:flex-start; }
}



/* V5.6.2 Venue detail pages (editorial) */
.venue-hero{
  min-height: 78vh;
  display:grid;
  grid-template-columns: 1.2fr .8fr;
  background: rgba(255,255,255,0.6);
  border-bottom: 1px solid rgba(0,0,0,0.06);
}
.venue-hero__media{
  background: rgba(0,0,0,0.05) center/cover no-repeat;
  position: relative;
}
.venue-hero__media:after{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(180deg, rgba(0,0,0,.18), rgba(0,0,0,.22));
}
.venue-hero__copy{
  padding: 4rem 3rem;
  display:flex;
  flex-direction:column;
  justify-content:center;
  backdrop-filter: blur(10px);
}
.venue-hero__kicker{
  font-size: .72rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  opacity: .78;
  margin: 0 0 .9rem;
}
.venue-hero__title{
  font-family: var(--serif);
  font-size: clamp(1.75rem, 2.4vw, 2.35rem);
  line-height: 1.16;
  margin: 0 0 1rem;
}
.venue-hero__lead{
  max-width: 44ch;
  line-height: 1.9;
  opacity: .88;
  margin: 0 0 1.4rem;
}
.venue-hero__badges{
  display:flex;
  flex-wrap:wrap;
  gap: .5rem;
  align-items:center;
  margin-bottom: 1.5rem;
}
.badge{
  display:inline-flex;
  align-items:center;
  padding: .35rem .65rem;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,0.10);
  background: rgba(255,255,255,0.75);
  font-size: .86rem;
}
.badge--soft{
  background: rgba(0,0,0,0.03);
}
.sep{ width: 10px; height: 1px; background: rgba(0,0,0,0.18); display:inline-block; }

.venue-hero__cta{ display:flex; gap:.75rem; flex-wrap:wrap; }

.bullets{
  margin: 0;
  padding-left: 1.1rem;
  display:grid;
  gap: .55rem;
}
.bullets li{ line-height: 1.9; }

.gallery{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .9rem;
}
.gallery__item{
  border-radius: 18px;
  min-height: 260px;
  background: rgba(0,0,0,0.06) center/cover no-repeat;
  border: 1px solid rgba(0,0,0,0.08);
}

.info{
  border-radius: 18px;
  border: 1px solid rgba(0,0,0,0.08);
  background: rgba(255,255,255,0.75);
  overflow:hidden;
}
.info__row{
  display:flex;
  justify-content:space-between;
  gap: 1rem;
  padding: .85rem 1rem;
  border-top: 1px solid rgba(0,0,0,0.06);
}
.info__row:first-child{ border-top: 0; }
.small{ font-size: .92rem; }

@media (max-width: 980px){
  .venue-hero{ grid-template-columns: 1fr; min-height: auto; }
  .venue-hero__media{ min-height: 48vh; }
  .venue-hero__copy{ padding: 3rem 1.5rem; }
  .gallery{ grid-template-columns: 1fr; }
  .gallery__item{ min-height: 220px; }
}



/* V5.6.3 Card badges & recommended couple */
.vp-card__badges{
  display:flex;
  gap:.4rem;
  flex-wrap:wrap;
  margin:.35rem 0 .25rem;
}
.vp-card__badges .badge{
  font-size:.72rem;
}

.recommend{
  margin-top:1rem;
  padding:.75rem 1rem;
  border-left:3px solid rgba(0,0,0,0.12);
}



/* V5.7 Wedding Stories */
.story-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1rem;
}
.story-card{
  border:1px solid rgba(0,0,0,0.08);
  border-radius:18px;
  overflow:hidden;
  text-decoration:none;
  background:#fff;
}
.story-card__thumb{
  height:220px;
  background:center/cover no-repeat;
}
.story-card__body{ padding:1rem; }
.story-hero{
  min-height:70vh;
  background:center/cover no-repeat;
  display:flex;
  align-items:flex-end;
}
.story-hero__copy{
  padding:3rem;
  background:rgba(255,255,255,.65);
}
.quote{
  font-size:1.2rem;
  font-style:italic;
}
@media(max-width:900px){
  .story-grid{ grid-template-columns:1fr; }
}



/* V5.8 Reservation conversion optimization */
.reserve-layout{
  display:grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 1.25rem;
  align-items:start;
}
.reserve-card{
  border-radius:18px;
  border:1px solid rgba(0,0,0,0.08);
  background: rgba(255,255,255,0.75);
  padding: 1.1rem 1.05rem;
}
.reserve-card + .reserve-card{ margin-top: .9rem; }
.reserve-card--soft{
  background: rgba(255,255,255,0.6);
}
.steps{
  margin:.75rem 0 0;
  padding-left: 1.1rem;
  display:grid;
  gap: .75rem;
}
.steps li{ line-height: 1.5; }
.steps li span{ display:block; margin-top:.25rem; }

.reserve-form .form{
  border-radius:18px;
  border:1px solid rgba(0,0,0,0.08);
  background: rgba(255,255,255,0.75);
  padding: 1.15rem 1.1rem 1.2rem;
}
.form__grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: .9rem;
}
.field label{ display:block; font-weight:500; margin-bottom:.4rem; }
.field--full{ grid-column: 1 / -1; }
.form__actions{ display:flex; gap:.75rem; flex-wrap:wrap; margin-top: 1rem; }

.reserve-kakao{
  margin-top: 1rem;
  border-radius:18px;
  border:1px solid rgba(0,0,0,0.08);
  background: rgba(255,255,255,0.65);
  padding: 1.1rem 1.05rem;
}

@media (max-width: 980px){
  .reserve-layout{ grid-template-columns: 1fr; }
  .form__grid{ grid-template-columns: 1fr; }
}



/* V5.10.1 Weddings page fix: stable grid + card sizing */
.story-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}
.story-card{
  display:block;
  border: 1px solid rgba(0,0,0,0.08);
  border-radius: 18px;
  overflow:hidden;
  background: rgba(255,255,255,0.75);
}
.story-card__thumb{
  width:100%;
  height: 260px;
  background: center/cover no-repeat;
}
.story-card__body{
  padding: 1rem 1rem 1.05rem;
}
.story-card__body h3{ margin: .5rem 0 .35rem; }
@media (max-width: 900px){
  .story-grid{ grid-template-columns: 1fr; }
  .story-card__thumb{ height: 220px; }
}



/* V5.10.2 Weddings hardening: ensure pagehero styles exist */
.pagehero{
  padding: 4.5rem 0 2.2rem;
}
.pagehero .eyebrow{
  font-size: .72rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  opacity: .78;
  margin: 0 0 .8rem;
}
.pagehero h1{ margin:0 0 .85rem; }
.pagehero .lead{ max-width: 58ch; }



/* V5.11 Stories operational polish */
.story-card__meta{
  font-size:.8rem;
  margin-bottom:.35rem;
}
.ops-summary{
  border:1px solid rgba(0,0,0,0.08);
  border-radius:18px;
  background:rgba(255,255,255,.75);
  padding:1rem 1.05rem;
  display:grid;
  grid-template-columns: 1fr 2fr;
  gap:1rem;
}
@media(max-width:900px){
  .ops-summary{ grid-template-columns:1fr; }
}



/* V5.14 Hero Video */
.hero-video{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  z-index:0;
}
.hero img,
.hero .hero-slide{
  position:relative;
  z-index:1;
}
@media (max-width: 768px){
  .hero-video{ display:none; }
}



/* V5.17 Services seasonal + VIP/Private pages */
.season-grid{
  display:grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: .9rem;
  margin-top: 1rem;
}
.season-card{
  border: 1px solid rgba(0,0,0,0.08);
  border-radius: 18px;
  background: rgba(255,255,255,0.75);
  padding: 1.05rem 1.05rem;
}
.season-card h3{
  letter-spacing: .22em;
  font-size: .8rem;
  margin: 0 0 .65rem;
  opacity: .8;
}
.season-cta{
  margin-top: 1.1rem;
  border: 1px solid rgba(0,0,0,0.08);
  border-radius: 18px;
  background: rgba(255,255,255,0.75);
  padding: 1.1rem 1.05rem;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap: 1rem;
  flex-wrap:wrap;
}

.vip-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 1rem;
}
.vip-card{
  border: 1px solid rgba(0,0,0,0.08);
  border-radius: 18px;
  background: rgba(255,255,255,0.75);
  padding: 1.1rem 1.05rem;
}
.vip-note{
  margin-top: 1rem;
  border: 1px solid rgba(0,0,0,0.08);
  border-radius: 18px;
  background: rgba(255,255,255,0.65);
  padding: 1.15rem 1.05rem;
}
.vip-cta{ display:flex; gap:.75rem; flex-wrap:wrap; margin-top: .9rem; }

.landing-box{
  margin-top: 1.15rem;
  border: 1px solid rgba(0,0,0,0.08);
  border-radius: 18px;
  background: rgba(255,255,255,0.75);
  padding: 1.15rem 1.05rem;
  display:flex;
  flex-direction:column;
  gap: .75rem;
}
@media (max-width: 980px){
  .season-grid{ grid-template-columns: 1fr 1fr; }
  .vip-grid{ grid-template-columns: 1fr; }
}
@media (max-width: 520px){
  .season-grid{ grid-template-columns: 1fr; }
}



/* V5.18 Private landing UTM + FAQ */
.faq{
  margin-top: .9rem;
  border-radius: 18px;
  border: 1px solid rgba(0,0,0,0.08);
  background: rgba(255,255,255,0.75);
  overflow:hidden;
}
.faq__item{
  padding: 0;
  border-top: 1px solid rgba(0,0,0,0.06);
}
.faq__item:first-child{ border-top:0; }
.faq__item summary{
  cursor:pointer;
  padding: .95rem 1.05rem;
  list-style:none;
  font-weight: 500;
}
.faq__item summary::-webkit-details-marker{ display:none; }
.faq__item p{
  margin:0;
  padding: 0 1.05rem 1.05rem;
  line-height: 1.85;
}



/* V5.19 Private landing content upgrade */
.landing-cards{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: .9rem;
  margin: 1.1rem 0 0;
}
.landing-card{
  border: 1px solid rgba(0,0,0,0.08);
  border-radius: 18px;
  background: rgba(255,255,255,0.75);
  padding: 1.05rem 1.05rem;
}
.landing-cta{ display:flex; gap:.75rem; flex-wrap:wrap; margin-top:.85rem; }
.trust-strip{
  margin-top: 1.1rem;
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: .7rem;
}
.trust-item{
  border: 1px solid rgba(0,0,0,0.08);
  border-radius: 18px;
  background: rgba(255,255,255,0.65);
  padding: .9rem 1rem;
  display:flex;
  flex-direction:column;
  gap:.35rem;
}
.sticky-cta{
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  padding: .7rem .9rem;
  display: none;
  gap: .75rem;
  justify-content:center;
  background: rgba(255,255,255,0.9);
  border-top: 1px solid rgba(0,0,0,0.08);
  backdrop-filter: blur(10px);
  z-index: 999;
}
@media (max-width: 820px){
  .landing-cards{ grid-template-columns: 1fr; }
  .trust-strip{ grid-template-columns: 1fr; }
  .sticky-cta{ display:flex; }
  body{ padding-bottom: 76px; }
}



/* V5.22 Thanks page Kakao emphasis */
.kakao-hero{
  margin-top: 1rem;
  padding: 1rem 1.05rem;
  border-radius: 18px;
  border: 1px solid rgba(0,0,0,0.08);
  background: rgba(254,229,0,0.20);
  display:flex;
  justify-content: space-between;
  align-items:center;
  gap: 1rem;
  flex-wrap:wrap;
}



/* V5.23 Private landing cleanup: reduce empty space and tighten rhythm */
.hero-vb{ min-height: 78vh; }
.hero-vb__copy{ padding-top: 5.5rem; padding-bottom: 4.25rem; }
.section{ padding: 3.2rem 0; }
.section.section--muted{ padding: 2.8rem 0; }
#private-faq{ margin-top: 0; }
.faq__item summary{ padding: .9rem 1.05rem; }
.faq__item p{ padding-bottom: 1rem; }
@media (max-width: 820px){
  .hero-vb{ min-height: 86vh; }
  .hero-vb__copy{ padding-top: 5rem; padding-bottom: 4rem; }
}



/* V5.24 Private hero line-break control */
.br-desktop{ display:block; }
.br-mobile{ display:none; }
@media (max-width: 820px){
  .br-desktop{ display:none; }
  .br-mobile{ display:block; }
  .hero-vb__headline{ line-height: 1.08; }
}



/* V5.27 Private landing: center hero + fix media visibility */
.hero-vb{
  display:grid;
  grid-template-columns: 1fr;
  align-items: stretch;
}
.hero-vb__media{
  position:absolute;
  inset:0;
}
.hero-vb__slides,
.hero-vb__slides .hero-vb__slide{
  width:100%;
  height:100%;
}
.hero-vb__slides .hero-vb__slide{
  object-fit:cover;
}
.hero-vb__copy{
  position:relative;
  z-index:2;
  max-width: 860px;
  margin: 0 auto;
  text-align:center;
  padding-top: 6.2rem;
  padding-bottom: 4.2rem;
}
.hero-vb__cta{
  justify-content:center;
}
.hero-vb__meta{
  justify-content:center;
}
.hero-vb__scroll{
  left:50%;
  transform:translateX(-50%);
  opacity:.85;
}
@media (max-width: 820px){
  .hero-vb__copy{
    text-align:left;
    padding-top: 5.2rem;
    padding-bottom: 4rem;
  }
  .hero-vb__cta,
  .hero-vb__meta{ justify-content:flex-start; }
  .hero-vb__scroll{ left: 1.2rem; transform:none; }
}



/* V5.27.1 Fix: keep hero media inside hero so lower content is visible */
.hero-vb{ position: relative; overflow: hidden; }
.hero-vb__media{ position:absolute; inset:0; }



/* V5.27.2 Private landing: hero-to-content spacing polish */
.hero-vb{ padding-bottom: 2.4rem; }
.hero-vb + .section{ padding-top: 2.2rem; }
.hero-vb__copy{ padding-bottom: 3.4rem; }
@media (max-width: 820px){
  .hero-vb{ padding-bottom: 1.8rem; }
  .hero-vb + .section{ padding-top: 2.0rem; }
  .hero-vb__copy{ padding-bottom: 3.0rem; }
}



/* V5.27.3 Minimal scroll indicator */
.hero-vb__scroll{
  font-size: 0;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(0,0,0,0.45);
  bottom: 22px;
}
@media (max-width: 820px){
  .hero-vb__scroll{ display:none; }
}



/* V5.29 Services VIP badges */
.svc-badge{
  display:inline-block;
  margin-top:.35rem;
  padding:.2rem .55rem;
  border-radius:999px;
  font-size:.7rem;
  letter-spacing:.02em;
  border:1px solid rgba(0,0,0,.1);
  background:rgba(255,255,255,.7);
}
.svc-badge--vip{
  background:rgba(0,0,0,.85);
  color:#fff;
  border-color:rgba(0,0,0,.85);
}
.svc-top{
  padding:1.1rem 0;
}
.svc-top__inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  flex-wrap:wrap;
}



/* V5.30 Services typography scale down */
.services .section h2,
.services h2{
  font-size: clamp(1.15rem, 1.6vw, 1.35rem);
}
.services h3{
  font-size: clamp(1.05rem, 1.4vw, 1.2rem);
}
.services p,
.services li{
  font-size: .92rem;
  line-height: 1.7;
}
.services .svc-badge{
  font-size: .65rem;
}



/* V5.31 Services spacing polish */
.services .section{ padding: 2.4rem 0; }
.services .card,
.services .svc-card,
.services .vp-card{
  padding: 1.1rem 1.15rem;
}
.services .card + .card,
.services .svc-card + .svc-card{
  margin-top: .6rem;
}
.services ul{ margin-top: .4rem; }
.services .btn{ margin-top: .6rem; }
@media (max-width: 820px){
  .services .section{ padding: 2.0rem 0; }
}



/* V5.32 Reservation layout polish */
.reserve-layout{
  display:grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 1.2rem;
  align-items:start;
}
.reserve-aside .reserve-card,
.reserve-main{
  border: 1px solid rgba(0,0,0,0.08);
  border-radius: 22px;
  background: rgba(255,255,255,0.75);
  padding: 1.35rem 1.35rem;
}
.reserve-main .form__grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: .85rem;
}
.field--full{ grid-column: 1 / -1; }
.form__actions{
  display:flex;
  gap:.75rem;
  flex-wrap:wrap;
  margin-top: .75rem;
}
.reserve-helper{ margin-top: .2rem; }
.reserve-kakao{
  margin-top: 1rem;
  border: 1px solid rgba(0,0,0,0.08);
  border-radius: 22px;
  background: rgba(255,255,255,0.65);
  padding: 1.1rem 1.25rem;
}
@media (max-width: 980px){
  .reserve-layout{ grid-template-columns: 1fr; }
  .reserve-main .form__grid{ grid-template-columns: 1fr; }
}



/* V5.33 Reservation: mood/condition controls */
.checks{
  display:flex;
  gap:.8rem;
  flex-wrap:wrap;
  padding-top:.35rem;
}
.check{
  display:flex;
  align-items:center;
  gap:.45rem;
  font-size:.92rem;
  padding:.35rem .55rem;
  border:1px solid rgba(0,0,0,0.08);
  border-radius:999px;
  background:rgba(255,255,255,0.65);
}
.check input{ transform: translateY(0.5px); }



/* V5.36 Reservation flow: mail button on thanks */
.thanks-mailbox .btn{ width: auto; }



/* V5.37 Thanks page Kakao fallback */
.thanks-actions{
  display:flex;
  gap:.6rem;
  flex-wrap:wrap;
}



/* V5.38 Header menu font weight strengthen */
.header .nav a,
.header .drawer__nav a{
  font-weight: 500;
}



/* V5.39 Process page refinement */
.process-step{ padding: 2.6rem 0; }
.process-step h2{ margin-bottom: .8rem; }
.process-step ul{ margin-bottom: .8rem; }

.process-more summary{
  cursor:pointer;
  font-size:.9rem;
  margin-top:.6rem;
}
.process-more__content{
  margin-top:.6rem;
  padding:.8rem 1rem;
  border-radius:14px;
  background:rgba(255,255,255,.7);
  border:1px solid rgba(0,0,0,.08);
}

.process-extra__grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:1rem;
  margin-top:1.2rem;
}
@media (max-width:820px){
  .process-extra__grid{ grid-template-columns:1fr; }
}



/* V5.40 Process: private branch + step FAQ + cases */
.process-branch__inner{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:1.2rem;
  flex-wrap:wrap;
}
.process-branch__copy{ max-width: 720px; }
.process-branch__cta{ display:flex; gap:.7rem; flex-wrap:wrap; }

.step-faq{ margin-top: 1rem; }
.step-faq__item{ margin-top: .5rem; }

.process-cases__grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  margin-top: 1.1rem;
}
@media (max-width: 980px){
  .process-cases__grid{ grid-template-columns:1fr; }
}



/* V5.41 Process FAQ alignment + refinement */
.step-faq{
  margin: 1.4rem auto 0;
  padding-left: 0;
}
.step-faq .process-more{
  max-width: 760px;
  margin-left: auto;
  margin-right: auto;
}
.step-faq summary{
  text-align: left;
}
