/* Destination wedding (Custom, all out) — illustrated vineyard sunset, terracotta + olive, Playfair + script */
.t-dw { --bg: #FBF5EE; --surface: #FFFDF9; --surface-2: #F3E7DA; --ink: #3A2A22; --ink-2: #6E5A4E; --accent: #8C4A2F; --accent-hover: #74391F; --accent-ink: #FFFFFF; --accent-text: #8A4529; --olive: #6B6B3A; --tint: #F5E3D6; --line: #EADBCB; --line-strong: #D8C2AC; --display: "Playfair Display", Georgia, serif; --body: "Figtree", system-ui, sans-serif; --script: "Great Vibes", "Snell Roundhand", Georgia, serif; --radius: 18px; }
.t-dw h1, .t-dw h2, .t-dw h3 { font-family: var(--display); color: var(--ink); }
.t-dw .inav .mono { font-family: var(--script); }

.dw-hero { position: relative; min-height: min(100svh, 940px); display: grid; align-items: end; overflow: hidden; color: #FFF6EC; isolation: isolate; }
.dw-scene { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -1; }
.dw-sun { transform-origin: 800px 560px; animation: sunGlow 9s var(--ease-inout, ease-in-out) infinite alternate; }
@keyframes sunGlow { from { transform: scale(.94); opacity: .85; } to { transform: scale(1.06); opacity: 1; } }
.dw-copy { width: 100%; max-width: 1040px; margin: 0 auto; padding: 0 20px clamp(60px, 10vh, 120px); text-align: center; }
.dw-pre { font: italic 400 clamp(17px, 2.2vw, 21px)/1.4 var(--display); opacity: .92; max-width: 34ch; margin: 0 auto; }
.dw-hero h1 { margin: 26px 0 14px; font: 400 clamp(72px, 13vw, 150px)/1.1 var(--script); color: #FFF6EC; text-shadow: 0 6px 30px rgba(60, 20, 10, .35); }
.dw-hero h1 span { font-family: var(--display); font-style: italic; font-size: .45em; vertical-align: .35em; color: #FCD58E; }
.dw-when { font: 700 13.5px/1.5 var(--body); letter-spacing: .16em; text-transform: uppercase; }
.dw-count { justify-content: center; margin-top: 24px; }
.dw-count div { background: rgba(58, 30, 20, .28) !important; border-color: rgba(255, 246, 236, .35) !important; backdrop-filter: none !important; }
.dw-count b { color: #FFF6EC; font-family: var(--display) !important; }
.dw-count span { color: #FCE3C0 !important; }
.dw-cta { margin-top: 24px; display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
.t-dw .dw-hero .btn.solid { background: #FCD58E; color: #3A2A22; box-shadow: none; }
.t-dw .dw-hero .btn.line { color: #FFF6EC; }

.dw-sec { padding-block: clamp(60px, 9vw, 110px); }
.dw-head { text-align: center; max-width: 620px; margin: 0 auto 30px; }
.dw-head h2, .dw-faq h2 { font-size: clamp(38px, 5.5vw, 58px); font-weight: 500; font-style: italic; }
.dw-head p { margin-top: 8px; color: var(--ink-2); font-size: 17.5px; }

.dw-tabs { display: flex; justify-content: center; gap: 6px; margin-bottom: 22px; flex-wrap: wrap; }
.dw-tabs [role="tab"] { min-height: 48px; padding: 10px 22px; border-radius: 999px; border: 1.5px solid var(--line-strong); background: transparent; font: 700 15px/1 var(--body); color: var(--ink); cursor: pointer; transition: background-color .25s, color .25s, border-color .25s; }
.dw-tabs [role="tab"][aria-selected="true"] { background: var(--accent); border-color: var(--accent); color: #fff; }
.dw-panel { max-width: 720px; margin: 0 auto; background: var(--surface); border-radius: 22px; padding: 10px 26px; box-shadow: 0 0 0 1px var(--line), 0 24px 50px -36px rgba(58, 42, 34, .45); animation: panelIn .5s var(--ease); }
@keyframes panelIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.dw-panel:focus-visible { outline: 3px solid var(--accent-text); outline-offset: 4px; }
.dw-ev { display: grid; grid-template-columns: 100px 1fr; gap: 18px; padding: 20px 0; border-bottom: 1px solid var(--line); }
.dw-ev:last-child { border-bottom: 0; }
.dw-ev b { font: 700 16px/1.4 var(--body); color: var(--accent-text); }
.dw-ev h3 { font-size: 24px; font-weight: 500; }
.dw-ev p { color: var(--ink-2); margin-top: 2px; }

.dw-travel { background: var(--surface-2); }
.dw-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.dw-steps article { background: var(--surface); border-radius: 20px; padding: 24px 22px; position: relative; }
.dw-n { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--olive); color: #fff; font: 700 17px/1 var(--display); margin-bottom: 12px; }
.dw-steps h3 { font-size: 22px; font-weight: 600; }
.dw-steps p { color: var(--ink-2); margin-top: 6px; }
.dw-hotels { margin-top: 16px; display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.dw-hotel { display: grid; gap: 4px; padding: 20px 22px; border-radius: 20px; background: var(--accent); color: #FFF6EC; text-decoration: none; }
.dw-hotel b { font: 600 22px/1.2 var(--display); }
.dw-hotel span { opacity: .9; }
.dw-hotel:hover { background: var(--accent-hover); }

.dw-faq details { border-bottom: 1px solid var(--line-strong); padding: 6px 0; }
.dw-faq summary { cursor: pointer; list-style: none; padding: 16px 40px 16px 0; position: relative; font: 600 20px/1.3 var(--display); color: var(--ink); }
.dw-faq summary::-webkit-details-marker { display: none; }
.dw-faq summary::after { content: "+"; position: absolute; right: 4px; top: 12px; font: 400 28px/1 var(--body); color: var(--accent-text); transition: transform .3s var(--ease); }
.dw-faq details[open] summary::after { transform: rotate(45deg); }
.dw-faq details p { color: var(--ink-2); padding: 0 0 16px; }
.dw-faq details a { display: inline-block; margin: -6px 0 16px; color: var(--accent-text); font-weight: 600; }
.dw-faq h2 { text-align: center; margin-bottom: 22px; }

.dw-rsvp { background: var(--surface-2); }
.dw-foot { padding: 60px 20px 44px; text-align: center; background: #3A2A22; color: #FBEBDD; }
.dw-foot .big { font: 400 clamp(40px, 7vw, 64px)/1.1 var(--script); color: #FCD58E; }
.dw-foot p { margin-top: 6px; }
.dw-foot .made { display: inline-flex; align-items: center; gap: 8px; margin-top: 20px; color: inherit; opacity: .85; text-decoration: none; font-size: 14px; }
@media (max-width: 820px) { .dw-steps, .dw-hotels { grid-template-columns: 1fr; } .dw-ev { grid-template-columns: 1fr; gap: 2px; } }
@media (prefers-reduced-motion: reduce) { .dw-sun, .dw-panel { animation: none !important; } }
