.inner-hero {
  min-height: 430px;
  padding: 90px clamp(24px, 8vw, 120px);
  display: flex;
  align-items: flex-end;
  position: relative;
  overflow: hidden;
  background: var(--forest);
  color: white;
}

.inner-hero::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(18,29,21,.88), rgba(18,29,21,.18));
  content: "";
}

.inner-hero-bg {
  position: absolute;
  inset: 0;
  background-position: center;
  background-size: cover;
}

.inner-hero-copy { max-width: 760px; position: relative; z-index: 1; }
.inner-hero h1 { margin: 0; font-family: var(--serif); font-size: clamp(52px,8vw,108px); font-weight: 400; line-height: .92; }
.inner-hero p { max-width: 600px; margin: 24px 0 0; color: rgba(255,255,255,.75); font-family: var(--serif); font-size: 19px; }

.page-section { padding: 80px clamp(24px, 7vw, 105px); }
.page-section.alt { background: var(--cream); }
.page-heading-simple { max-width: 760px; margin-bottom: 45px; }
.page-heading-simple h2 { margin: 0; font-family: var(--serif); font-size: clamp(40px,6vw,72px); font-weight: 400; line-height: 1; }
.page-heading-simple p { color: #6f776f; font-family: var(--serif); font-size: 18px; }

.branch-page-grid { width: 100%; display: grid; gap: 28px; }
.branch-list-card { width: 100%; position: relative; display: grid; grid-template-columns: minmax(280px,420px) 1fr; align-items: stretch; background: white; border: 1px solid var(--line); }
.branch-list-visual { height: 100%; min-height: 330px; align-self: stretch; position: relative; overflow: hidden; background: #e7e4dc; }
.branch-list-visual img { width: 100%; height: 100%; min-height: 100%; display: block; position: absolute; inset: 0; object-fit: cover; object-position: center; }
.branch-list-card > img { width: 420px; height: 100%; position: absolute; inset: 0 auto 0 0; display: block; object-fit: cover; object-position: center; }
.branch-list-card > img + .branch-list-copy { grid-column: 2; }
.branch-list-copy { padding: clamp(28px,4vw,52px); }
.branch-list-copy h2 { margin: 7px 0 20px; font-family: var(--serif); font-size: clamp(37px,5vw,62px); font-weight: 400; }
.branch-list-meta { margin: 25px 0; display: grid; grid-template-columns: repeat(3,1fr); border-block: 1px solid var(--line); }
.branch-list-meta div { padding: 18px; border-right: 1px solid var(--line); }
.branch-list-meta div:last-child { border-right: 0; }
.branch-list-meta span { display: block; color: #818881; font-size: 8px; text-transform: uppercase; }
.branch-list-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.maps-button svg { width: 22px; height: 22px; }

.franchise-layout {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(340px,440px);
  gap: clamp(28px,5vw,70px);
  align-items: start;
}
.franchise-copy h2 {
  max-width: 760px;
  margin: 0 0 22px;
  font-family: var(--serif);
  font-size: clamp(40px,6vw,72px);
  font-weight: 400;
  line-height: 1;
}
.franchise-copy > p:not(.kicker) {
  max-width: 720px;
  color: #657066;
  font-family: var(--serif);
  font-size: 19px;
}
.franchise-highlights {
  margin-top: 36px;
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 12px;
}
.franchise-highlights article {
  min-height: 190px;
  padding: 24px;
  border: 1px solid var(--line);
  background: white;
}
.franchise-highlights span {
  color: var(--terracotta);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .16em;
}
.franchise-highlights strong {
  margin-top: 22px;
  display: block;
  font-family: var(--serif);
  font-size: 24px;
  font-weight: 500;
}
.franchise-highlights p {
  color: #6d746d;
  font-size: 12px;
}
.franchise-form {
  padding: clamp(26px,4vw,38px);
  position: sticky;
  top: 24px;
  border: 1px solid var(--line);
  background: var(--paper);
  box-shadow: var(--shadow);
}
.franchise-form h2 {
  margin: 0 0 10px;
  font-family: var(--serif);
  font-size: 38px;
  font-weight: 400;
}
.franchise-form > p:not(.kicker):not(.franchise-form-message) {
  margin-bottom: 22px;
  color: #6f776f;
  font-size: 13px;
}
.franchise-form label {
  margin-top: 13px;
  display: grid;
  gap: 6px;
}
.franchise-form label span {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.franchise-form input,
.franchise-form select,
.franchise-form textarea {
  width: 100%;
  min-height: 52px;
  padding: 14px 16px;
  border: 1px solid var(--line);
  background: white;
  color: var(--ink);
  outline: none;
}
.franchise-form textarea { resize: vertical; }
.franchise-form-message {
  min-height: 20px;
  margin: 16px 0;
  color: var(--terracotta);
  font-size: 12px;
  line-height: 1.5;
}
.franchise-form-message.success {
  padding: 14px 16px;
  background: #e7ede3;
  color: #345d3b;
}
.franchise-form button { width: 100%; }
.franchise-form-privacy { margin-top: 12px; display: block; color: #7b817b; font-size: 10px; line-height: 1.5; text-align: center; }

.franchise-section-heading { max-width: 850px; margin-bottom: clamp(28px,4vw,52px); }
.franchise-section-heading h2 { margin: 0 0 18px; font-family: var(--serif); font-size: clamp(42px,6vw,72px); font-weight: 400; line-height: 1; }
.franchise-section-heading > p:not(.kicker) { max-width: 720px; color: #657066; font-family: var(--serif); font-size: 18px; }
.franchise-showcase-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; }
.franchise-showcase-card { min-width: 0; border: 1px solid var(--line); background: #fff; }
.franchise-showcase-card > button { width: 100%; height: 100%; padding: 0; display: grid; grid-template-rows: 172px 1fr; border: 0; background: transparent; color: var(--ink); text-align: left; cursor: pointer; }
.franchise-showcase-image { position: relative; display: block; overflow: hidden; background: var(--forest); }
.franchise-showcase-image > img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .45s ease; }
.franchise-showcase-placeholder { height: 100%; display: grid; place-items: center; color: rgba(255,255,255,.6); font-family: var(--serif); font-size: 52px; }
.franchise-showcase-image > b { padding: 8px 11px; position: absolute; left: 14px; bottom: 14px; background: rgba(25,42,31,.9); color: white; font-size: 8px; letter-spacing: .12em; text-transform: uppercase; }
.franchise-showcase-copy { min-width: 0; padding: 20px; display: flex; flex-direction: column; }
.franchise-showcase-copy > small { color: var(--terracotta); font-size: 8px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.franchise-showcase-copy > strong { margin: 9px 0 10px; display: block; font-family: var(--serif); font-size: 26px; font-weight: 500; line-height: 1; }
.franchise-showcase-copy > span:not(.franchise-showcase-metrics) { color: #6d746d; font-size: 12px; line-height: 1.65; }
.franchise-showcase-metrics { margin-top: 18px; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border-block: 1px solid var(--line); }
.franchise-showcase-metrics > span { padding: 12px 8px 12px 0; display: grid; gap: 3px; }
.franchise-showcase-metrics b { font-family: var(--serif); font-size: 20px; font-weight: 500; }
.franchise-showcase-metrics small { color: #7b817b; font-size: 7px; letter-spacing: .06em; text-transform: uppercase; }
.franchise-showcase-copy > em { margin-top: auto; padding-top: 18px; display: flex; justify-content: space-between; gap: 12px; color: var(--ink); font-size: 9px; font-style: normal; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.franchise-showcase-copy > em i { color: var(--terracotta); font-style: normal; }
.franchise-showcase-card > button:hover .franchise-showcase-image > img { transform: scale(1.035); }
.franchise-showcase-card > button:focus-visible { outline: 2px solid var(--terracotta); outline-offset: 3px; }

@media (max-width:1180px) {
  .franchise-showcase-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

.franchise-process-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border: 1px solid var(--line); background: white; }
.franchise-process-grid article { min-height: 230px; padding: clamp(24px,3vw,38px); border-right: 1px solid var(--line); }
.franchise-process-grid article:last-child { border-right: 0; }
.franchise-process-grid span { color: var(--terracotta); font-size: 9px; font-weight: 700; letter-spacing: .16em; }
.franchise-process-grid h3 { margin: 30px 0 12px; font-family: var(--serif); font-size: 27px; font-weight: 500; line-height: 1.1; }
.franchise-process-grid p { color: #6d746d; font-size: 12px; line-height: 1.7; }

.franchise-story-dialog { width: min(920px,calc(100vw - 30px)); max-height: min(820px,calc(100vh - 30px)); padding: 0; border: 0; background: var(--paper); color: var(--ink); box-shadow: 0 30px 90px rgba(18,31,22,.28); }
.franchise-story-dialog::backdrop { background: rgba(20,31,24,.68); backdrop-filter: blur(3px); }
.franchise-story-close { width: 42px; height: 42px; position: sticky; top: 14px; z-index: 2; float: right; margin: 14px 14px -56px 0; border: 1px solid rgba(255,255,255,.5); background: rgba(25,42,31,.85); color: white; font-size: 24px; cursor: pointer; }
.franchise-story-cover { width: 100%; height: clamp(230px,42vw,420px); display: block; object-fit: cover; }
.franchise-story-body { padding: clamp(28px,6vw,68px); }
.franchise-story-body h2 { margin: 0; font-family: var(--serif); font-size: clamp(42px,7vw,74px); font-weight: 400; line-height: 1; }
.franchise-story-location { color: var(--terracotta); font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.franchise-story-summary { max-width: 720px; color: #59645b; font-family: var(--serif); font-size: 20px; line-height: 1.6; }
.franchise-story-metrics { margin: 30px 0; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border-block: 1px solid var(--line); }
.franchise-story-metrics span { padding: 20px 12px 20px 0; display: grid; gap: 5px; }
.franchise-story-metrics strong { font-family: var(--serif); font-size: 30px; font-weight: 500; }
.franchise-story-metrics small { color: #747c75; font-size: 8px; letter-spacing: .08em; text-transform: uppercase; }
.franchise-story-features { margin: 24px 0 34px; display: flex; flex-wrap: wrap; gap: 8px; }
.franchise-story-features span { padding: 9px 12px; border: 1px solid var(--line); background: white; font-size: 10px; }
.franchise-story-body h3 { margin: 28px 0 14px; font-family: var(--serif); font-size: 34px; font-weight: 500; }
.franchise-story-rich { max-width: 760px; }

.detail-layout { display: grid; grid-template-columns: 1fr 380px; gap: 50px; align-items: start; }
.event-detail-layout {
  width: 100%;
  max-width: 1680px;
  margin-inline: auto;
  grid-template-columns: minmax(0,1fr) minmax(340px,380px);
  gap: clamp(42px,4vw,72px);
}
.event-detail-layout .detail-copy { min-width: 0; }
.detail-copy h2 { font-family: var(--serif); font-size: 48px; font-weight: 400; }
.detail-card { padding: 30px; position: sticky; top: 30px; background: var(--forest); color: white; }
.detail-card dl { margin: 25px 0; }
.detail-card dl > div { padding: 12px 0; display: flex; justify-content: space-between; gap: 18px; border-bottom: 1px solid rgba(255,255,255,.15); }
.detail-card dt { color: rgba(255,255,255,.55); font-size: 9px; text-transform: uppercase; }
.detail-card dd { margin: 0; font-family: var(--serif); text-align: right; }
.detail-contact-buttons { margin-top: 12px; display: grid; gap: 8px; }
.detail-contact-button { min-height: 46px; padding: 0 14px; display: flex; align-items: center; gap: 10px; border: 1px solid rgba(255,255,255,.2); color: white; font-size: 10px; }
.detail-contact-button:hover { background: rgba(255,255,255,.08); }
.detail-contact-button svg { width: 21px; height: 21px; flex: 0 0 21px; }
.detail-contact-button.whatsapp-button { border-color: rgba(126,211,151,.42); color: #e5f7e9; }
.detail-contact-button.whatsapp-button:hover { background: rgba(63,153,92,.22); color: white; }
.detail-contact-button.whatsapp-button .whatsapp-icon-phone { fill: var(--forest); }
.contact-button-icon { width: 21px; text-align: center; font-size: 17px; }
.branch-detail-video { width: 100%; margin-top: 30px; max-height: 520px; background: #111; }
.gallery-grid { margin-top: 35px; display: grid; grid-template-columns: repeat(2,1fr); gap: 12px; }
.gallery-item { padding: 0; border: 0; background: transparent; cursor: zoom-in; overflow: hidden; }
.gallery-grid img { width: 100%; height: 320px; object-fit: cover; transition: transform .25s ease; }
.gallery-item:hover img { transform: scale(1.025); }
.gallery-lightbox { width: min(1100px,calc(100vw - 30px)); height: min(820px,calc(100vh - 30px)); padding: 55px 70px 40px; border: 0; background: #111; color: white; }
.gallery-lightbox::backdrop { background: rgba(0,0,0,.88); }
.gallery-lightbox figure { width: 100%; height: 100%; margin: 0; display: grid; grid-template-rows: minmax(0,1fr) auto; gap: 15px; }
.gallery-lightbox img { width: 100%; height: 100%; object-fit: contain; }
.gallery-lightbox figcaption { color: rgba(255,255,255,.65); font-size: 10px; text-align: center; }
.lightbox-close,.lightbox-nav { position: absolute; border: 0; background: rgba(255,255,255,.12); color: white; cursor: pointer; }
.lightbox-close { width: 40px; height: 40px; top: 10px; right: 10px; font-size: 24px; }
.lightbox-nav { width: 44px; height: 60px; top: 50%; transform: translateY(-50%); }
.lightbox-nav.previous { left: 12px; }
.lightbox-nav.next { right: 12px; }

.quote-page { min-height: 100vh; background: #f1f2ee; }
.quote-shell { padding: 55px clamp(18px,5vw,70px) 90px; }
.auth-panel { max-width: 850px; margin: 0 auto; display: grid; grid-template-columns: .85fr 1.15fr; background: white; box-shadow: var(--shadow); }
.auth-art { min-height: 650px; padding: 45px; display: flex; align-items: flex-end; background: linear-gradient(rgba(20,31,23,.35),rgba(20,31,23,.9)),url("../images/couple.jpg") center/cover; color: white; }
.auth-form { padding: 55px; }
.auth-form h1 { margin: 0 0 25px; font-family: var(--serif); font-size: 48px; font-weight: 400; }
.auth-form .field { margin-bottom: 15px; }
.field select { box-sizing: border-box; width: 100%; max-width: 100%; min-width: 0; min-height: 49px; padding: 10px 13px; border: 1px solid var(--line); border-radius: 0; background: white; color: var(--ink); }
.auth-art h2 { margin: 0; font-family: var(--serif); font-size: 46px; font-weight: 400; line-height: 1; }
.auth-tabs { margin-bottom: 30px; display: flex; border-bottom: 1px solid var(--line); }
.auth-tabs button { padding: 12px 20px; border: 0; border-bottom: 2px solid transparent; background: transparent; cursor: pointer; }
.auth-tabs button.active { border-color: var(--terracotta); color: var(--terracotta); }
.consent-check { margin: 20px 0; display: flex; gap: 9px; align-items: flex-start; color: #687068; font-size: 11px; }
.legal-consent span { line-height: 1.55; }
.legal-consent a { color: var(--terracotta); text-decoration: underline; text-underline-offset: 2px; }
.form-message { min-height: 20px; margin: 8px 0; color: #a24b3d; font-size: 11px; font-weight: 600; }
.form-message.error { padding: 11px 13px; border-left: 3px solid #a24b3d; background: #f8e9e6; }
.bot-field { position: absolute !important; left: -10000px !important; opacity: 0 !important; }
.quick-auth-panel .auth-art { min-height: 560px; }
.quick-login-toggle { margin-top: 10px; }
.quote-completion-dialog form { min-width: 0; }
.quote-completion-dialog .auth-form-intro { margin-top: -8px; }

.quote-builder-page { display: grid; grid-template-columns: minmax(0,1fr) 340px; gap: 24px; }
.builder-panel,.summary-panel,.account-panel { background: white; border: 1px solid var(--line); }
.builder-panel { padding: clamp(25px,5vw,60px); }
.builder-panel h1 { margin: 0; font-family: var(--serif); font-size: clamp(43px,6vw,72px); font-weight: 400; }
.builder-block { margin-top: 38px; padding-top: 30px; border-top: 1px solid var(--line); }
.builder-block h2 { font-family: var(--serif); font-size: 29px; font-weight: 400; }
.option-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(230px,1fr)); gap: 13px; }
.option-card { min-height: 118px; padding: 21px 20px; display: grid; grid-template-columns: 22px 1fr; gap: 13px; align-items: start; position: relative; overflow: hidden; border: 1px solid rgba(31,41,34,.14); background: #fffefa; cursor: pointer; transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease, background .18s ease; }
.option-card:hover { transform: translateY(-2px); border-color: rgba(31,41,34,.3); box-shadow: 0 14px 35px rgba(28,40,31,.07); }
.option-card:has(input:checked) { border-color: var(--forest); background: #f5f4ee; box-shadow: inset 3px 0 var(--terracotta); }
.option-card input { position: absolute; opacity: 0; pointer-events: none; }
.option-check { width: 18px; height: 18px; margin-top: 3px; display: block; position: relative; border: 1px solid #9ba099; border-radius: 50%; background: white; }
.option-card:has(input:checked) .option-check { border-color: var(--forest); background: var(--forest); }
.option-card:has(input:checked) .option-check::after { width: 6px; height: 3px; position: absolute; top: 5px; left: 5px; border-left: 1.5px solid white; border-bottom: 1.5px solid white; content: ""; transform: rotate(-45deg); }
.option-copy { min-width: 0; display: block; }
.option-copy b { display: block; font-family: var(--serif); font-size: 20px; font-weight: 500; line-height: 1.15; }
.option-card strong { grid-column: 2; display: block; margin-top: 3px; color: var(--terracotta); font-family: var(--serif); font-size: 17px; font-weight: 500; }
.option-card small { margin-top: 7px; display: block; color: #727a73; font-size: 11px; line-height: 1.45; }
.option-copy ul { margin: 10px 0 0; padding: 0; display: grid; gap: 4px; list-style: none; color: #626a63; font-size: 10px; line-height: 1.45; }
.option-copy li::before { margin-right: 7px; color: var(--terracotta); content: "—"; }
.event-option { min-height: 94px; }
.event-option .option-copy b { font-size: 18px; }
.builder-intro { display: flex; align-items: end; justify-content: space-between; gap: 30px; }
.builder-intro > div:first-child { max-width: 690px; }
.builder-intro > div:first-child > p:last-child { color: #6e766f; font-family: var(--serif); font-size: 17px; }
.branch-builder-select { width: min(300px,100%); margin: 0; flex: 0 0 auto; }
.builder-block-title { margin-bottom: 20px; display: flex; align-items: baseline; gap: 13px; }
.builder-block-title span { color: var(--terracotta); font-family: var(--serif); font-size: 13px; }
.builder-block-title h2 { margin: 0; }
.capacity-warning { margin: 12px 0 0; padding: 12px 14px; border-left: 3px solid #a24b3d; background: #f8e9e6; color: #8f4035; font-size: 11px; font-weight: 600; line-height: 1.5; }
.summary-panel { max-height: calc(100vh - 40px); padding: 27px; position: sticky; top: 20px; align-self: start; overflow: auto; z-index: 5; box-shadow: 0 18px 50px rgba(26,36,29,.08); }
.summary-panel h2 { font-family: var(--serif); font-size: 28px; font-weight: 400; }
.summary-empty,.summary-note { color: #727a73; font-size: 11px; }
.summary-row { padding: 10px 0; display: flex; justify-content: space-between; gap: 14px; border-bottom: 1px solid var(--line); font-size: 11px; }
.summary-coupon { color: #426247; }
.summary-grand { margin: 24px 0; display: flex; justify-content: space-between; align-items: center; }
.summary-grand strong { font-family: var(--serif); font-size: 27px; }
.summary-panel button:disabled { opacity: .48; cursor: not-allowed; }

.account-layout { display: grid; grid-template-columns: 250px 1fr; min-height: 700px; }
.account-nav { padding: 36px 25px; background: var(--forest); color: white; }
.account-nav,.account-main { min-width: 0; }
.account-nav-head { min-width: 0; }
.account-nav h2 { font-family: var(--serif); font-size: 28px; font-weight: 400; }
.account-nav-items { display: block; }
.account-nav button,.account-nav a { width: 100%; min-height: 47px; padding: 13px 0; display: flex; align-items: center; justify-content: space-between; border: 0; border-bottom: 1px solid rgba(255,255,255,.15); background: transparent; color: white; cursor: pointer; font-size: 13px; text-align: left; }
.account-nav button.active { color: var(--sand); }
.account-nav button b { min-width: 22px; padding: 2px 6px; border-radius: 20px; background: rgba(255,255,255,.1); font-size: 9px; text-align: center; }
.account-mobile-menu-toggle { display: none !important; }
.account-main { padding: clamp(25px,5vw,60px); }
.account-main h1 { margin-top: 0; font-family: var(--serif); font-size: 52px; font-weight: 400; }
.dashboard-grid-cards { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; }
.dashboard-card { width: 100%; padding: 20px; border: 0; background: #f4f1ea; color: inherit; cursor: pointer; text-align: left; }
.dashboard-card:hover { background: #ebe6dc; }
.dashboard-card strong { display: block; font-family: var(--serif); font-size: 30px; font-weight: 400; }
.record-list { margin-top: 30px; display: grid; gap: 10px; }
.record-card { width: 100%; padding: 20px; display: grid; grid-template-columns: 1fr auto; gap: 15px; border: 1px solid var(--line); background: white; cursor: pointer; text-align: left; }
.record-card h3 { margin: 5px 0; font-family: var(--serif); font-size: 21px; font-weight: 500; }
.record-card.static { cursor: default; }
.record-card small { color: #747b75; }
.record-status { align-self: start; padding: 5px 8px; background: #e5e9e0; color: #476044; font-size: 8px; font-weight: 700; text-transform: uppercase; }
.record-status.pending { background: #eee7d9; color: #816539; }
.record-status.approved,.record-status.contract-signed { background: #e1ebdf; color: #34613a; }
.record-status.visited { background: #eee4d1; color: #856329; }
.record-status.declined { background: #f1dfdb; color: #94483e; }
.record-status.rejected,.record-status.contract-cancelled { background: #f1dfdb; color: #94483e; }
.record-status.contract-prepared { background: #e5e8ee; color: #3e516e; }
.record-status.contract-printed { background: #f2e8d3; color: #89671f; }
.record-status.expired { background: #f1dfdb; color: #94483e; }
.record-status.event-order-pending_confirmation { background: #eee7d9; color: #816539; }
.record-status.event-order-awaiting_payment { background: #f2e8d3; color: #89671f; }
.record-status.event-order-paid { background: #e1ebdf; color: #34613a; }
.record-status.event-order-cancelled { background: #f1dfdb; color: #94483e; }
.event-order-card {
  padding: 20px;
  display: grid;
  gap: 16px;
  border: 1px solid var(--line);
  background: white;
}
.event-order-head {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 15px;
}
.event-order-head h3 { margin: 5px 0; font-family: var(--serif); font-size: 25px; font-weight: 500; }
.event-order-head small { color: #747b75; }
.event-order-meta { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; }
.event-order-meta span {
  padding: 12px;
  display: grid;
  gap: 4px;
  border: 1px solid var(--line);
  background: #f8f6f1;
  font-size: 12px;
}
.event-order-meta b { color: #8a735d; font-size: 8px; letter-spacing: .1em; text-transform: uppercase; }
.event-order-bank {
  padding: 14px;
  display: grid;
  gap: 6px;
  border-left: 3px solid var(--sand);
  background: #f8f6f1;
}
.event-order-bank code { font-family: var(--sans); word-break: break-word; }
.event-account-tickets { margin-top:18px; padding:18px; border:1px solid #d8d2c8; background:#f8f4ec; }
.event-account-tickets > strong { display:block; margin-bottom:12px; font-size:12px; letter-spacing:.08em; text-transform:uppercase; }
.event-account-tickets > div { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:9px; }
.event-account-ticket { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:13px 14px; color:var(--ink); background:#fff; border:1px solid #cfc7bb; text-decoration:none; }
.event-account-ticket small { color:#397046; font-weight:800; }
.event-account-ticket.used small { color:#746e62; }
.event-account-ticket.cancelled { opacity:.7; }
.event-account-ticket.cancelled small { color:#a65f4d; }
.event-ticket-waiting { display:grid; gap:5px; margin-top:18px; padding:17px; border-left:3px solid #bf795f; background:#f7ede5; }
.event-ticket-waiting span { color:#6d736e; font-size:14px; line-height:1.5; }
.event-order-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.detail-dialog-content { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
.detail-dialog { width: min(760px,calc(100vw - 30px)); max-width: calc(100vw - 30px); max-height: calc(100dvh - 30px); padding: 42px; border: 0; overflow: auto; overscroll-behavior: contain; background: var(--paper); box-shadow: 0 32px 100px rgba(15,24,18,.32); }
.detail-dialog::backdrop { background: rgba(17,27,20,.65); backdrop-filter: blur(5px); }
.dialog-close { width: 38px; height: 38px; position: absolute; top: 12px; right: 12px; border: 0; background: var(--forest); color: white; cursor: pointer; font-family: var(--serif); font-size: 22px; }
.detail-dialog h2 { margin: 0 0 25px; font-family: var(--serif); font-size: 38px; font-weight: 400; }
.detail-lines { margin: 22px 0; }
.detail-line { padding: 10px 0; display: flex; justify-content: space-between; border-bottom: 1px solid var(--line); }
.timeline-list { margin: 20px 0; border-left: 2px solid var(--sand); }
.timeline-item { padding: 8px 0 8px 20px; }
.timeline-item strong { margin-right: 12px; color: var(--terracotta); }
.timeline-item small { margin-left: 12px; color: #777; }
.timeline-customer-notes { margin-top: 20px; padding: 18px 20px; border: 1px solid var(--line); background: #f8f5ee; }
.timeline-customer-notes p { margin: 0; line-height: 1.7; }
.timeline-customer-notes .kicker { margin-bottom: 8px; color: var(--terracotta); }
.timeline-contract-card { margin-top: 24px; padding: clamp(20px,4vw,32px); border: 1px solid var(--line); background: white; }
.timeline-contract-card > header { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; }
.timeline-contract-card h2 { margin: 2px 0 6px; font-family: var(--serif); font-size: 28px; font-weight: 500; }
.timeline-contract-card header p:last-child { margin: 0; color: #747b75; font-size: 11px; }
.media-delivery-card,.feedback-card { margin-top: 24px; padding: clamp(20px,4vw,32px); border: 1px solid var(--line); background: white; }
.media-delivery-card > header,.feedback-card > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.media-delivery-card h2,.feedback-card h2 { margin: 2px 0 6px; font-family: var(--serif); font-size: 28px; font-weight: 500; }
.media-delivery-card header p:last-child,.feedback-card header p:last-child { margin: 0; color: #747b75; font-size: 11px; }
.feedback-form { margin-top: 20px; display: grid; gap: 16px; }
.feedback-result { margin-top: 18px; padding: 18px; background: #f6f2ea; }
.feedback-result p { margin: 6px 0; color: #4d554e; line-height: 1.7; }
.feedback-result small { color: #777; font-size: 10px; text-transform: uppercase; letter-spacing: .12em; }
.media-delivery-count { padding: 7px 10px; background: #eef0e9; color: #4b604e; font-size: 9px; font-weight: 700; text-transform: uppercase; white-space: nowrap; }
.media-delivery-types { margin: 20px 0 0; color: var(--terracotta); font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.media-delivery-consent { margin-top: 18px; padding: 20px; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 18px; background: #f4f1ea; }
.media-delivery-consent label { display: grid; grid-template-columns: auto 1fr; gap: 11px; color: #5f6860; font-size: 11px; line-height: 1.55; cursor: pointer; }
.media-delivery-consent input { margin-top: 3px; accent-color: var(--forest); }
.media-delivery-consent .button:disabled { opacity: .45; cursor: not-allowed; }
.media-delivery-links { margin-top: 14px; display: grid; gap: 8px; }
.media-delivery-link { padding: 16px 18px; display: flex; align-items: center; justify-content: space-between; gap: 20px; border: 1px solid var(--line); background: white; color: inherit; }
.media-delivery-link:hover { border-color: var(--forest); background: #faf9f5; }
.media-delivery-link span { min-width: 0; display: grid; gap: 3px; }
.media-delivery-link small { color: var(--terracotta); font-size: 8px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.media-delivery-link strong { font-family: var(--serif); font-size: 19px; font-weight: 500; }
.media-delivery-link em { color: #747b75; font-size: 10px; font-style: normal; }
.media-delivery-link b { color: var(--forest); font-size: 9px; text-transform: uppercase; white-space: nowrap; }
.compact-head { margin-top: 34px; }
.compact-head h2 { margin: 0; font-family: var(--serif); font-size: clamp(30px,4vw,42px); font-weight: 400; }
.digital-invitation-section { margin-bottom: 50px; }
.digital-invitation-card { margin-top: 20px; padding: clamp(20px,4vw,32px); border: 1px solid var(--line); background: #fffefa; }
.digital-invitation-card > header { margin-bottom: 24px; display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.digital-invitation-card h3 { margin: 3px 0 6px; font-family: var(--serif); font-size: 29px; font-weight: 500; }
.digital-invitation-card header p:last-child { margin: 0; color: #747b75; font-size: 11px; }
.digital-invitation-form { display: grid; gap: 14px; }
.digital-invitation-form .field { margin: 0; }
.digital-invitation-form input[type="time"] { text-align: center; }
.invitation-form-actions,.invitation-share-panel { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.invitation-event-details,.invitation-contract-details { margin: 0 0 24px; padding: 20px; border: 1px solid var(--line); background: #f7f3ea; }
.invitation-event-details > div:first-child { margin-bottom: 18px; }
.invitation-event-details > div:first-child p:last-child { margin: 5px 0 0; color: #747b75; font-size: 13px; line-height: 1.55; }
.invitation-contract-details { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px 24px; }
.invitation-contract-details span { display: flex; flex-direction: column; gap: 5px; }
.invitation-contract-details small { color: #747b75; text-transform: uppercase; letter-spacing: .1em; font-size: 9px; }
.invitation-contract-details strong { font-family: var(--serif); font-size: 18px; font-weight: 500; }
.invitation-contract-details p { grid-column: 1/-1; margin: 4px 0 0; color: #747b75; font-size: 12px; }
.invitation-share-panel { margin-top: 20px; padding: 18px; background: #f2eee5; }
.invitation-draft-preview { justify-content: flex-end; }
.invitation-preview-link { margin-left: auto; color: var(--terracotta); font-size: 10px; font-weight: 700; text-transform: uppercase; }
.media-links-section { margin-top: 40px; }
.support-account-form { margin-top: 28px; padding: clamp(20px,4vw,30px); border: 1px solid var(--line); background: #f4f1ea; }
.support-account-form .field { margin-bottom: 14px; }
.support-account-form .field small { margin-top: 6px; display: block; color: #737b74; font-size: 9px; }
.support-account-form button:disabled { opacity: .5; cursor: wait; }
.support-ticket-list { margin-top: 24px; display: grid; gap: 9px; }
.support-ticket-card { width: 100%; padding: 20px; display: flex; align-items: center; justify-content: space-between; gap: 20px; border: 1px solid var(--line); background: white; color: inherit; cursor: pointer; text-align: left; }
.support-ticket-card:hover { border-color: var(--forest); background: #faf9f5; }
.support-ticket-card > span:first-child { min-width: 0; display: grid; gap: 5px; }
.support-ticket-card small,.support-ticket-card em { color: #737b74; font-size: 9px; font-style: normal; }
.support-ticket-card strong { font-family: var(--serif); font-size: 20px; font-weight: 500; }
.support-status { padding: 6px 9px; display: inline-block; font-size: 8px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; white-space: nowrap; }
.support-status.created { background: #f1e7d8; color: #80653d; }
.support-status.reviewing { background: #e5eaf0; color: #425d78; }
.support-status.closed { background: #e5ebe3; color: #42654a; }

.invitation-public-page { min-height: 100vh; background: #e9e3d8; }
.invitation-loading,.invitation-error { min-height: 100vh; padding: 40px; display: grid; place-content: center; justify-items: center; text-align: center; }
.invitation-loading img,.invitation-error img { width: min(300px,70vw); }
.invitation-error h1 { margin-bottom: 8px; font-family: var(--serif); font-size: 44px; font-weight: 400; }
.invitation-error a { margin-top: 18px; color: var(--terracotta); font-weight: 700; }
.public-invitation { --inv-primary:#17221b; --inv-accent:#a66f4f; --inv-bg:#eee7db; --inv-card:#fffdf8; --inv-photo:none; min-height: 100vh; padding: 34px clamp(16px,5vw,70px) 44px; background: var(--inv-bg); background:
  radial-gradient(circle at 15% 10%, color-mix(in srgb, var(--inv-accent) 28%, transparent), transparent 28%),
  radial-gradient(circle at 88% 12%, color-mix(in srgb, var(--inv-primary) 14%, transparent), transparent 22%),
  linear-gradient(145deg,var(--inv-bg),#e7dfd1); }
.public-invitation.theme-classic { background: radial-gradient(circle at 50% 0, rgba(221,193,151,.28), transparent 34%), linear-gradient(145deg,var(--inv-bg),#e9ded0); }
.public-invitation.theme-minimal { background: var(--inv-bg); }
.public-invitation-brand { display: flex; justify-content: center; }
.public-invitation-brand img { width: min(270px,64vw); }
.public-invitation-card { width: min(760px,100%); margin: 28px auto 0; padding: clamp(42px,7vw,84px); position: relative; overflow: hidden; border: 1px solid rgba(31,41,34,.16); border-color: color-mix(in srgb, var(--inv-primary) 18%, transparent); background: var(--inv-card); background: color-mix(in srgb, var(--inv-card) 94%, white); text-align: center; box-shadow: 0 30px 90px rgba(37,43,37,.12); }
.public-invitation-card::before { position: absolute; inset: 13px; border: 1px solid color-mix(in srgb, var(--inv-accent) 38%, transparent); content: ""; pointer-events: none; }
.public-invitation-card::after { position: absolute; inset: 27px; border: 1px solid rgba(31,41,34,.08); content: ""; pointer-events: none; }
.theme-classic .public-invitation-card { background: var(--inv-card); }
.theme-classic .public-invitation-card::before { border-color: rgba(141,106,80,.34); }
.theme-minimal .public-invitation-card { border-color: rgba(31,41,34,.12); box-shadow: 0 18px 60px rgba(37,43,37,.08); }
.theme-minimal .public-invitation-card::before,.theme-minimal .public-invitation-card::after { display: none; }
.layout-classic .public-invitation-card { border-width: 2px; box-shadow: 0 24px 80px rgba(75,56,34,.14); }
.layout-classic .public-invitation-card::before { inset: 20px; border-width: 2px; }
.layout-botanical { background:
  radial-gradient(circle at 8% 16%, rgba(122,154,104,.28), transparent 24%),
  radial-gradient(circle at 92% 80%, rgba(122,154,104,.2), transparent 28%),
  linear-gradient(145deg,var(--inv-bg),#f8fbf4); }
.layout-botanical .public-invitation-card::after { inset: auto 22px 22px auto; width: 120px; height: 120px; border: 0; border-right: 2px solid color-mix(in srgb, var(--inv-accent) 40%, transparent); border-bottom: 2px solid color-mix(in srgb, var(--inv-accent) 40%, transparent); border-radius: 0 0 90px 0; }
.layout-rustic .public-invitation-card { background: linear-gradient(180deg, color-mix(in srgb, var(--inv-card) 88%, #f2dfc8), var(--inv-card)); border-color: rgba(92,65,38,.22); }
.layout-minimal .public-invitation-card { max-width: 680px; border: 0; background: var(--inv-card); box-shadow: 0 16px 55px rgba(20,25,21,.08); }
.layout-photo { background: linear-gradient(rgba(12,18,14,.45),rgba(12,18,14,.58)), var(--inv-photo) center/cover fixed, var(--inv-bg); }
.layout-photo .public-invitation-card { background: color-mix(in srgb, var(--inv-card) 90%, white); }
.layout-modern .public-invitation-card { border-radius: 26px; }
.layout-modern .public-invitation-card::before { border-radius: 18px; }
.layout-emerald { background: radial-gradient(circle at 50% 0, rgba(200,154,85,.18), transparent 35%), linear-gradient(145deg,var(--inv-bg),#07120e); }
.layout-emerald .public-invitation-card { background: color-mix(in srgb, var(--inv-card) 92%, #0b1712); color: #f8f0df; border-color: rgba(248,240,223,.18); }
.invitation-preview-badge { width: max-content; margin: 0 auto 20px; padding: 6px 9px; background: #eee7d9; color: #816539; font-size: 8px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.invitation-overline { margin: 0 0 22px; color: var(--inv-accent); font-size: 10px; font-weight: 700; letter-spacing: .32em; text-transform: uppercase; }
.public-invitation-card h1 { max-width: 620px; margin: 0 auto; color: var(--inv-primary); font-family: var(--serif); font-size: clamp(48px,10vw,88px); font-weight: 400; line-height: .95; }
.layout-modern .public-invitation-card h1 { font-family: var(--sans); font-size: clamp(42px,9vw,76px); font-weight: 800; letter-spacing: -.05em; }
.font-classic .public-invitation-card h1 { letter-spacing: -.015em; }
.font-modern .public-invitation-card h1,.font-modern .invitation-message { font-family: var(--sans); }
.font-script .public-invitation-card h1 { font-style: italic; letter-spacing: -.04em; }
.layout-emerald .public-invitation-card h1,.layout-emerald .invitation-message,.layout-emerald .invitation-event-details strong { color: var(--inv-primary); }
.invitation-message { max-width: 600px; margin: 30px auto 0; color: #5c655e; font-family: var(--serif); font-size: clamp(17px,3vw,23px); line-height: 1.55; white-space: pre-line; }
.invitation-families { margin: 23px 0 0; color: var(--inv-accent); font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.invitation-event-details { margin-top: 38px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); border-block: 1px solid var(--line); }
.invitation-event-details div { min-width: 0; padding: 24px; }
.invitation-event-details div + div { border-left: 1px solid var(--line); }
.invitation-event-details span,.invitation-location span { display: block; margin-bottom: 8px; color: #8b8f89; font-size: 8px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.invitation-event-details strong { display: block; overflow-wrap: anywhere; font-family: var(--serif); font-size: clamp(19px,4vw,24px); font-weight: 500; }
.invitation-event-details small { display: block; margin-top: 6px; color: #777e78; }
.invitation-location { margin-top: 34px; display: grid; grid-template-columns: 160px 1fr; gap: 28px; align-items: center; text-align: left; }
#invitation-qr { width: 160px; min-height: 160px; padding: 6px; display: grid; place-content: center; background: white; }
#invitation-qr img,#invitation-qr canvas { max-width: 148px; height: auto !important; }
.invitation-location p { color: #676f68; font-size: 12px; line-height: 1.6; }
.invitation-location a,.invitation-phone { color: var(--inv-accent); font-size: 10px; font-weight: 700; text-transform: uppercase; }
.invitation-phone { margin-top: 25px; display: inline-block; }
.public-invitation > footer { margin-top: 24px; color: #6f746f; font-size: 10px; text-align: center; }
.support-account-meta { margin-top: 22px; display: flex; align-items: center; gap: 12px; color: #737b74; }
.support-account-thread { margin-top: 24px; display: grid; gap: 12px; }
.support-account-message { width: min(82%,680px); padding: 17px 19px; border: 1px solid var(--line); background: #f7f4ee; }
.support-account-message.admin { margin-left: auto; background: #e9eee7; }
.support-account-message header { margin-bottom: 8px; display: flex; justify-content: space-between; gap: 15px; color: #737b74; font-size: 9px; }
.support-account-message p { margin: 0; white-space: pre-wrap; line-height: 1.6; }
.support-account-message a { margin-top: 10px; display: inline-block; color: var(--terracotta); font-size: 10px; font-weight: 700; }
.support-reply-form { margin-top: 24px; }
.account-profile-form { max-width: 760px; margin-top: 28px; padding: clamp(22px,4vw,34px); border: 1px solid var(--line); background: white; }
.account-profile-form .field { margin-bottom: 16px; }
.account-profile-form .field small { display: block; margin-top: 6px; color: #737b74; font-size: 9px; line-height: 1.5; }
.account-profile-form .button:disabled { opacity: .5; cursor: wait; }
.account-profile-subsection { margin: 18px 0 20px; padding: 18px; border: 1px solid var(--line); background: #fbfaf6; }
.account-profile-subsection .kicker { margin: 0 0 12px; color: var(--terracotta); }
.account-completion-notice { margin-top: 28px; padding: clamp(22px,4vw,34px); display: flex; align-items: center; justify-content: space-between; gap: 24px; border: 1px solid #dbcbb5; background: #f4eee4; }
.account-completion-notice strong { display: block; margin-bottom: 7px; font-family: var(--serif); font-size: 24px; font-weight: 500; }
.account-completion-notice p { margin: 0; color: #687068; line-height: 1.6; }
.account-completion-notice .button { flex: 0 0 auto; }
.inline-account-link { padding: 0; border: 0; border-bottom: 1px solid currentColor; background: transparent; color: var(--terracotta); cursor: pointer; font: inherit; font-weight: 700; }
.account-section-head { margin-top: 50px; display: flex; justify-content: space-between; align-items: end; gap: 20px; }
.account-section-head h2 { margin: 0; font-family: var(--serif); font-size: 31px; font-weight: 400; }
.account-section-head p { margin: 4px 0 0; color: #727a73; }
.quote-detail-meta { padding: 15px 0; display: flex; flex-wrap: wrap; gap: 16px; border-block: 1px solid var(--line); color: #6d756e; font-size: 10px; }
.appointment-state { margin-top: 25px; padding: 16px; background: #eef0e9; }
.appointment-picker { margin-top: 24px; padding: 22px; display: grid; gap: 12px; background: #f4f1ea; }
.appointment-picker select,.appointment-picker textarea { width: 100%; padding: 12px; border: 1px solid var(--line); background: white; }
.appointment-account-card { padding: 24px; border: 1px solid var(--line); background: white; }
.appointment-account-head { display: flex; align-items: start; justify-content: space-between; gap: 20px; }
.appointment-account-head h3 { margin: 4px 0; font-family: var(--serif); font-size: 24px; font-weight: 500; }
.appointment-account-head small { color: #747b75; }
.appointment-account-head p { margin: 0; color: #747b75; font-size: 11px; }
.appointment-actions { margin-top: 16px; display: flex; gap: 10px; flex-wrap: wrap; }
.appointment-actions .danger-link { color: #93483d; }
.appointment-change-panel { margin-top: 14px; }
.appointment-change-form { padding: 16px; display: grid; gap: 12px; background: #f7f3eb; }
.appointment-branch-card { margin-top: 18px; padding: 18px; display: grid; grid-template-columns: 1fr auto; gap: 24px; background: #f4f1ea; }
.appointment-branch-card span,.appointment-branch-card small { display: block; color: #777e78; font-size: 10px; }
.appointment-branch-card strong { display: block; margin: 2px 0 5px; font-family: var(--serif); font-size: 20px; font-weight: 500; }
.appointment-contact-links { display: flex; flex-direction: column; align-items: flex-end; justify-content: center; gap: 7px; font-size: 11px; }
.appointment-contact-links .maps-button svg { width: 18px; height: 18px; }
.account-appointment-form { margin-top: 28px; padding: 25px; border: 1px solid var(--line); background: #f4f1ea; }
.account-appointment-form > div { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.compact-empty { margin-top: 28px; }
.auth-form-intro { margin: -12px 0 25px; color: #6e766f; font-family: var(--serif); }
.forgot-link { margin: -4px 0 18px auto; padding: 0; display: block; border: 0; border-bottom: 1px solid currentColor; background: transparent; color: var(--terracotta); cursor: pointer; font-size: 11px; }
.forgot-link.forgot-back { margin-top: 24px; margin-bottom: 0; }
.form-message.success { color: #436847; }
.coupon-entry { margin-top: 20px; padding: 18px; display: grid; grid-template-columns: 1fr auto; gap: 10px; align-items: end; background: #f4f1ea; }
.coupon-entry .field { margin: 0; }
.coupon-entry p { min-height: 16px; margin: 0; grid-column: 1 / -1; color: #a24b3d; font-size: 10px; }
.coupon-entry p.success { color: #436847; }
.social-login { margin-top: 26px; padding-top: 23px; position: relative; border-top: 1px solid var(--line); }
.social-login > span { padding: 0 10px; position: absolute; top: -10px; left: 50%; background: white; color: #8a908a; font-size: 9px; transform: translateX(-50%); }
.social-login-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; }
.social-login-button { min-height: 44px; padding: 0 8px; border: 1px solid var(--line); background: white; color: var(--ink); cursor: pointer; font-size: 10px; }
.social-login-button b { margin-right: 6px; font-family: var(--serif); font-size: 16px; }
.social-login small { margin-top: 10px; display: block; color: #858b85; font-size: 9px; text-align: center; }
.reset-shell { min-height: 100vh; display: grid; place-items: center; }
.reset-panel { width: min(560px,100%); padding: clamp(30px,6vw,60px); box-shadow: var(--shadow); }
.reset-panel .brand img { width: 150px; margin-bottom: 50px; }
.reset-panel h1 { font-family: var(--serif); font-size: 45px; font-weight: 400; line-height: 1; }
.reset-success h2 { font-family: var(--serif); font-size: 34px; font-weight: 400; }
.completion-intro { margin: 0 0 28px; color: #687068; line-height: 1.7; }
.completion-intro strong { color: var(--ink); }
.completion-panel form { display: grid; gap: 16px; }
.completion-panel form[hidden], .completion-expired[hidden] { display: none; }
.completion-expired h2 { margin: 0 0 12px; font-family: var(--serif); font-size: 34px; font-weight: 400; }
.completion-expired p { margin: 0 0 24px; color: #687068; line-height: 1.7; }
.expired-detail { padding: 20px; }
.section-more { margin-top: 35px; }
.home-cta { padding: 90px clamp(24px,7vw,110px); display: flex; justify-content: space-between; align-items: end; gap: 40px; background: var(--forest); color: white; }
.home-cta h2 { margin: 0; font-family: var(--serif); font-size: clamp(44px,7vw,80px); font-weight: 400; line-height: .95; }
.home-cta p:not(.kicker) { max-width: 600px; color: rgba(255,255,255,.65); }
.maps-button { display: inline-flex; align-items: center; gap: 8px; }
.maps-button svg { flex: 0 0 22px; }
.content-hero { min-height: 520px; }
.content-filter { margin-bottom: 38px; display: flex; gap: 8px; flex-wrap: wrap; }
.content-filter button { min-height: 42px; padding: 0 20px; border: 1px solid var(--line); background: white; color: var(--ink); cursor: pointer; font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.content-filter button.active { border-color: var(--forest); background: var(--forest); color: white; }
.content-card-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.event-card-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.content-card { background: white; border: 1px solid var(--line); }
.content-card-image { height: 260px; display: block; overflow: hidden; }
.content-card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.content-card:hover .content-card-image img { transform: scale(1.025); }
.content-card > div { padding: 28px; }
.content-card > div > span { color: var(--terracotta); font-size: 9px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.content-card h2 { margin: 12px 0; font-family: var(--serif); font-size: 28px; font-weight: 400; line-height: 1.08; }
.content-card p { color: #6f766f; font-family: var(--serif); font-size: 15px; }
.content-card .line-link { font-size: 10px; }
.content-article { width: min(920px,calc(100% - 40px)); margin: 0 auto; padding: 90px 0; }
.content-article header { max-width: 780px; margin: 0 auto 50px; text-align: center; }
.content-article h1 { margin: 10px 0 24px; font-family: var(--serif); font-size: clamp(48px,7vw,82px); font-weight: 400; line-height: .98; }
.content-lead { color: #666f67; font-family: var(--serif); font-size: 21px; }
.content-article header > span,.content-back { color: #818781; font-size: 10px; letter-spacing: .08em; }
.content-back { display: inline-block; margin-bottom: 34px; }
.content-featured { width: 100%; max-height: 560px; object-fit: cover; }
.content-body { width: min(700px,100%); margin: 55px auto; font-family: var(--serif); font-size: 19px; line-height: 1.75; }
.content-body h2 { margin: 45px 0 15px; font-size: 36px; font-weight: 400; }
.content-tags { width: min(700px,100%); margin: 0 auto; display: flex; gap: 8px; flex-wrap: wrap; }
.content-tags span { padding: 7px 11px; background: var(--cream); color: #69716a; font-size: 9px; text-transform: uppercase; }
.event-card-price {
  margin: 18px 0;
  color: var(--terracotta);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.event-detail-meta {
  margin: 22px 0 30px;
  display: flex;
  gap: 9px;
  flex-wrap: wrap;
}
.event-detail-meta span {
  padding: 8px 12px;
  border: 1px solid var(--line);
  background: white;
  color: #69716a;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.event-schedule {
  width: min(760px,100%);
  margin: 0 0 34px;
  display: grid;
  grid-template-columns: minmax(210px,1.5fr) repeat(2,minmax(120px,.75fr));
  border: 1px solid var(--line);
  background: white;
}
.event-schedule > div {
  min-width: 0;
  padding: 18px 20px;
  border-right: 1px solid var(--line);
}
.event-schedule > div:last-child { border-right: 0; }
.event-schedule span {
  display: block;
  margin-bottom: 7px;
  color: #858c86;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.event-schedule strong {
  display: block;
  overflow-wrap: anywhere;
  font-family: var(--serif);
  font-size: 19px;
  font-weight: 500;
  line-height: 1.2;
}
.event-schedule.compact {
  width: 100%;
  margin: 22px 0 8px;
  grid-template-columns: 1fr 1fr;
  border-color: rgba(255,255,255,.18);
  background: rgba(255,255,255,.045);
}
.event-schedule.compact > div {
  padding: 14px 12px;
  border-color: rgba(255,255,255,.14);
}
.event-schedule.compact .event-schedule-date {
  grid-column: 1 / -1;
  border-right: 0;
  border-bottom: 1px solid rgba(255,255,255,.14);
}
.event-schedule.compact span { color: rgba(255,255,255,.52); }
.event-schedule.compact strong { color: white; font-size: 16px; }
.event-content-body {
  width: 100%;
  margin: 36px 0;
}
.branch-content-body {
  width: min(920px,100%);
  margin: 28px 0 0;
}
.event-gallery-grid { width: 100%; }
.event-gallery-grid.single-item {
  max-width: none;
  grid-template-columns: 1fr;
}
.event-reservation-note {
  margin: 18px 0 0;
  color: rgba(255,255,255,.68);
  font-size: 12px;
}
.event-join-button {
  width: 100%;
  justify-content: center;
  background: var(--sand);
  color: var(--ink);
}
.event-join-button:hover,
.event-join-button:focus-visible {
  background: #ead7b9;
  color: var(--forest-deep);
}
.event-join-dialog {
  width: min(620px,calc(100vw - 28px));
  max-height: calc(100dvh - 30px);
  padding: 0;
  border: 0;
  overflow: auto;
  background: var(--paper);
  box-shadow: 0 30px 90px rgba(17,27,20,.32);
}
.event-join-dialog::backdrop { background: rgba(17,27,20,.64); backdrop-filter: blur(4px); }
.event-join-dialog-inner { position: relative; padding: clamp(28px,5vw,46px); }
.event-join-dialog h2 { margin: 0 0 10px; font-family: var(--serif); font-size: clamp(34px,7vw,52px); font-weight: 400; }
.event-login-hint {
  margin: 18px 0;
  padding: 16px;
  display: grid;
  gap: 6px;
  border: 1px solid var(--line);
  background: white;
  color: #5f665f;
  font-size: 12px;
}
.event-login-hint.compact { margin-top: 0; }
.event-order-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.event-order-form .field { margin-bottom: 14px; }
.event-order-total {
  margin: 16px 0 20px;
  padding: 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  border: 1px solid var(--line);
  background: white;
}
.event-order-total span,.event-order-confirm span { color: #737b74; font-size: 9px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.event-order-total strong { font-family: var(--serif); font-size: 28px; font-weight: 500; }
.event-order-confirm { margin: 24px 0; display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; }
.event-order-confirm div { padding: 15px; display: grid; gap: 5px; border: 1px solid var(--line); background: white; }
.event-order-confirm strong { font-family: var(--serif); font-size: 23px; font-weight: 500; }
.event-dialog-actions { margin-top: 22px; display: flex; gap: 10px; flex-wrap: wrap; }
.event-bank-box {
  margin-top: 18px;
  padding: 18px;
  display: grid;
  gap: 7px;
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(255,255,255,.06);
}
.event-bank-box span {
  color: rgba(255,255,255,.56);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.event-bank-box strong { font-family: var(--serif); font-size: 21px; font-weight: 500; }
.event-bank-box p { margin: 0; color: rgba(255,255,255,.78); }
.event-bank-box code {
  padding: 9px 10px;
  display: block;
  background: rgba(255,255,255,.1);
  color: white;
  font-family: var(--sans);
  font-size: 12px;
  word-break: break-word;
}
.event-bank-box small { color: rgba(255,255,255,.62); }
.event-bank-box.light {
  border-color: var(--line);
  background: white;
  color: var(--ink);
}
.event-bank-box.light span { color: #8b7460; }
.event-bank-box.light p { color: #657066; }
.event-bank-box.light code { background: #f4f1ea; color: var(--ink); }
.event-bank-box.light small { color: #777; }
.legal-page { width: min(1100px,calc(100% - 40px)); margin: 0 auto; padding: 70px 0 100px; }
.legal-tabs { margin-bottom: 28px; display: flex; gap: 8px; flex-wrap: wrap; }
.legal-tabs a { min-height: 42px; padding: 0 18px; display: inline-flex; align-items: center; border: 1px solid var(--line); background: white; color: #69716a; font-size: 9px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.legal-tabs a.active { border-color: var(--forest); background: var(--forest); color: white; }
.legal-document { padding: clamp(28px,6vw,75px); border: 1px solid var(--line); background: white; }
.legal-document h1 { margin: 8px 0 35px; font-family: var(--serif); font-size: clamp(40px,6vw,70px); font-weight: 400; line-height: 1; }
.legal-content { color: #4f5851; font-family: var(--serif); font-size: 17px; line-height: 1.75; white-space: pre-line; }

.cafe-app-body {
  min-height: 100vh;
  background:
    radial-gradient(circle at 12% 0%, rgba(220,196,161,.38), transparent 28%),
    linear-gradient(180deg, #f8f4eb 0%, #eee8dc 100%);
}
.cafe-app { width: min(1640px, calc(100% - 32px)); margin: 0 auto; padding: 22px 0 36px; }
.cafe-app-header {
  min-height: 128px;
  padding: clamp(18px, 3vw, 34px);
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.16);
  background:
    linear-gradient(135deg, rgba(23,34,27,.98), rgba(40,54,44,.94)),
    var(--forest);
  color: #fffaf2;
  box-shadow: 0 30px 90px rgba(23,34,27,.18);
  background-position: center;
  background-size: cover;
}
.cafe-app-header::after {
  width: 430px;
  height: 430px;
  position: absolute;
  right: -170px;
  top: -210px;
  border: 1px solid rgba(220,196,161,.34);
  border-radius: 999px;
  content: "";
}
.cafe-header-copy,
.cafe-app-actions { position: relative; z-index: 1; }
.cafe-app-logo { width: min(150px, 42vw); margin: 0 0 12px; filter: brightness(1.2) saturate(.82); }
.cafe-app-header .eyebrow { color: var(--sand); }
.cafe-app-header h1 { margin: 0; max-width: 660px; font-family: var(--serif); font-size: clamp(34px, 4.6vw, 62px); font-weight: 400; line-height: .92; letter-spacing: -.035em; }
.cafe-app-header p:not(.eyebrow) { margin: 9px 0 0; color: rgba(255,250,242,.72); font-family: var(--serif); font-size: clamp(15px, 1.6vw, 20px); }
.cafe-app-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.cafe-iban-card {
  min-height: 50px;
  padding: 10px 14px;
  display: grid;
  gap: 3px;
  align-items: center;
  border: 1px solid rgba(255,255,255,.24);
  background: rgba(255,255,255,.08);
  color: #fffaf2;
}
.cafe-iban-card span {
  color: var(--sand);
  font-size: 8px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.cafe-iban-card small {
  color: rgba(255,250,242,.72);
  font-size: 10px;
  font-weight: 700;
}
.cafe-iban-card strong {
  max-width: min(360px, 48vw);
  overflow: hidden;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .04em;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.cafe-app-actions select,
.cafe-product-toolbar select,
.cafe-payment-form select,
.cafe-payment-form input {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  min-height: 50px;
  padding: 0 16px;
  box-sizing: border-box;
  border: 1px solid var(--line);
  background: #fffdf8;
  color: var(--ink);
  border-radius: 0;
  outline: 0;
}
.cafe-app-actions select {
  min-width: 230px;
  border-color: rgba(255,255,255,.24);
  background: rgba(255,255,255,.08);
  color: #fffaf2;
}
.cafe-app-actions .secondary-button {
  min-height: 50px;
  padding: 0 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255,255,255,.28);
  background: rgba(255,255,255,.08);
  color: #fffaf2;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.cafe-alert { margin: 18px 0 0; padding: 14px 16px; border-left: 3px solid #a24b3d; background: #f8e9e6; color: #8f4035; font-size: 12px; font-weight: 600; }
.cafe-kpi-strip {
  margin-top: 16px;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  border: 1px solid var(--line);
  background: rgba(255,253,248,.82);
  box-shadow: 0 18px 54px rgba(26,36,29,.07);
}
.cafe-kpi-strip div { min-height: 78px; padding: 16px 18px; border-right: 1px solid var(--line); }
.cafe-kpi-strip div:last-child { border-right: 0; }
.cafe-kpi-strip span {
  display: block;
  color: #8b6d5d;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.cafe-kpi-strip strong { display: block; margin-top: 6px; font-family: var(--serif); font-size: clamp(26px, 3vw, 38px); font-weight: 400; line-height: 1; }
.cafe-layout {
  margin-top: 18px;
  display: grid;
  grid-template-columns: minmax(270px, 360px) minmax(0, 1fr) minmax(340px, 430px);
  gap: 18px;
  align-items: start;
}
.cafe-tables-panel,
.cafe-order-panel,
.cafe-check-panel {
  min-height: 540px;
  padding: clamp(18px, 2.3vw, 28px);
  border: 1px solid var(--line);
  background: rgba(255,253,248,.9);
  box-shadow: 0 20px 62px rgba(26,36,29,.08);
}
.cafe-tables-panel {
  background:
    linear-gradient(180deg, rgba(40,54,44,.98), rgba(23,34,27,.98)),
    var(--forest);
  color: #fffaf2;
}
.panel-heading {
  margin-bottom: 20px;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}
.panel-heading span {
  color: #9b5b4e;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.cafe-tables-panel .panel-heading span { color: var(--sand); }
.panel-heading h2 { margin: 5px 0 0; font-family: var(--serif); font-size: clamp(32px, 3vw, 44px); font-weight: 400; line-height: .98; }
.panel-heading p { margin: 8px 0 0; max-width: 360px; color: #6f776f; font-size: 13px; line-height: 1.45; }
.cafe-tables-panel .panel-heading p { color: rgba(255,250,242,.58); }
.search-field {
  min-height: 50px;
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  border: 1px solid var(--line);
  background: #fffdf8;
}
.search-field span {
  padding: 0 14px;
  color: #9b5b4e;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.search-field input {
  width: 100%;
  min-height: 48px;
  border: 0;
  background: transparent;
  color: var(--ink);
  outline: 0;
}
.cafe-table-grid { display: grid; gap: 18px; }
.cafe-area-block h3 { margin: 0 0 10px; color: rgba(220,196,161,.88); font-size: 9px; font-weight: 900; letter-spacing: .18em; text-transform: uppercase; }
.cafe-area-block > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.cafe-table-card {
  min-height: 116px;
  padding: 15px;
  display: grid;
  align-content: space-between;
  gap: 7px;
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.06);
  color: #fffaf2;
  cursor: pointer;
  text-align: left;
  transition: transform 160ms ease, border-color 160ms ease, background 160ms ease;
}
.cafe-table-card:hover { transform: translateY(-2px); border-color: rgba(220,196,161,.56); }
.cafe-table-dot { width: 9px; height: 9px; position: absolute; top: 12px; right: 12px; border-radius: 999px; background: rgba(255,255,255,.3); }
.cafe-table-card strong { padding-right: 16px; font-family: var(--serif); font-size: 25px; font-weight: 400; line-height: 1; }
.cafe-table-card small { color: rgba(255,250,242,.62); font-size: 8px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.cafe-table-card em { color: var(--sand); font-style: normal; font-size: 13px; font-weight: 800; }
.cafe-table-card.busy,
.cafe-table-card.active { border-color: var(--sand); background: rgba(220,196,161,.16); color: white; }
.cafe-table-card.busy .cafe-table-dot,
.cafe-table-card.active .cafe-table-dot { background: var(--sand); box-shadow: 0 0 0 5px rgba(220,196,161,.14); }
.cafe-table-card.busy small,
.cafe-table-card.active small,
.cafe-table-card.busy em,
.cafe-table-card.active em { color: rgba(255,255,255,.72); }
.cafe-table-card.reserved { border-color: rgba(220,196,161,.34); background: rgba(220,196,161,.1); }
.cafe-table-card.passive { opacity: .55; }
.cafe-product-toolbar { margin: 0 0 18px; display: grid; grid-template-columns: minmax(0, 1fr) 210px; gap: 10px; }
.cafe-product-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 12px; }
.cafe-product-card {
  min-height: 146px;
  padding: 18px;
  display: grid;
  align-content: space-between;
  gap: 12px;
  position: relative;
  overflow: hidden;
  border: 1px solid var(--line);
  background: #fffdf8;
  color: var(--ink);
  cursor: pointer;
  text-align: left;
  transition: transform 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}
.cafe-product-card::after {
  width: 70px;
  height: 70px;
  position: absolute;
  right: -30px;
  bottom: -30px;
  border: 1px solid rgba(220,196,161,.42);
  border-radius: 999px;
  content: "";
}
.cafe-product-card:hover { transform: translateY(-2px); border-color: var(--forest); box-shadow: 0 16px 36px rgba(26,36,29,.1); }
.cafe-product-card:disabled { opacity: .48; cursor: not-allowed; }
.cafe-product-card span { color: #9b5b4e; font-size: 8px; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.cafe-product-card strong { font-family: var(--serif); font-size: 25px; font-weight: 400; line-height: 1.02; }
.cafe-product-card small { color: var(--forest); font-size: 14px; font-weight: 900; }
.cafe-check-panel { position: sticky; top: 18px; }
.cafe-check-detail .empty-state { padding: 62px 18px; border: 1px dashed rgba(31,41,34,.2); background: #fbf7ef; text-align: center; }
.cafe-check-detail .empty-state strong { display: block; font-family: var(--serif); font-size: 28px; font-weight: 400; line-height: 1.1; }
.cafe-check-detail .empty-state p { margin: 10px auto 18px; max-width: 280px; color: #677067; }
.cafe-check-detail .primary-button,
.cafe-payment-form .primary-button {
  min-height: 50px;
  padding: 0 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--forest);
  background: var(--forest);
  color: white;
  cursor: pointer;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.cafe-check-detail .primary-button:hover,
.cafe-payment-form .primary-button:hover { background: var(--forest-deep); }
.cafe-check-summary { margin-bottom: 16px; display: grid; grid-template-columns: .8fr 1.2fr; border: 1px solid var(--line); background: #fbf7ef; }
.cafe-check-summary div { padding: 16px; border-right: 1px solid var(--line); }
.cafe-check-summary div:last-child { border-right: 0; }
.cafe-check-summary span { display: block; color: #838a83; font-size: 8px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.cafe-check-summary strong { display: block; margin-top: 6px; font-family: var(--serif); font-size: 24px; font-weight: 400; line-height: 1.05; }
.cafe-check-summary small { color: #667068; }
.cafe-check-items { max-height: 42vh; display: grid; gap: 9px; overflow: auto; padding-right: 2px; }
.cafe-check-item { padding: 15px; display: grid; grid-template-columns: 1fr auto; gap: 10px; border: 1px solid var(--line); background: #fffdf8; }
.cafe-check-item.cancelled { opacity: .5; }
.cafe-check-item > span { color: var(--forest); font-weight: 900; white-space: nowrap; }
.cafe-check-item strong { font-family: var(--serif); font-size: 20px; font-weight: 400; }
.cafe-check-item small { display: block; margin-top: 3px; color: #7c847d; }
.cafe-item-actions { display: flex; gap: 5px; flex-wrap: wrap; justify-content: flex-end; }
.cafe-item-actions button,
.cafe-check-actions button,
#cafe-refresh-button {
  min-height: 36px;
  padding: 0 11px;
  border: 1px solid var(--line);
  background: #fffdf8;
  color: var(--forest);
  cursor: pointer;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.cafe-item-actions button:hover,
.cafe-check-actions button:hover,
#cafe-refresh-button:hover { border-color: var(--forest); background: var(--forest); color: white; }
.cafe-payment-form { margin-top: 18px; padding-top: 18px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; border-top: 1px solid var(--line); }
.cafe-payment-form label { min-width: 0; display: grid; gap: 6px; }
.cafe-payment-form label span { color: #8b6d5d; font-size: 8px; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.cafe-payment-form label:nth-child(3),
.cafe-payment-form button { grid-column: 1 / -1; }
.cafe-payment-form button { width: 100%; box-sizing: border-box; }
.cafe-check-actions { margin-top: 12px; display: flex; gap: 8px; flex-wrap: wrap; }
.cafe-check-actions .danger { color: #99493f; }

.cafe-qr-page { min-height: 100vh; background: linear-gradient(180deg, #efe9dd 0, #f7f3eb 360px, #f5f1e9 100%); }
.cafe-qr-hero {
  min-height: 310px;
  padding: 38px clamp(22px, 6vw, 90px);
  display: grid;
  align-content: end;
  position: relative;
  overflow: hidden;
  background: var(--forest);
  color: white;
}
.cafe-qr-hero::before {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(18,29,21,.94), rgba(18,29,21,.54), rgba(18,29,21,.3)),
    radial-gradient(circle at 82% 14%, rgba(220,196,161,.18), transparent 32%);
  content: "";
}
.cafe-qr-hero[style*="background-image"] { background-position: center; background-size: cover; }
.cafe-qr-hero > * { position: relative; z-index: 1; }
.cafe-qr-hero img { width: min(132px, 36vw); margin-bottom: 14px; filter: brightness(1.2) saturate(.8); }
.cafe-qr-hero h1 { max-width: 720px; margin: 0; font-family: var(--serif); font-size: clamp(40px, 7vw, 70px); font-weight: 400; line-height: .96; }
.cafe-qr-hero p:not(.eyebrow) { max-width: 620px; color: rgba(255,255,255,.8); font-family: var(--serif); font-size: clamp(15px, 1.7vw, 18px); line-height: 1.42; }
.cafe-qr-meta { margin-top: 12px; display: flex; gap: 7px; flex-wrap: wrap; }
.cafe-qr-meta span,
.cafe-qr-meta a { min-height: 30px; padding: 0 10px; display: inline-flex; align-items: center; border: 1px solid rgba(255,255,255,.2); background: rgba(255,255,255,.06); color: rgba(255,255,255,.84); font-size: 8px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.cafe-qr-categories {
  padding: 10px clamp(12px, 4vw, 54px);
  display: flex;
  gap: 8px;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-padding-inline: 16px;
  position: sticky;
  top: 0;
  z-index: 10;
  border-bottom: 1px solid var(--line);
  background: rgba(245,241,233,.94);
  backdrop-filter: blur(10px);
}
.cafe-qr-categories a { min-height: 36px; padding: 0 14px; display: inline-flex; align-items: center; flex: 0 0 auto; border: 1px solid var(--line); background: #fffdf8; color: var(--forest); cursor: pointer; font-size: 8px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; box-shadow: 0 10px 26px rgba(23,34,27,.04); }
.cafe-qr-categories a:hover { border-color: var(--forest); background: var(--forest); color: white; }
.cafe-qr-products { width: min(1120px, calc(100% - 32px)); margin: 0 auto; padding: 34px 0 86px; display: grid; gap: 32px; }
.cafe-qr-category { scroll-margin-top: 88px; }
.cafe-qr-category .section-heading { margin-bottom: 14px; }
.cafe-qr-category h2 { margin: 0 0 16px; font-family: var(--serif); font-size: clamp(34px, 5vw, 56px); font-weight: 400; }
.cafe-qr-product-list { display: grid; gap: 11px; }
.cafe-qr-product {
  padding: 14px;
  display: grid;
  grid-template-columns: 94px minmax(0, 1fr) auto;
  gap: 16px;
  align-items: center;
  border: 1px solid var(--line);
  background: rgba(255,253,248,.94);
  box-shadow: 0 16px 38px rgba(23,34,27,.05);
}
.cafe-qr-product-media { width: 94px; height: 94px; display: grid; place-items: center; overflow: hidden; background: #e7dfd2; color: rgba(35,49,40,.46); font-family: var(--serif); font-size: 38px; }
.cafe-qr-product-media img { width: 100%; height: 100%; object-fit: cover; background: #e7e1d4; }
.cafe-qr-product h3 { margin: 0 0 7px; font-family: var(--serif); font-size: clamp(22px, 2.4vw, 27px); font-weight: 500; line-height: 1.05; }
.cafe-qr-product p { margin: 0; color: #657066; font-size: 13px; line-height: 1.55; }
.cafe-qr-product small { display: block; margin-top: 8px; color: #9b5b4e; font-size: 10px; font-weight: 700; letter-spacing: .02em; }
.cafe-qr-price { color: var(--forest); font-family: var(--serif); font-size: 25px; white-space: nowrap; }
.cafe-qr-sold-out { padding: 6px 8px; display: inline-block; background: #f0ddda; color: #98483e; font-size: 8px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }

@media (max-width:1100px) {
  .dashboard-grid-cards { display: none; }
  .account-section-head { margin-top: 0; }
  .cafe-kpi-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cafe-kpi-strip div:nth-child(2n) { border-right: 0; }
  .cafe-kpi-strip div:nth-child(n+3) { border-top: 1px solid var(--line); }
  .cafe-layout { grid-template-columns: 1fr; }
  .cafe-check-panel { position: static; }
  .cafe-tables-panel,
  .cafe-order-panel,
  .cafe-check-panel { min-height: auto; }
}

@media (max-width:900px) {
  .branch-list-card,.auth-panel,.quote-builder-page,.detail-layout,.account-layout,.franchise-layout { grid-template-columns:1fr; }
  .branch-list-visual { width:100%; height:300px; min-width:0; min-height:300px; aspect-ratio:auto; }
  .branch-list-card > img { width:100%; height:300px; min-height:300px; position:static; aspect-ratio:auto; }
  .branch-list-card > img + .branch-list-copy { grid-column:1; }
  .summary-panel { max-height: none; position: fixed; inset: auto 0 0; padding: 14px 18px; overflow: visible; z-index: 40; border-width: 1px 0 0; box-shadow: 0 -16px 50px rgba(20,31,23,.18); }
  .summary-panel > .kicker,.summary-panel > h2,.summary-panel > #summary-lines,.summary-panel > .summary-note,.summary-panel > #quote-logout { display: none; }
  .summary-panel .summary-grand { margin: 0 0 10px; }
  .summary-panel .summary-grand strong { font-size: 22px; }
  .builder-panel { padding-bottom: 150px; }
  .detail-card { position:static; }
  .account-nav { min-height: auto; padding: 22px 20px; }
  .account-nav-head { display: grid; grid-template-columns:minmax(0,1fr) minmax(180px,.8fr); align-items:center; gap:18px; }
  .account-nav-head .kicker { margin-bottom:5px; }
  .account-nav-head h2 { margin:0; font-size:24px; }
  .account-mobile-menu-toggle {
    min-height:58px !important;
    padding:10px 13px !important;
    display:grid !important;
    grid-template-columns:minmax(0,1fr) auto;
    gap:3px 12px;
    border:1px solid rgba(255,255,255,.24) !important;
    text-align:left;
  }
  .account-mobile-menu-toggle > span { color:rgba(255,255,255,.58); font-size:8px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
  .account-mobile-menu-toggle > strong { overflow:hidden; font-size:12px; font-weight:600; text-overflow:ellipsis; white-space:nowrap; }
  .account-mobile-menu-toggle > i { grid-column:2; grid-row:1 / 3; align-self:center; font-size:20px; font-style:normal; transition:transform .18s ease; }
  .account-nav.menu-open .account-mobile-menu-toggle > i { transform:rotate(180deg); }
  .account-nav-items { display:none; padding-top:12px; }
  .account-nav.menu-open .account-nav-items { display:block; }
  .account-main { scroll-margin-top:18px; }
  .home-cta { align-items:flex-start; flex-direction:column; }
  .builder-intro { align-items: stretch; flex-direction: column; }
  .appointment-branch-card { grid-template-columns: 1fr; }
  .appointment-contact-links { align-items: flex-start; }
  .content-card-grid,.event-card-grid { grid-template-columns:1fr 1fr; }
  .franchise-form { position: static; }
  .franchise-highlights { grid-template-columns: 1fr; }
  .franchise-showcase-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .franchise-process-grid { grid-template-columns: 1fr; }
  .franchise-process-grid article { min-height: 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .franchise-process-grid article:last-child { border-bottom: 0; }
}

@media (max-width:580px) {
  .account-nav-head { grid-template-columns:1fr; gap:13px; }
  .account-mobile-menu-toggle { width:100%; }
  .branch-list-meta,.dashboard-grid-cards { grid-template-columns:1fr; }
  .account-section-head { align-items: stretch; flex-direction: column; }
  .account-section-head .button { width: 100%; justify-content: center; }
  .account-completion-notice { align-items: stretch; flex-direction: column; }
  .account-completion-notice .button { width: 100%; justify-content: center; }
  .branch-list-meta div { border-right:0; border-bottom:1px solid var(--line); }
  .content-card-grid,.event-card-grid { grid-template-columns:1fr; }
  .franchise-showcase-grid { grid-template-columns:1fr; }
  .franchise-showcase-card > button { grid-template-rows: 180px 1fr; }
  .franchise-story-metrics { grid-template-columns:1fr; }
  .franchise-story-metrics span + span { border-top:1px solid var(--line); }
  .gallery-grid { grid-template-columns:1fr; }
  .gallery-grid img { height:240px; }
  .gallery-lightbox { padding:55px 45px 35px; }
  .auth-form { padding:35px 24px; }
  .auth-art { min-height:260px; }
  .detail-dialog { width: calc(100vw - 16px); max-width: calc(100vw - 16px); max-height: calc(100dvh - 16px); padding: 56px 18px 24px; }
  .detail-dialog h2 { margin-bottom: 18px; font-size: 30px; }
  .detail-line { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 12px; font-size: 12px; }
  .detail-line strong { white-space: nowrap; }
  .quote-detail-meta { gap: 8px 12px; }
  .timeline-contract-card > header { align-items: flex-start; flex-direction: column; }
  .media-delivery-card > header,.feedback-card > header,.media-delivery-consent { align-items: stretch; grid-template-columns: 1fr; flex-direction: column; }
  .digital-invitation-card > header { flex-direction: column; }
  .invitation-form-actions .button,.invitation-share-panel .button { width: 100%; }
  .invitation-contract-details { grid-template-columns: 1fr; }
  .invitation-contract-details p { grid-column: auto; }
  .invitation-preview-link { width: 100%; margin-left: 0; text-align: center; }
  .media-delivery-link { align-items: flex-start; flex-direction: column; gap: 10px; }
  .support-ticket-card { align-items: flex-start; flex-direction: column; }
  .support-account-message { width: 100%; }
  .public-invitation { padding-inline: 10px; }
  .public-invitation-card { padding: 46px 24px 34px; }
  .invitation-event-details,.invitation-location { grid-template-columns: 1fr; }
  .invitation-event-details div + div { border-left: 0; border-top: 1px solid var(--line); }
  .invitation-location { justify-items: center; text-align: center; }
  .support-account-message header { flex-direction: column; gap: 3px; }
  .support-account-meta { align-items: flex-start; flex-direction: column; }
  .timeline-item { display: grid; grid-template-columns: 52px minmax(0,1fr); gap: 4px 8px; }
  .timeline-item strong,.timeline-item small { margin: 0; }
  .timeline-item small { grid-column: 2; }
  .social-login-grid,.account-appointment-form > div { grid-template-columns:1fr; }
  .event-order-grid,.event-order-confirm,.event-order-meta { grid-template-columns:1fr; }
  .event-schedule { grid-template-columns:1fr 1fr; }
  .event-schedule-date { grid-column:1 / -1; border-right:0 !important; border-bottom:1px solid var(--line); }
  .event-schedule > div { padding:15px 14px; }
  .event-schedule strong { font-size:17px; }
  .event-order-head { grid-template-columns:1fr; }
  .event-join-dialog { width: calc(100vw - 14px); max-height: calc(100dvh - 14px); }
  .event-dialog-actions .button { width: 100%; justify-content: center; }
  .coupon-entry { grid-template-columns:1fr; }
  .coupon-entry p { grid-column:auto; }
  .content-card-grid { grid-template-columns:1fr; }
  .legal-page { width: min(100% - 24px,1100px); padding: 35px 0 65px; }
  .legal-tabs { display: grid; grid-template-columns: 1fr; }
  .legal-tabs a { justify-content: center; }
  .legal-document { padding: 28px 20px; }
  .legal-content { font-size: 16px; }
  .cafe-app { width: min(100% - 14px, 1600px); padding-top: 6px; }
  .cafe-app-header { min-height: auto; padding: 12px; align-items: flex-start; flex-direction: column; gap: 10px; }
  .cafe-app-logo { width: 76px; margin-bottom: 6px; }
  .cafe-app-header .eyebrow { margin-bottom: 5px; font-size: 8px; }
  .cafe-app-header h1 { font-size: clamp(28px, 8vw, 40px); line-height: .98; }
  .cafe-app-header p:not(.eyebrow) { margin-top: 5px; font-size: 13px; line-height: 1.3; }
  .cafe-app-actions,
  .cafe-app-actions select,
  .cafe-iban-card,
  .cafe-app-actions .secondary-button { width: 100%; }
  .cafe-iban-card { min-height: 44px; }
  .cafe-iban-card strong { max-width: 100%; font-size: 11px; }
  .cafe-app-actions select,
  .cafe-app-actions .secondary-button { min-height: 40px; }
  .cafe-kpi-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cafe-kpi-strip div { min-height: auto; padding: 12px; border-top: 1px solid var(--line); }
  .cafe-kpi-strip div:nth-child(odd) { border-right: 1px solid var(--line); }
  .cafe-kpi-strip strong { font-size: 25px; }
  .cafe-kpi-strip div:first-child { border-top: 0; }
  .cafe-kpi-strip div:nth-child(2) { border-top: 0; }
  .cafe-product-toolbar,
  .cafe-payment-form,
  .cafe-check-summary,
  .cafe-qr-product { grid-template-columns: 1fr; }
  .cafe-area-block > div { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cafe-qr-hero { min-height: 190px; padding: 20px 16px; }
  .cafe-qr-hero img { width: 76px; margin-bottom: 8px; }
  .cafe-qr-hero h1 { font-size: clamp(28px, 9vw, 40px); line-height: .98; }
  .cafe-qr-hero p:not(.eyebrow) { font-size: 13px; line-height: 1.34; }
  .cafe-qr-meta { margin-top: 8px; }
  .cafe-qr-meta span,
  .cafe-qr-meta a { min-height: 26px; padding: 0 8px; }
  .cafe-qr-products { width: min(100% - 24px, 1120px); padding-top: 20px; gap: 28px; }
  .cafe-qr-product { gap: 12px; }
  .cafe-qr-product-media { width: 100%; height: 174px; }
  .cafe-qr-price { font-size: 22px; }
}
/* Mağaza ve QR Anı Galerisi */
.store-hero .inner-hero-bg{background-image:linear-gradient(90deg,rgba(16,31,23,.88),rgba(16,31,23,.24)),url('/assets/images/couple.jpg');background-position:center 38%}.store-product-grid{display:grid;gap:28px}.store-product-card{display:grid;grid-template-columns:minmax(280px,.82fr) minmax(0,1.18fr);background:#fff;border:1px solid #dedfd9;min-height:420px}.store-product-media{min-height:420px;overflow:hidden}.store-product-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease}.store-product-card:hover .store-product-media img{transform:scale(1.025)}.store-product-copy{padding:48px;display:flex;flex-direction:column;align-items:flex-start}.store-product-copy h2{font-family:var(--font-display,Georgia,serif);font-size:clamp(34px,4vw,58px);font-weight:400;line-height:1;margin:8px 0 18px}.store-product-copy>p{font-size:17px;line-height:1.65;color:#6e746f}.store-product-copy ul{list-style:none;padding:0;margin:20px 0}.store-product-copy li{padding:7px 0 7px 22px;position:relative}.store-product-copy li:before{content:'✓';position:absolute;left:0;color:#a86f54}.store-product-card-footer{margin-top:auto;padding-top:24px;width:100%;display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid #e2e2dd}.store-product-card-footer>strong{font-family:var(--font-display,Georgia,serif);font-size:28px;font-weight:400}.store-product-detail{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(380px,.9fr);min-height:calc(100vh - 130px);background:#f5f1e8}.store-product-visual{position:relative;min-height:660px;overflow:hidden}.store-product-visual img{width:100%;height:100%;object-fit:cover;display:block}.store-product-visual:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(20,34,26,.55),transparent 55%)}.store-product-visual>span{position:absolute;z-index:1;left:48px;bottom:42px;color:white;text-transform:uppercase;letter-spacing:.16em;font-size:11px;font-weight:700}.store-product-intro{padding:clamp(48px,8vw,120px);display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.store-product-intro h1{font-family:var(--font-display,Georgia,serif);font-size:clamp(46px,6vw,84px);font-weight:400;line-height:.98;margin:14px 0 24px}.store-product-intro .lead{font-size:18px;line-height:1.7;color:#666f69}.store-price{display:flex;align-items:end;gap:18px;margin:26px 0;width:100%}.store-price strong{font-family:var(--font-display,Georgia,serif);font-size:36px;font-weight:400}.store-price span{font-size:13px;color:#737b75;padding-bottom:5px}.store-payment-note{display:block;line-height:1.55;color:#737b75;margin-top:14px}.store-product-body{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:80px;align-items:start}.store-product-body .rich-public-content{font-size:19px;line-height:1.8}.store-product-body .rich-public-content h2{font-family:var(--font-display,Georgia,serif);font-size:48px;font-weight:400;line-height:1.1}.store-product-body aside{background:#22382b;color:#fff;padding:38px}.store-product-body aside ul{list-style:none;padding:0;margin:22px 0}.store-product-body aside li{border-bottom:1px solid rgba(255,255,255,.16);padding:12px 0}.store-product-body aside>div{display:flex;justify-content:space-between;gap:15px;margin-top:20px}.store-product-body aside>div strong{font-family:var(--font-display,Georgia,serif);font-size:26px;font-weight:400}.store-product-body aside>div span{text-align:right;color:rgba(255,255,255,.66);font-size:12px}.store-showcase{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:0 4vw 7vw}.store-showcase img{width:100%;aspect-ratio:4/3;object-fit:cover}.store-auth-dialog{width:min(620px,calc(100% - 28px));max-height:calc(100vh - 28px);overflow:auto}.store-auth-tabs{display:grid;grid-template-columns:1fr 1fr;margin-bottom:28px;border-bottom:1px solid #dfe0da}.store-auth-tabs button{border:0;background:none;padding:14px;font:inherit;color:#7a807b;border-bottom:2px solid transparent}.store-auth-tabs button.active{color:#1e3227;border-color:#1e3227;font-weight:700}.store-order-total{display:flex;justify-content:space-between;align-items:center;padding:18px 0;border-top:1px solid #e0e1dc;border-bottom:1px solid #e0e1dc;margin:16px 0}.store-order-total strong{font-family:var(--font-display,Georgia,serif);font-size:30px;font-weight:400}.store-bank-box{border:1px solid #d9dbd5;background:#f7f4ec;padding:20px;margin:24px 0}.store-bank-box span{display:flex;justify-content:space-between;gap:20px;padding:8px 0;border-bottom:1px solid #e1dfd7}.store-bank-box span:last-of-type{border-bottom:0}.store-bank-box p{font-size:13px;color:#737a75;margin:15px 0 0}.hp-field{position:absolute!important;left:-10000px!important}.account-store-section{display:grid;gap:20px}.account-store-order{border:1px solid #dedfd9;background:#fff;padding:22px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px}.account-store-order h3{margin:6px 0}.account-store-order>div:nth-child(2){display:flex;flex-direction:column;align-items:flex-end;gap:8px}.account-store-bank{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;border-top:1px solid #e1e2dc;padding-top:16px}.account-store-bank span{display:flex;flex-direction:column;gap:4px;font-size:11px;text-transform:uppercase;letter-spacing:.08em}.account-store-bank b{font-size:13px;text-transform:none;letter-spacing:0}.account-gallery-card{border:1px solid #d9dbd4;background:#fff;padding:28px}.account-gallery-head{display:flex;align-items:start;justify-content:space-between;gap:20px}.account-gallery-share{display:grid;grid-template-columns:170px minmax(0,1fr);gap:25px;align-items:center;background:#f5f1e8;padding:20px;margin:22px 0}.account-gallery-qr{background:#fff;width:170px;height:170px;padding:10px}.account-gallery-qr canvas,.account-gallery-qr img{width:150px!important;height:150px!important}.account-gallery-share-actions{display:flex;flex-wrap:wrap;gap:8px}.account-gallery-settings{border-top:1px solid #e0e1dc;padding-top:22px}.account-gallery-storage{display:flex;justify-content:space-between;align-items:center;margin-top:25px;border-top:1px solid #e0e1dc;padding-top:18px}.account-gallery-media{display:grid;gap:10px;margin-top:15px}.account-gallery-media>article{display:grid;grid-template-columns:86px minmax(0,1fr) auto;align-items:center;gap:14px;border:1px solid #e0e1dc;padding:10px}.account-gallery-thumb{width:86px;height:70px;background:#eee;overflow:hidden}.account-gallery-thumb img,.account-gallery-thumb video{width:100%;height:100%;object-fit:cover}.account-gallery-media>article>div:nth-child(2){display:flex;flex-direction:column;align-items:flex-start;gap:4px}.account-gallery-media-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.account-gallery-media-actions button,.account-gallery-media-actions a{border:0;background:none;color:#283a2f;text-decoration:underline;font:inherit;font-size:12px;cursor:pointer}.account-gallery-media-actions .danger-text{color:#a34f41}.record-status.store-paid,.record-status.store-published,.record-status.store-approved{background:#e8f2e9;color:#2e683c}.record-status.store-payment_review,.record-status.store-pending{background:#fff0cc;color:#785913}.record-status.store-awaiting_payment,.record-status.store-draft{background:#f1ece1;color:#6e5d3e}.record-status.store-cancelled,.record-status.store-refunded,.record-status.store-expired{background:#f4dfdc;color:#914b40}.record-status.store-paused,.record-status.store-hidden{background:#e9ecea;color:#59635e}.memory-gallery-page{margin:0;background:#f5f1e8}.memory-gallery-loading,.memory-gallery-error{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px}.memory-gallery-loading img,.memory-gallery-error img{width:180px;margin-bottom:22px}.memory-gallery-cover{--gallery-primary:#23382b;--gallery-accent:#d8b888;min-height:100svh;position:relative;background:var(--gallery-primary);display:grid;overflow:hidden}.memory-cover-image{position:absolute;inset:0;background-size:cover;background-position:center}.memory-cover-image:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,color-mix(in srgb,var(--gallery-primary) 92%,transparent) 0%,color-mix(in srgb,var(--gallery-primary) 50%,transparent) 62%,rgba(0,0,0,.08) 100%)}.memory-cover-copy{position:relative;z-index:1;align-self:end;color:#fff;text-align:center;padding:10vh 24px 7vh;max-width:760px;margin:auto}.memory-cover-copy>img{filter:brightness(0) invert(1);width:150px;margin-bottom:8vh}.memory-cover-copy>p{text-transform:uppercase;letter-spacing:.28em;font-size:11px;color:var(--gallery-accent)}.memory-cover-copy h1{font-family:var(--font-display,Georgia,serif);font-weight:400;font-size:clamp(48px,10vw,108px);line-height:.95;margin:18px 0}.memory-cover-copy h2{font-weight:400;font-size:clamp(20px,4vw,34px);margin:18px 0}.memory-cover-copy time{display:block;text-transform:uppercase;letter-spacing:.18em;margin-top:28px}.memory-cover-copy form{width:min(400px,100%);margin:35px auto 0;text-align:left}.memory-cover-copy form .field span{color:#fff}.memory-scroll-cue{margin-top:8vh;font-size:11px;text-transform:uppercase;letter-spacing:.14em;opacity:.72}.memory-gallery-content{--gallery-primary:#23382b;--gallery-accent:#d8b888;padding:90px max(24px,5vw)}.memory-gallery-content>header{text-align:center;max-width:760px;margin:0 auto 50px}.memory-gallery-content>header h2{font-family:var(--font-display,Georgia,serif);font-weight:400;font-size:clamp(34px,6vw,62px);line-height:1.12}.memory-upload-card{max-width:900px;margin:0 auto 90px;border:1px solid #dadbd5;background:#fff;padding:24px;display:grid;grid-template-columns:1fr 1fr;gap:24px}.memory-upload-drop{position:relative;min-height:330px;background:#f2ede3;border:1px dashed #adada5;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px}.memory-upload-drop input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.memory-upload-drop>span{width:62px;height:62px;border-radius:50%;display:grid;place-items:center;background:var(--gallery-primary);color:#fff;font-size:28px;margin-bottom:20px}.memory-upload-drop strong{font-family:var(--font-display,Georgia,serif);font-size:25px;font-weight:400}.memory-upload-drop small{margin-top:8px;color:#737a75}.memory-upload-meta{display:flex;flex-direction:column}.memory-upload-meta .button{margin-top:auto}.memory-upload-progress{height:24px;background:#e7e6e0;position:relative;overflow:hidden;margin:12px 0}.memory-upload-progress span{display:block;height:100%;width:0;background:var(--gallery-primary);transition:width .2s}.memory-upload-progress b{position:absolute;inset:0;display:grid;place-items:center;font-size:11px}.memory-wall{max-width:1400px;margin:auto}.memory-wall-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:24px}.memory-wall-heading h2{font-family:var(--font-display,Georgia,serif);font-weight:400;font-size:42px;margin:5px 0}.memory-media-grid{columns:4 240px;column-gap:12px}.memory-media-grid>button{display:block;width:100%;position:relative;border:0;background:#e8e6df;padding:0;margin:0 0 12px;break-inside:avoid;cursor:zoom-in}.memory-media-grid img,.memory-media-grid video{display:block;width:100%;height:auto}.memory-media-grid>button>span{position:absolute;left:8px;bottom:8px;background:rgba(20,35,27,.82);color:#fff;padding:5px 8px;font-size:10px}.memory-footer{background:#17271e;color:#fff;padding:30px;display:flex;align-items:center;justify-content:center;gap:22px}.memory-footer img{width:100px;filter:brightness(0) invert(1)}.memory-footer span{text-transform:uppercase;letter-spacing:.14em;font-size:10px}.memory-lightbox{position:fixed;z-index:9999;inset:0;background:rgba(10,16,12,.94);display:grid;place-items:center;padding:50px}.memory-lightbox[hidden]{display:none}.memory-lightbox>button{position:absolute;right:20px;top:15px;border:0;background:none;color:#fff;font-size:38px}.memory-lightbox [data-memory-lightbox-content]{max-width:min(1100px,100%);max-height:calc(100vh - 80px)}.memory-lightbox img,.memory-lightbox video{display:block;max-width:100%;max-height:calc(100vh - 80px)}
@media(max-width:900px){.store-product-card,.store-product-detail,.store-product-body{grid-template-columns:1fr}.store-product-media{min-height:320px}.store-product-copy{padding:30px}.store-product-detail{min-height:auto}.store-product-visual{min-height:58vh}.store-product-intro{padding:48px 24px}.store-product-body{gap:36px}.store-showcase{grid-template-columns:1fr 1fr}.account-store-bank{grid-template-columns:1fr 1fr}.account-gallery-share{grid-template-columns:1fr}.account-gallery-qr{margin:auto}.memory-upload-card{grid-template-columns:1fr}.memory-upload-drop{min-height:240px}}
@media(max-width:600px){.store-product-copy h2{font-size:38px}.store-product-card-footer{align-items:stretch;flex-direction:column}.store-product-card-footer .button{width:100%}.store-product-visual{min-height:52vh}.store-product-intro h1{font-size:48px}.store-showcase{grid-template-columns:1fr}.store-auth-dialog{padding:25px 18px}.account-store-order{grid-template-columns:1fr}.account-store-order>div:nth-child(2){align-items:flex-start}.account-store-bank{grid-template-columns:1fr}.account-gallery-card{padding:18px}.account-gallery-head,.account-gallery-storage{flex-direction:column;align-items:flex-start}.account-gallery-share{padding:15px}.account-gallery-share-actions{display:grid}.account-gallery-media>article{grid-template-columns:72px minmax(0,1fr)}.account-gallery-thumb{width:72px;height:64px}.account-gallery-media-actions{grid-column:1/-1;justify-content:flex-start;border-top:1px solid #e2e2dc;padding-top:8px}.memory-gallery-content{padding:60px 16px}.memory-upload-card{padding:14px;margin-bottom:60px}.memory-cover-copy>img{margin-bottom:6vh}.memory-media-grid{columns:2 130px}.memory-lightbox{padding:46px 12px 16px}}

/* Branch catalogue refinement - v1.9.7 */
.branch-page-grid {
  width: min(100%, 1380px);
  margin: 0 auto;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(18px, 2.3vw, 30px);
}

.branch-list-card {
  min-width: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-shadow: 0 18px 46px rgba(28, 42, 33, .07);
}

.branch-list-card:only-child {
  width: min(100%, 680px);
  grid-column: 1 / -1;
  justify-self: center;
}

.branch-list-visual,
.branch-list-card > img {
  width: 100%;
  height: auto;
  min-height: 0;
  position: relative;
  aspect-ratio: 16 / 10;
}

.branch-list-visual img,
.branch-list-card > img {
  width: 100%;
  height: 100%;
  min-height: 0;
  position: absolute;
  inset: 0;
  object-fit: cover;
}

.branch-list-card > img + .branch-list-copy { grid-column: auto; }

.branch-list-copy {
  padding: clamp(24px, 3vw, 38px);
  display: flex;
  flex: 1;
  flex-direction: column;
}

.branch-list-copy h2 {
  margin: 5px 0 14px;
  font-size: clamp(36px, 4vw, 52px);
  line-height: 1;
}

.branch-list-copy > p:not(.kicker) {
  min-height: 4.8em;
  margin: 0;
  display: -webkit-box;
  overflow: hidden;
  color: #657066;
  line-height: 1.6;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.branch-list-meta {
  margin: 22px 0;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.branch-list-meta div { min-width: 0; padding: 14px 10px; }
.branch-list-meta strong { display: block; font-family: var(--serif); font-size: 15px; line-height: 1.3; }
.branch-list-actions { margin-top: auto; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.branch-list-actions .button { width: 100%; min-height: 48px; padding: 0 12px; font-size: 9px; }

.page-section.alt .page-heading-simple {
  width: min(100%, 1380px);
  max-width: 1380px;
  margin-right: auto;
  margin-left: auto;
}

.page-section.alt .page-heading-simple > p {
  max-width: 760px;
}

@media (max-width: 900px) {
  .inner-hero { min-height: 360px; padding-top: 70px; padding-bottom: 70px; }
  .inner-hero h1 { font-size: clamp(48px, 10vw, 76px); }
  .branch-page-grid { grid-template-columns: 1fr; }
  .branch-list-card { display: flex; }
  .branch-list-visual,
  .branch-list-card > img { height: auto; min-height: 0; aspect-ratio: 16 / 9; }
  .branch-list-card > img { position: relative; }
  .branch-list-copy > p:not(.kicker) { min-height: 0; }
}

@media (max-width: 580px) {
  .page-section { padding: 58px 18px; }
  .page-heading-simple { margin-bottom: 28px; }
  .page-heading-simple h2 { font-size: 42px; }
  .branch-list-copy { padding: 23px 19px 19px; }
  .branch-list-meta div { padding: 13px 7px; }
  .branch-list-meta span { font-size: 7px; }
  .branch-list-meta strong { font-size: 13px; }
  .branch-list-actions { grid-template-columns: 1fr; }
}

/* Store catalogue refinement - v1.9.7 */
.store-hero {
  min-height: 390px;
  padding-top: 70px;
  padding-bottom: 70px;
}

.store-hero .inner-hero-copy {
  max-width: 820px;
}

.store-hero h1 {
  font-size: clamp(52px, 6.6vw, 88px);
}

.store-catalogue-section {
  background: var(--cream);
}

.store-catalogue-heading,
.store-product-grid {
  width: min(100%, 1380px);
  margin-right: auto;
  margin-left: auto;
}

.store-catalogue-heading {
  max-width: 1380px;
  margin-bottom: clamp(34px, 4vw, 54px);
}

.store-catalogue-heading > p:last-child {
  max-width: 720px;
  margin-bottom: 0;
}

.store-product-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(18px, 2.3vw, 30px);
}

.store-product-card {
  min-width: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: #fffdf8;
  border: 1px solid var(--line);
  box-shadow: 0 18px 46px rgba(28, 42, 33, .07);
}

.store-product-card:only-child {
  width: min(100%, 680px);
  grid-column: 1 / -1;
  justify-self: center;
}

.store-product-media {
  min-height: 0;
  aspect-ratio: 16 / 10;
  position: relative;
  display: block;
  background: #ded9cf;
}

.store-product-media::after {
  position: absolute;
  inset: 48% 0 0;
  background: linear-gradient(transparent, rgba(16, 29, 21, .4));
  content: "";
  pointer-events: none;
}

.store-product-media img {
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
  object-fit: cover;
}

.store-product-media > span {
  position: absolute;
  right: 20px;
  bottom: 17px;
  left: 20px;
  z-index: 1;
  color: white;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.store-product-media > span::before {
  width: 6px;
  height: 6px;
  margin-right: 8px;
  display: inline-block;
  border-radius: 50%;
  background: var(--sand);
  content: "";
}

.store-product-copy {
  min-height: 0;
  padding: clamp(25px, 3vw, 38px);
  flex: 1;
}

.store-product-copy h2 {
  margin: 6px 0 16px;
  font-size: clamp(37px, 3.6vw, 52px);
  line-height: 1;
}

.store-product-copy > p:not(.kicker) {
  min-height: 4.8em;
  margin: 0;
  display: -webkit-box;
  overflow: hidden;
  color: #626a63;
  font-size: 15px;
  line-height: 1.6;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.store-product-copy ul {
  width: 100%;
  margin: 20px 0 24px;
  display: grid;
  gap: 0;
}

.store-product-copy li {
  min-height: 39px;
  padding: 9px 0 9px 22px;
  border-bottom: 1px solid rgba(31, 41, 34, .1);
  color: #475248;
  font-size: 13px;
}

.store-product-copy li:first-child {
  border-top: 1px solid rgba(31, 41, 34, .1);
}

.store-product-copy li::before {
  top: 10px;
  color: var(--terracotta);
}

.store-product-card-footer {
  min-height: 74px;
  margin-top: auto;
  padding-top: 20px;
}

.store-product-card-footer > strong {
  color: var(--forest);
  font-size: clamp(25px, 2.4vw, 31px);
  white-space: nowrap;
}

.store-product-card-footer .button {
  min-height: 48px;
  padding: 0 16px;
  gap: 12px;
  font-size: 9px;
}

@media (max-width: 900px) {
  .store-hero { min-height: 340px; }
  .store-hero h1 { font-size: clamp(48px, 9vw, 72px); }
  .store-product-copy { padding: 26px; }
}

@media (max-width: 760px) {
  .store-product-grid { grid-template-columns: 1fr; }
  .store-product-copy > p:not(.kicker) { min-height: 0; }
}

@media (max-width: 580px) {
  .store-hero { min-height: 300px; padding: 46px 20px 50px; }
  .store-hero h1 { font-size: 42px; }
  .store-hero p { margin-top: 17px; font-size: 16px; line-height: 1.5; }
  .store-product-media { aspect-ratio: 16 / 9; }
  .store-product-copy { padding: 23px 19px 19px; }
  .store-product-copy h2 { font-size: 38px; }
  .store-product-card-footer { min-height: 0; align-items: stretch; flex-direction: column; }
  .store-product-card-footer .button { width: 100%; }
}
