:root {
    --gut: clamp(28px, 4.4vw, 88px);
    --sp-s: 16px;
    --sp-m: clamp(20px, 2.4vw, 32px);
    --sp-l: clamp(44px, 6vh, 76px);
    --sp-xl: clamp(64px, 9vh, 116px);
    --sp-xxl: clamp(92px, 13vh, 164px);
    --ease: cubic-bezier(0.19, 1, 0.22, 1);
    --dur: 1.2s;
  }
  body { margin: 0; background: #faf7f2; color: #1c1813; font-family: 'Jost', sans-serif; font-weight: 300; -webkit-font-smoothing: antialiased; overflow-x: hidden; scrollbar-width: none; }
  body::-webkit-scrollbar { display: none; }
  html { scrollbar-width: none; }
  html::-webkit-scrollbar { display: none; }
  @media (pointer: fine) { body, body * { cursor: none !important; } }
  a { color: #1c1813; text-decoration: none; }
  a:hover { color: #b48a8a; }
  @keyframes veilUp { to { transform: translateY(-101%); } }
  @keyframes veilDown { to { transform: translateY(101%); } }
  @keyframes emblemSpin { 0% { opacity: 0; transform: rotate(-150deg) scale(0.5); filter: blur(14px); } 22% { opacity: 1; filter: blur(0); } 66% { opacity: 1; transform: rotate(170deg) scale(1); filter: blur(0); } 100% { opacity: 0; transform: rotate(300deg) scale(1.55); filter: blur(6px); } }
  @keyframes haloGrow { 0% { opacity: 0; transform: scale(0.45); } 38% { opacity: 0.8; } 100% { opacity: 0; transform: scale(2.1); } }
  @keyframes sweepIn { 0% { opacity: 0; transform: translateX(-120%) skewX(-14deg); } 45% { opacity: 0.9; } 100% { opacity: 0; transform: translateX(120%) skewX(-14deg); } }
  @keyframes markIn { 0% { opacity: 0; letter-spacing: 0.9em; transform: translateY(14px); } 34% { opacity: 1; letter-spacing: 0.42em; transform: translateY(0); } 74% { opacity: 1; letter-spacing: 0.42em; } 100% { opacity: 0; letter-spacing: 0.5em; transform: translateY(-10px); } }
  @keyframes dustRise { 0% { opacity: 0; transform: translateY(24px) scale(0.6); } 40% { opacity: 0.8; } 100% { opacity: 0; transform: translateY(-90px) scale(1); } }
  @keyframes introWord { 0% { opacity: 0; transform: translateY(18px); filter: blur(10px); } 26% { opacity: 1; transform: translateY(0); filter: blur(0); } 74% { opacity: 1; transform: translateY(0); filter: blur(0); } 100% { opacity: 0; transform: translateY(-10px); filter: blur(8px); } }
  @keyframes introLine { 0% { transform: scaleX(0); } 30% { transform: scaleX(1); } 70% { transform: scaleX(1); } 100% { transform: scaleX(0); } }
  @keyframes mUp { from { clip-path: inset(0 0 105% 0); transform: translateY(22px); } to { clip-path: inset(0 0 -14% 0); transform: translateY(0); } }
  @keyframes softRise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: translateY(0); } }
  @keyframes fIn { from { opacity: 0; } to { opacity: 1; } }
  @keyframes archIn { from { clip-path: inset(100% 0 0 0); } to { clip-path: inset(0 0 0 0); } }
  @keyframes settle { from { transform: scale(1.1); } to { transform: scale(1); } }
  @keyframes lineX { from { transform: scaleX(0); } to { transform: scaleX(1); } }
  @keyframes lineY { from { transform: scaleY(0); } to { transform: scaleY(1); } }
  @keyframes ringIn { from { opacity: 0; transform: scale(0.94); } to { opacity: 1; transform: scale(1); } }
  @keyframes petal { 0%, 100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-12px) rotate(7deg); } }
  @keyframes chipIn { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: translateY(0); } }
  @keyframes scrollDot { 0%, 100% { transform: translateY(0); opacity: 0.4; } 50% { transform: translateY(10px); opacity: 1; } }
  @keyframes ringPulse { 0% { opacity: 0; transform: scale(0.6); } 40% { opacity: 1; } 100% { opacity: 0; transform: scale(1.5); } }
  @keyframes sheen { 0% { background-position: -150% 0; } 100% { background-position: 250% 0; } }
  .metal { background: linear-gradient(100deg, #a9736f 0%, #d6a9a2 22%, #fbeee9 42%, #e6bdb4 58%, #b98884 78%, #e8cac3 100%); -webkit-background-clip: text; background-clip: text; color: transparent; }
  .metal-reveal { }
  .metal-line { background: linear-gradient(90deg, rgba(120,108,98,0.2), #cdbcb2 40%, #f3ece7 55%, #c99b95 75%, rgba(120,108,98,0.2)); background-size: 220% 100%; animation: sheen 10s ease-in-out 6.2s infinite; }
  @keyframes wordGold { from { color: #1c1813; } to { color: #b48a8a; } }
  @keyframes rowIn { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: translateY(0); } }
  .pr-row { animation: rowIn 0.7s cubic-bezier(0.16,1,0.3,1) both; }
  .pr-panel { position: relative; overflow: hidden; }
  .pr-panel::before { content: ''; position: absolute; top: 0; bottom: 0; left: -60%; width: 40%; background: linear-gradient(100deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.45) 50%, rgba(255,255,255,0) 100%); transform: skewX(-14deg); pointer-events: none; transition: left 1.2s cubic-bezier(0.22,1,0.36,1); z-index: 1; }
  .pr-panel:hover::before { left: 135%; }
  .pr-panel > * { position: relative; z-index: 2; }
  .ct-card { transition: transform 0.6s var(--ease), box-shadow 0.6s var(--ease), border-color 0.6s var(--ease); }
  .bk-field { position: relative; }
  .bk-field input { transition: border-color 0.5s var(--ease); }
  .bk-field input:focus { border-color: rgba(143,95,92,0.6); }
  .bk-field .bk-underline { position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: linear-gradient(90deg, #a9736f, #e6c3bc 50%, #a9736f); transform: scaleX(0); transform-origin: left; transition: transform 0.6s var(--ease); }
  .bk-field:focus-within .bk-underline { transform: scaleX(1); }
  .bk-step { position: relative; transition: transform 0.6s var(--ease), background 0.6s var(--ease); border-radius: 16px; }
  .bk-step:hover { transform: translateX(4px); background: linear-gradient(100deg, rgba(250,247,242,0.07), rgba(250,247,242,0)); }
  .bk-step:hover .bk-num { border-color: rgba(230,195,188,0.85); background: linear-gradient(150deg, rgba(230,195,188,0.24), rgba(250,247,242,0.06)); box-shadow: 0 0 0 6px rgba(214,169,162,0.08); }
  .bk-num { transition: border-color 0.6s var(--ease), background 0.6s var(--ease), box-shadow 0.6s var(--ease); }
  .bk-phone:hover { background: linear-gradient(150deg, rgba(250,247,242,0.2), rgba(250,247,242,0.1)); border-color: rgba(230,195,188,0.55); transform: translateY(-3px); color: #faf7f2; }
  .bk-phone:hover .ct-arrow { transform: translate(3px,-3px); background: #faf7f2; border-color: transparent; color: #1c1813; }
  .bk-panel { position: relative; }
  .bk-panel::after { content: ''; position: absolute; inset: -1px; border-radius: 25px; padding: 1px; background: linear-gradient(150deg, rgba(255,255,255,0.9), rgba(214,169,162,0.45) 40%, rgba(255,255,255,0.7) 70%, rgba(180,138,138,0.4)); -webkit-mask: linear-gradient(#000 0 0) padding-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; pointer-events: none; opacity: 0.85; }
  .ct-card:hover { transform: translateY(-6px); border-color: rgba(214,169,162,0.6); box-shadow: 0 44px 88px rgba(28,24,19,0.14), inset 0 1px 0 rgba(255,255,255,0.9); color: #1c1813; }
  .ct-card:hover .ct-arrow { transform: translate(3px,-3px); background: #8f5f5c; border-color: transparent; color: #faf7f2; }
  .ct-map iframe { transition: filter 0.9s var(--ease); }
  .ct-map:hover iframe { filter: grayscale(0.35) contrast(0.98) brightness(1.02) sepia(0.06); }
  .side-nav { position: fixed; right: 26px; top: 50%; transform: translateY(-50%); z-index: 60; display: flex; flex-direction: column; gap: 16px; }
  .side-nav a { position: relative; display: block; width: 8px; height: 8px; border-radius: 50%; border: 1px solid rgba(143,95,92,0.55); background: transparent; transition: background 0.4s, transform 0.4s, border-color 0.4s; }
  .side-nav a:hover { transform: scale(1.4); }
  .side-nav a[data-on] { background: #8f5f5c; border-color: #8f5f5c; transform: scale(1.25); box-shadow: 0 0 0 5px rgba(169,115,111,0.16); }
  .side-nav a span { position: absolute; right: 20px; top: 50%; transform: translateY(-50%) translateX(6px); white-space: nowrap; font-size: 10px; letter-spacing: 0.24em; text-transform: uppercase; color: #6f665a; background: rgba(250,247,242,0.7); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border: 1px solid rgba(255,255,255,0.6); border-radius: 999px; padding: 6px 14px; opacity: 0; pointer-events: none; transition: opacity 0.35s, transform 0.35s; }
  .side-nav a:hover span { opacity: 1; transform: translateY(-50%) translateX(0); }
  @media (max-width: 1180px), (pointer: coarse) { .side-nav { display: none; } }
  .page-veil { position: fixed; inset: 0; z-index: 120; background: linear-gradient(160deg, #f5f1ea, #ece4d9); display: flex; align-items: center; justify-content: center; transform: translateY(101%); pointer-events: none; }
  .page-veil img { width: 54px; opacity: 0.9; }
  .prlx-img { will-change: transform; }
  .k-cta { position: relative; overflow: hidden; isolation: isolate; transition: box-shadow 0.7s var(--ease), transform 0.7s var(--ease); }
  .k-cta:hover { transform: translateY(-3px); box-shadow: 0 30px 60px rgba(169,115,111,0.34), inset 0 0 0 1px rgba(250,247,242,0.16); }
  .k-cta::before { content: ''; position: absolute; inset: 0; border-radius: 999px; background: linear-gradient(120deg, #8f5f5c, #c99b95 26%, #fbeee9 46%, #d6a9a2 66%, #a9736f); opacity: 0; transition: opacity 0.7s var(--ease); z-index: -1; }
  .k-cta::after { content: ''; position: absolute; top: 0; bottom: 0; width: 46%; left: -70%; background: linear-gradient(100deg, transparent, rgba(255,255,255,0.45), transparent); transform: skewX(-18deg); transition: left 1s var(--ease); z-index: 1; }
  .k-cta:hover::before { opacity: 1; }
  .k-cta:hover::after { left: 130%; }
  .k-cta span { position: relative; z-index: 2; display: inline-flex; align-items: center; transition: letter-spacing 0.7s var(--ease); }
  .k-cta:hover span { letter-spacing: 0.31em; }
  .k-cta-arrow { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 50%; border: 1px solid rgba(28,24,19,0.38); margin-left: 18px; font-size: 10px; transition: transform 0.7s var(--ease), background 0.7s, border-color 0.7s; }
  .k-cta:hover .k-cta-arrow { transform: translateX(5px); background: rgba(250,247,242,0.9); border-color: transparent; color: #8f5f5c; }
  .k-nav { position: relative; padding-bottom: 5px; }
  .k-nav::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: #b48a8a; transform: scaleX(0); transform-origin: left; transition: transform 0.45s var(--ease); }
  .k-nav:hover::after { transform: scaleX(1); }
  .cursor-dot { position: fixed; top: 0; left: 0; width: 28px; height: 28px; pointer-events: none; z-index: 96; transform: translate(-50%,-50%); transition: opacity 0.5s var(--ease); will-change: transform; }
  .cursor-dot img { width: 100%; height: 100%; display: block; animation: cursorSpin 9s linear infinite; }
  .cursor-ring { position: fixed; top: 0; left: 0; width: 44px; height: 44px; border-radius: 50%; border: 1px solid rgba(169,115,111,0.32); pointer-events: none; z-index: 95; transform: translate(-50%,-50%); transition: width 0.6s var(--ease), height 0.6s var(--ease), opacity 0.5s var(--ease), border-color 0.6s var(--ease), background 0.6s var(--ease); }
  @keyframes cursorSpin { to { transform: rotate(360deg); } }
  @media (pointer: coarse) { .cursor-dot, .cursor-ring { display: none; } }
  .ab-stat { transition: transform 0.7s var(--ease), box-shadow 0.7s var(--ease), border-color 0.7s var(--ease); }
  .ab-stat:hover { transform: translateY(-6px); border-color: rgba(214,169,162,0.55); box-shadow: 0 44px 88px rgba(28,24,19,0.13), inset 0 1px 0 rgba(255,255,255,1), inset 0 -1px 0 rgba(28,24,19,0.09); }
  .ab-stat::before { content: ''; position: absolute; inset: 0; background: radial-gradient(75% 65% at 50% 0%, rgba(255,255,255,0.6), transparent 70%); opacity: 0; transition: opacity 0.8s var(--ease); pointer-events: none; }
  .ab-stat:hover::before { opacity: 1; }
  .ab-stat::after { content: ''; position: absolute; top: 0; bottom: 0; width: 40%; left: -60%; background: linear-gradient(100deg, transparent, rgba(255,255,255,0.55), transparent); transform: skewX(-18deg); transition: left 1.2s var(--ease); pointer-events: none; }
  .ab-stat:hover::after { left: 130%; }
  .ab-card { transition: transform 0.8s var(--ease), box-shadow 0.8s var(--ease), border-color 0.8s var(--ease); }
  .ab-card:hover { transform: translateY(-7px) scale(1.006); border-color: rgba(214,169,162,0.6); box-shadow: 0 44px 88px rgba(28,24,19,0.14), inset 0 1px 0 rgba(255,255,255,1), inset 0 -1px 0 rgba(28,24,19,0.1); }
  .ab-card::before { content: ''; position: absolute; inset: 0; background: radial-gradient(80% 70% at 18% 0%, rgba(255,255,255,0.55), transparent 70%); opacity: 0; transition: opacity 0.9s var(--ease); pointer-events: none; }
  .ab-card:hover::before { opacity: 1; }
  .ab-card::after { content: ''; position: absolute; top: 0; bottom: 0; width: 45%; left: -60%; background: linear-gradient(100deg, transparent, rgba(255,255,255,0.5), transparent); transform: skewX(-18deg); transition: left 1.1s var(--ease); pointer-events: none; }
  .ab-card:hover::after { left: 120%; }
  .ab-card .ab-num { transition: transform 0.8s var(--ease), box-shadow 0.8s var(--ease); }
  .ab-card:hover .ab-num { transform: rotate(-8deg) scale(1.08); box-shadow: 0 10px 24px rgba(169,115,111,0.3); }
  .ab-quote { transition: background 0.9s var(--ease), box-shadow 0.9s var(--ease); }
  .ab-photo:hover .ab-quote { background: linear-gradient(150deg, rgba(255,255,255,0.34), rgba(250,247,242,0.2)); box-shadow: 0 50px 108px rgba(28,24,19,0.38), inset 0 1px 0 rgba(255,255,255,0.8), inset 0 -1px 0 rgba(255,255,255,0.2); }
  .tl-map { position: relative; max-width: 980px; margin: 0 auto; padding: 10px 0 6px; }
  .tl-line { position: absolute; left: 50%; top: 0; bottom: 0; width: 1px; background: rgba(28,24,19,0.12); transform: translateX(-50%); }
  .tl-fill { position: absolute; left: 50%; top: 0; width: 2px; height: 0; border-radius: 2px; background: linear-gradient(rgba(169,115,111,0.3), #d6a9a2 40%, #fbeee9 70%, #c99b95); box-shadow: 0 0 14px rgba(214,169,162,0.55); transform: translateX(-50%); }
  .tl-row { position: relative; display: grid; grid-template-columns: 1fr 1fr; align-items: center; margin: 0 0 46px; }
  .tl-row:last-child { margin-bottom: 0; }
  .tl-node { position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); z-index: 2; }
  .tl-dot { display: block; width: 15px; height: 15px; border-radius: 50%; background: linear-gradient(145deg, #a9736f, #fbeee9 50%, #c99b95); box-shadow: 0 0 0 6px #f5f1ea, 0 0 0 7px rgba(28,24,19,0.12); transition: transform 0.8s var(--ease), box-shadow 0.8s var(--ease); }
  .tl-row:hover .tl-dot { transform: scale(1.45); box-shadow: 0 0 0 6px #f5f1ea, 0 0 0 7px rgba(214,169,162,0.75), 0 10px 24px rgba(169,115,111,0.35); }
  .tl-card { position: relative; overflow: hidden; isolation: isolate; box-sizing: border-box; padding: 30px 32px 28px; border-radius: 20px; background: rgba(250,247,242,0.55); backdrop-filter: blur(30px) saturate(160%); -webkit-backdrop-filter: blur(30px) saturate(160%); border: 1px solid rgba(255,255,255,0.75); box-shadow: 0 26px 58px rgba(28,24,19,0.08), inset 0 1px 0 rgba(255,255,255,0.95); transition: transform 0.8s var(--ease), box-shadow 0.8s var(--ease), border-color 0.8s var(--ease); }
  .tl-row:hover .tl-card { transform: translateY(-6px); border-color: rgba(214,169,162,0.6); box-shadow: 0 40px 82px rgba(28,24,19,0.13), inset 0 1px 0 rgba(255,255,255,1); }
  .tl-card::after { content: ''; position: absolute; top: 0; bottom: 0; width: 45%; left: -60%; background: linear-gradient(100deg, transparent, rgba(255,255,255,0.5), transparent); transform: skewX(-18deg); transition: left 1.1s var(--ease); pointer-events: none; }
  .tl-row:hover .tl-card::after { left: 120%; }
  .tl-left .tl-card { grid-column: 1; margin-right: 52px; }
  .tl-right .tl-card { grid-column: 2; margin-left: 52px; }
  .tl-card::before { content: ''; position: absolute; top: 50%; width: 32px; height: 1px; background: rgba(214,169,162,0.6); }
  .tl-left .tl-card::before { right: -32px; }
  .tl-right .tl-card::before { left: -32px; }
  .tl-top { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
  .tl-n { font-family: 'Tenor Sans', sans-serif; font-size: 11px; letter-spacing: 0.3em; color: #8f5f5c; transition: letter-spacing 0.8s var(--ease); }
  .tl-row:hover .tl-n { letter-spacing: 0.42em; }
  .tl-m { font-size: 10.5px; letter-spacing: 0.18em; text-transform: uppercase; color: #6f665a; padding: 6px 13px; border: 1px solid rgba(28,24,19,0.14); border-radius: 999px; background: rgba(255,255,255,0.6); white-space: nowrap; }
  .tl-t { font-family: 'Tenor Sans', sans-serif; font-size: clamp(20px, 1.8vw, 26px); line-height: 1.25; margin-bottom: 12px; }
  .tl-d { font-size: 13.5px; line-height: 1.9; color: #6f665a; }
  .ba-track-wrap { overflow: hidden; cursor: grab; }
  .ba-track-wrap.dragging { cursor: grabbing; }
  .ba-track { display: flex; gap: 22px; padding: 6px var(--gut) 26px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .ba-track::-webkit-scrollbar { display: none; }
  .ba-card { position: relative; flex: 0 0 clamp(280px, 30vw, 420px); aspect-ratio: 1; border-radius: 20px; overflow: hidden; isolation: isolate; scroll-snap-align: center; background: #ece4d6; border: 1px solid rgba(255,255,255,0.85); box-shadow: 0 26px 58px rgba(28,24,19,0.1), inset 0 1px 0 rgba(255,255,255,0.7); transition: transform 0.8s var(--ease), box-shadow 0.8s var(--ease); }
  .ba-card:hover { transform: translateY(-6px); box-shadow: 0 40px 82px rgba(28,24,19,0.15); }
  .ba-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; user-select: none; transition: transform 1.6s var(--ease); }
  .ba-card:hover img { transform: scale(1.04); }
  .ba-tag { position: absolute; left: 16px; bottom: 16px; z-index: 2; font-size: 10.5px; letter-spacing: 0.22em; text-transform: uppercase; color: #fdfbf8; background: rgba(28,24,19,0.32); backdrop-filter: blur(20px) saturate(150%); -webkit-backdrop-filter: blur(20px) saturate(150%); border: 1px solid rgba(255,255,255,0.3); border-radius: 999px; padding: 8px 16px; }
  .ba-btn { width: 54px; height: 54px; border-radius: 50%; border: 1px solid rgba(28,24,19,0.16); background: rgba(250,247,242,0.6); backdrop-filter: blur(24px) saturate(160%); -webkit-backdrop-filter: blur(24px) saturate(160%); color: #1c1813; font-size: 18px; cursor: pointer; box-shadow: inset 0 1px 0 rgba(255,255,255,0.9), 0 14px 30px rgba(28,24,19,0.08); transition: background 0.5s var(--ease), border-color 0.5s var(--ease), transform 0.5s var(--ease); }
  .ba-btn:hover { background: #1c1813; color: #faf7f2; border-color: #1c1813; transform: translateY(-2px); }
  .ad-band { position: relative; overflow: hidden; isolation: isolate; display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); border-radius: 22px; background: linear-gradient(158deg, rgba(255,255,255,0.94) 0%, rgba(253,251,248,0.62) 42%, rgba(245,241,235,0.36) 100%); backdrop-filter: blur(48px) saturate(190%); -webkit-backdrop-filter: blur(48px) saturate(190%); border: 1px solid rgba(255,255,255,0.95); box-shadow: 0 38px 80px rgba(28,24,19,0.12), inset 0 1px 0 rgba(255,255,255,1), inset 0 -1px 0 rgba(28,24,19,0.07); }
  .ad-band::after { content: ''; position: absolute; top: 0; bottom: 0; width: 30%; left: -45%; background: linear-gradient(100deg, transparent, rgba(255,255,255,0.6), transparent); transform: skewX(-18deg); transition: left 1.5s var(--ease); pointer-events: none; }
  .ad-band:hover::after { left: 120%; }
  .ad-item { padding: 40px 34px 36px; text-align: center; transition: background 0.7s var(--ease); }
  .ad-item:hover { background: rgba(255,255,255,0.45); }
  .ad-item + .ad-item { border-left: 1px solid rgba(28,24,19,0.09); }
  .ad-num { font-family: 'Tenor Sans', sans-serif; font-size: clamp(34px, 3vw, 46px); line-height: 1; letter-spacing: -0.015em; }
  .ad-cap { font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: #6f665a; margin-top: 14px; line-height: 1.6; } background: linear-gradient(158deg, rgba(255,255,255,0.94) 0%, rgba(253,251,248,0.62) 42%, rgba(245,241,235,0.36) 100%); backdrop-filter: blur(48px) saturate(190%); -webkit-backdrop-filter: blur(48px) saturate(190%); border: 1px solid rgba(255,255,255,0.95); box-shadow: 0 38px 80px rgba(28,24,19,0.12), 0 2px 6px rgba(28,24,19,0.05), inset 0 1px 0 rgba(255,255,255,1), inset 0 -1px 0 rgba(28,24,19,0.07); transition: transform 0.8s var(--ease), box-shadow 0.8s var(--ease), border-color 0.8s var(--ease); }
  .ad-card::before { content: ''; position: absolute; inset: 0; background: radial-gradient(85% 70% at 18% 0%, rgba(214,169,162,0.16), transparent 70%); opacity: 0; transition: opacity 0.9s var(--ease); pointer-events: none; }
  .ad-card:hover::before { opacity: 1; }
  .ad-card:hover .ad-eyebrow { letter-spacing: 0.34em; }
  .ad-eyebrow { transition: letter-spacing 0.8s var(--ease); }
  .ad-card:hover { transform: translateY(-7px); border-color: rgba(214,169,162,0.55); box-shadow: 0 48px 96px rgba(28,24,19,0.15), inset 0 1px 0 rgba(255,255,255,1), inset 0 -1px 0 rgba(28,24,19,0.1); }
  .ad-card::after { content: ''; position: absolute; top: 0; bottom: 0; width: 40%; left: -60%; background: linear-gradient(100deg, transparent, rgba(255,255,255,0.6), transparent); transform: skewX(-18deg); transition: left 1.3s var(--ease); pointer-events: none; }
  .ad-card:hover::after { left: 130%; }
  .ad-left { flex: 0 0 46%; display: flex; flex-direction: column; padding-right: 30px; border-right: 1px solid rgba(28,24,19,0.1); }
  .ad-eyebrow { font-size: 10.5px; letter-spacing: 0.26em; text-transform: uppercase; color: #8f5f5c; margin-bottom: 22px; transition: letter-spacing 0.8s var(--ease); }
  .ad-num { font-family: 'Tenor Sans', sans-serif; font-size: clamp(40px, 3.6vw, 56px); line-height: 1; letter-spacing: -0.015em; }
  .ad-cap { font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: #6f665a; margin-top: 16px; line-height: 1.6; }
  .ad-note { align-self: center; font-size: 13.5px; line-height: 1.95; color: #6f665a; }
  .pr-cta::after { content: ''; position: absolute; top: 0; bottom: 0; width: 34%; left: -50%; background: linear-gradient(100deg, transparent, rgba(255,255,255,0.6), transparent); transform: skewX(-18deg); transition: left 1.5s var(--ease); pointer-events: none; }
  .pr-cta:hover::after { left: 120%; }
  .ab-photo img { transition: transform 2s var(--ease); }
  .ab-photo:hover img { transform: scale(1.04); }
  @media (max-width: 1060px) {
    .ab-head { grid-template-columns: minmax(0,1fr) !important; align-items: start !important; }
    .ab-grid { grid-template-columns: minmax(0,1fr) !important; }
    .ab-stats { grid-template-columns: minmax(0,1fr) !important; }
    .pr-head { grid-template-columns: minmax(0,1fr) !important; align-items: start !important; }
    .ad-grid { grid-template-columns: minmax(0,1fr) !important; }
    .pr-grid { grid-template-columns: minmax(0,1fr) !important; }
    .ct-grid { grid-template-columns: minmax(0,1fr) !important; }
    .bk-grid { grid-template-columns: minmax(0,1fr) !important; }
    .ct-map { min-height: 400px !important; overflow: visible !important; }
    .ct-route { flex-direction: column !important; align-items: flex-start !important; }
    .pr-head { grid-template-columns: minmax(0,1fr) !important; }
    .ad-card { flex-direction: column !important; gap: 22px !important; }
    .ad-left { border-right: 0 !important; padding-right: 0 !important; border-bottom: 1px solid rgba(28,24,19,0.1); padding-bottom: 22px; }
    .tl-line, .tl-fill { left: 8px !important; }
    .tl-node { left: 8px !important; }
    .tl-row { grid-template-columns: 1fr !important; }
    .tl-left .tl-card, .tl-right .tl-card { grid-column: 1 !important; margin: 0 0 0 40px !important; }
    .tl-card::before { display: none !important; }
    .pr-line, .pr-line-fill { display: none !important; }
  }
  @media (max-width: 620px) { .ad-band { grid-template-columns: repeat(2, minmax(0,1fr)) !important; } .ad-item + .ad-item { border-left: 0 !important; } }
  @media (max-width: 1060px) { .k-grid { grid-template-columns: minmax(0,1fr) !important; } .k-photo-wrap { padding: 40px 24px 0 !important; } .k-photo { height: 52vh !important; min-height: 360px !important; } .k-quote { display: none !important; } .k-vert { display: none !important; } }
  @media (max-width: 1060px) {
    .pr-grid { grid-template-columns: minmax(0,1fr) !important; }
    .bk-grid { grid-template-columns: minmax(0,1fr) !important; }
    .ct-grid { grid-template-columns: minmax(0,1fr) !important; }
    .ct-map { min-height: 340px; }
  }
  @media (max-width: 720px) {
    :root { --gut: 16px; }
    .k-hdr { flex-wrap: nowrap !important; justify-content: space-between; padding: 14px 20px !important; border-radius: 22px !important; gap: 12px; }
    .k-hdr img { height: 16px !important; }
    .k-hdr-nav { display: none !important; }
    .k-hdr > a[href^="tel"] { font-size: 11.5px !important; padding: 14px 0 !important; margin: -14px 0 !important; min-height: 0 !important; display: inline-flex; align-items: center; }
    .k-chip { left: 14px !important; bottom: 14px !important; padding: 10px 14px !important; gap: 10px !important; border-radius: 14px !important; max-width: calc(100% - 28px); box-sizing: border-box; }
    .k-chip-title { font-size: 11px !important; }
    .k-chip-sub { font-size: 8.5px !important; letter-spacing: 0.08em !important; white-space: normal !important; line-height: 1.4; }
    .k-photo { height: 46vh !important; min-height: 320px !important; }
    .k-chip { display: none !important; }
    .ph-badge { left: 16px !important; top: 16px !important; padding: 8px 12px !important; gap: 8px !important; }
    .ph-badge img { width: 14px !important; }
    .ph-badge span { font-size: 10.5px !important; letter-spacing: 0.16em !important; }
    .ab-quote { left: 14px !important; right: 14px !important; bottom: 14px !important; padding: 14px 16px !important; }
    .ab-quote div[style*="clamp(15px"] { font-size: 12px !important; }
    .ab-quote span { font-size: 10.5px !important; letter-spacing: 0.14em !important; }
    .ab-card { padding: 20px 20px !important; }
    .ad-band { grid-template-columns: minmax(0,1fr) !important; }
    .ad-item { border-left: 0 !important; border-top: 1px solid rgba(28,24,19,0.1); }
    .ad-item:first-child { border-top: 0; }
    .pr-cta { flex-direction: column; align-items: flex-start !important; gap: 22px; padding: 26px 22px !important; }
    .pr-panel { padding: 6px 18px 20px !important; min-height: 0 !important; border-radius: 18px !important; }

    /* --- prices: tabs as swipe strip --- */
    .pr-grid { gap: 18px !important; }
    .pr-grid > .pr-tabs { position: static !important; flex-direction: column !important; gap: 8px !important; }
    .pr-hint { display: flex !important; margin-bottom: 2px; }
    .pr-grid > .pr-tabs button { width: 100% !important; flex: 0 0 auto !important; justify-content: space-between !important; border-radius: 14px !important; padding: 15px 18px !important; font-size: 13.5px !important; letter-spacing: 0.02em !important; }
    .pr-active { display: flex !important; }
    .pr-row { gap: 14px !important; padding: 16px 2px !important; align-items: flex-start !important; }
    .pr-row > div:first-child > div:first-child { font-size: 14px !important; line-height: 1.4 !important; }
    .pr-row > div:first-child > div:last-child { font-size: 11.5px !important; margin-top: 4px !important; line-height: 1.5 !important; }
    .pr-row > div:last-child { font-size: 15px !important; }
    .ba-card { flex-basis: 80vw !important; }
    .ba-head { flex-wrap: wrap; }
    .bk-panel { padding: 28px 22px !important; }
    .bk-chips { gap: 8px !important; }
    .bk-step { padding: 14px !important; }
    .tl-card { padding: 20px !important; }
    .k-copy { padding-top: 92px !important; padding-left: var(--gut) !important; }
    .k-eyebrow { display: none !important; }
    section[id] { scroll-margin-top: 90px; }
    body { padding-bottom: env(safe-area-inset-bottom); }
    .bk-chips button, .pr-tabs button { min-height: 44px; }
    .k-cta-row { flex-direction: row !important; align-items: center !important; gap: 20px !important; flex-wrap: nowrap !important; }
    .k-cta-row a { text-align: left; }
    .k-cta-row a.k-cta { padding: 15px 26px !important; font-size: 10px !important; letter-spacing: 0.18em !important; white-space: nowrap; min-height: 44px; box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; }
    .k-cta-row a:not(.k-cta) { padding: 14px 0; margin: -14px 0; min-height: 0; display: inline-flex; align-items: center; font-size: 10px !important; letter-spacing: 0.18em !important; white-space: nowrap; }
  }
  @media (max-width: 420px) {
    .ba-card { flex-basis: 88vw !important; }
    .bk-chips { flex-wrap: wrap; }
    .pr-grid > .pr-tabs button { font-size: 12.5px !important; padding: 14px 16px !important; }
    .ad-band .ad-item { padding: 22px 4px !important; }

    /* --- process timeline --- */
    .tl-map { margin: 0; padding: 4px 0 2px !important; }
    .tl-line, .tl-fill { left: 10px !important; transform: none !important; }
    .tl-fill { width: 4px !important; }
    .tl-line { width: 2px !important; }
    .tl-node { left: 11px !important; }
    .tl-dot { width: 14px !important; height: 14px !important; }
    .tl-row { grid-template-columns: 1fr !important; margin-bottom: 14px !important; }
    .tl-left .tl-card, .tl-right .tl-card { grid-column: 1 !important; margin: 0 0 0 34px !important; padding: 15px 16px 14px !important; border-radius: 15px !important; }
    .tl-card::before { display: none !important; }
    .tl-top { margin-bottom: 8px !important; }
    .tl-n { font-size: 10.5px !important; letter-spacing: 0.24em !important; }
    .tl-t { font-size: 15px !important; margin-bottom: 5px !important; }
    .tl-d { font-size: 11.5px !important; line-height: 1.6 !important; }

    /* --- generic CTA buttons --- */
    .k-cta { padding: 15px 26px !important; font-size: 10px !important; letter-spacing: 0.16em !important; }
    .pr-cta { padding: 24px 22px !important; }
    .pr-cta > div:first-child { margin-bottom: 4px; }
    .pr-cta a.k-cta { width: 100%; box-sizing: border-box; text-align: center; }

    /* --- booking --- */
    #booking { padding: 0 !important; }
    #booking > div:first-of-type { border-radius: 0 !important; }
    #booking > div:first-of-type > div[style*="inset: 16px"] { display: none !important; }
    #booking > div:first-of-type > div:last-child { padding: var(--sp-l) var(--gut) var(--sp-xl) !important; }
    .bk-grid { gap: var(--sp-m) !important; }
    .bk-panel { background: linear-gradient(150deg, rgba(255,255,255,0.96), rgba(250,247,242,0.9)) !important; }
    .bk-panel::after { display: none !important; }
    .bk-step { gap: 14px !important; padding: 16px 4px !important; }
    .bk-num { width: 34px !important; height: 34px !important; font-size: 12px !important; }
    .bk-phone { flex-wrap: nowrap !important; padding: 14px 16px !important; gap: 12px !important; }
    .bk-phone img { width: 20px !important; }
    .bk-phone span span { font-size: 15px !important; white-space: nowrap; }
    .bk-phone { display: none !important; }
    .bk-topics-wrap { display: none !important; }
    .bk-panel { padding: 24px 20px !important; }
    .bk-panel label { margin-bottom: 8px !important; }
    .bk-panel input { padding: 12px 4px !important; font-size: 15px !important; }

    /* --- contacts --- */
    .ct-grid { gap: 12px !important; }
    .ct-card, .ct-grid > div:first-child > div:first-child { padding: 16px 18px !important; border-radius: 16px !important; }
    .ct-grid > div:first-child { gap: 10px !important; }
    .ct-grid > div:first-child > div:first-child > div:first-child,
    .ct-card > div:first-child, .ct-card > span:first-child { font-size: 10.5px !important; letter-spacing: 0.2em !important; margin-bottom: 8px !important; }
    .ct-grid > div:first-child > div:first-child > div:nth-child(2) { font-size: 15px !important; line-height: 1.4 !important; }
    .ct-grid > div:first-child > div:first-child > div:last-child,
    .ct-card > div:last-child { font-size: 11px !important; margin-top: 7px !important; }
    .ct-card > div:nth-child(2) { font-size: 18px !important; }
    .ct-mess { gap: 10px !important; }
    .ct-mess .ct-card { gap: 12px !important; }
    .ct-mess .ct-card > span:last-child { font-size: 15px !important; }
    .ct-arrow { width: 22px !important; height: 22px !important; font-size: 10px !important; }
    .ct-map { min-height: 0 !important; overflow: visible !important; background: transparent !important; box-shadow: none !important; border: 0 !important; display: flex; flex-direction: column; }
    .ct-map iframe { position: static !important; height: 300px !important; border-radius: 18px; }
    .ct-map > div[style*="radial-gradient"], .ct-map > div[style*="inset: 14px"] { display: none !important; }
    .ct-route { position: static !important; left: auto !important; right: auto !important; bottom: auto !important; margin-top: 10px; flex-direction: row !important; align-items: center !important; flex-wrap: nowrap !important; padding: 12px 14px !important; gap: 12px !important; border-radius: 16px !important; }
    .ct-route > div:first-child > div:first-child { font-size: 13px !important; line-height: 1.35 !important; }
    .ct-route > div:first-child > div:last-child { font-size: 10.5px !important; }
    .ct-route a.k-cta { padding: 13px 18px !important; font-size: 10px !important; min-height: 44px; box-sizing: border-box; display: inline-flex; align-items: center; white-space: nowrap; }
  }

/* --- перенос hover-директив эталона в CSS --- */
.hv-underline:hover { color: #b48a8a; border-color: #b48a8a; }
.hv-dark:hover { background: #8f5f5c; color: #faf7f2; }
.pr-row:hover { padding-left: 14px; }
/* --- состояния формы --- */
#f-submit[disabled] { opacity: 0.6; pointer-events: none; }
.bk-consent input { appearance: auto; }
@media (pointer: fine) { .bk-consent, .bk-consent input { cursor: none !important; } }
