/* Open house (Essentials) — a postcard: two halves split by a dashed fold, stamp, postmark, address as the hero */
.t-oh { --bg: #E9E1D1; --surface: #FFF7EA; --surface-2: #F3EAD9; --ink: #2F3B2F; --ink-2: #5F6A5C; --accent: #B5432F; --accent-hover: #9A3624; --accent-ink: #FFFFFF; --accent-text: #A13A27; --tint: #F6E3D8; --line: #E2D6C1; --line-strong: #CDBEA3; --display: "Fredoka", "Figtree", sans-serif; --body: "Figtree", system-ui, sans-serif; --radius: 12px; }
.t-oh h1, .t-oh h2 { font-family: var(--display); color: var(--ink); }
.oh { max-width: 980px; margin: 0 auto; padding: clamp(28px, 6vw, 70px) 20px 40px; }
.oh-card { display: grid; grid-template-columns: 1.1fr 1fr; background: var(--surface); border-radius: 6px; box-shadow: 0 30px 60px -36px rgba(47, 59, 47, .55), 0 0 0 1px var(--line); transform: rotate(-.6deg); }
.oh-left { padding: clamp(28px, 5vw, 52px); border-right: 2px dashed var(--line-strong); display: grid; align-content: start; gap: 12px; }
.oh-pre { font: 600 18px/1.3 var(--body); color: var(--ink-2); }
.oh-left h1 { font-size: clamp(64px, 11vw, 120px); line-height: .9; font-weight: 700; color: var(--accent); letter-spacing: -.02em; }
.oh-txt { font-size: 18px; color: var(--ink); max-width: 34ch; }
.oh-when { margin: 6px 0 8px; display: grid; gap: 8px; }
.oh-when div { display: grid; grid-template-columns: 64px 1fr; gap: 10px; }
.oh-when dt { font-weight: 700; color: var(--ink-2); font-size: 14px; padding-top: 2px; }
.oh-when dd { margin: 0; font-weight: 700; }
.oh-left .btn { justify-self: start; box-shadow: none; border-radius: 10px; }
.oh-right { position: relative; padding: clamp(28px, 5vw, 52px); display: grid; align-content: end; justify-items: start; gap: 14px; min-height: 360px; }
.oh-stamp { position: absolute; top: 22px; right: 22px; width: 70px; padding: 5px; background: #fff; box-shadow: 0 2px 6px rgba(0,0,0,.12); background-image: radial-gradient(circle at 0 0, transparent 3px, #fff 3.5px); }
.oh-stamp svg { display: block; width: 100%; }
.oh-postmark { position: absolute; top: 40px; right: 84px; padding: 16px 10px; border: 2px solid rgba(47, 59, 47, .35); border-radius: 50%; font: 700 10px/1 var(--body); letter-spacing: .12em; color: rgba(47, 59, 47, .5); transform: rotate(-14deg); }
.oh-house { width: min(240px, 80%); }
.oh-addr { font: 600 clamp(24px, 3.4vw, 32px)/1.2 var(--display); font-style: normal; color: var(--ink); border-top: 2px solid var(--ink); padding-top: 12px; }
.oh-map { margin-top: clamp(40px, 6vw, 64px); }
.oh-map h2 { font-size: 34px; font-weight: 600; margin-bottom: 14px; }
.oh-mapcard { display: grid; border-radius: 12px; overflow: hidden; background: var(--surface); text-decoration: none; color: var(--ink); box-shadow: 0 0 0 1px var(--line); }
.oh-mapcard svg { width: 100%; height: 160px; display: block; }
.oh-mapcard span { display: grid; gap: 2px; padding: 14px 16px; }
.oh-mapcard small { color: var(--ink-2); font-size: 14px; }
.oh-foot { text-align: center; padding: 20px 20px 40px; }
.oh-foot .made { display: inline-flex; align-items: center; gap: 8px; color: var(--ink-2); text-decoration: none; font-size: 14px; }
@media (max-width: 760px) { .oh-card { grid-template-columns: 1fr; transform: none; } .oh-left { border-right: 0; border-bottom: 2px dashed var(--line-strong); } .oh-right { min-height: 300px; } }
