:root {
    --paper: #fbf9f4;
    --ivory: #f6f2ea;
    --ink: #1b1714;
    --muted: #6f685d;
    --line: #ddd5c7;
    --dark: #14110d;
    --accent: #806640;
    --accent-on-dark: #b89b72;
    --serif: 'Cormorant Garamond', Georgia, serif;
    --sans: 'Jost', -apple-system, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font: 300 1rem/1.75 var(--sans); -webkit-font-smoothing: antialiased; }
a { color: inherit; }
.guide-nav { height: 92px; padding: 14px 40px; display: flex; align-items: center; justify-content: space-between; background: var(--paper); }
.guide-logo img { width: auto; height: 58px; display: block; }
.guide-nav-links { display: flex; align-items: center; gap: 32px; }
.guide-nav-links a { font-size: .72rem; font-weight: 400; letter-spacing: 1.8px; text-transform: uppercase; text-decoration: none; }
.guide-nav-cta { min-height: 44px; padding: 10px 20px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--ink); }
.guide-nav a:focus-visible, .guide-button:focus-visible, .guide-author-block a:focus-visible, .hours-related a:focus-visible, .guide-footer a:focus-visible { outline: 3px solid #007aff; outline-offset: 4px; }

.guide-hero { position: relative; min-height: calc(100vh - 92px); display: flex; align-items: flex-end; overflow: hidden; color: #fff; }
.guide-hero-image,
.guide-hero-image img { position: absolute; inset: 0; width: 100%; height: 100%; }
.guide-hero-image img { object-fit: cover; object-position: center 44%; }
.detail-hero .guide-hero-image img { object-position: center 54%; }
.guide-hero-shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(20,17,13,.12), rgba(20,17,13,.68)); }
.guide-hero-copy { position: relative; width: min(1180px, calc(100% - 80px)); margin: 0 auto; padding: 110px 0 90px; }
.guide-eyebrow { margin: 0 0 22px; color: var(--accent); font-size: .72rem; font-weight: 500; letter-spacing: 3px; text-transform: uppercase; }
.guide-hero .guide-eyebrow { color: #dfc79f; }
.guide-hero h1 { max-width: 12ch; margin: 0; font: 400 clamp(3rem, 7.3vw, 6.7rem)/.98 var(--serif); letter-spacing: -1.5px; }
.guide-hero h1 em { font-weight: 400; }
.guide-hero-copy > .guide-deck,
.guide-hero-copy > .hours-deck { max-width: 59ch; margin: 30px 0 0; color: rgba(255,255,255,.9); font-size: 1.08rem; }
.guide-author-block {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 24px;
    align-items: center;
    margin-top: 24px;
    color: rgba(255,255,255,.76);
    font-size: .69rem;
    font-weight: 600;
    letter-spacing: 1.3px;
    text-transform: uppercase;
}
.guide-author-block p { margin: 0; color: inherit; font-size: inherit; }
.guide-author-block a { color: inherit; text-underline-offset: 4px; }
.guide-author-social { display: flex; gap: 20px; }
.guide-author-social a { min-height: 44px; display: inline-flex; align-items: center; }

.guide-article { width: min(760px, calc(100% - 48px)); margin: 0 auto; padding: 110px 0 130px; }
.guide-intro { margin: 0 0 105px; font: 400 clamp(1.65rem, 3vw, 2.35rem)/1.35 var(--serif); }
.guide-article section { margin: 0 0 92px; }
.guide-number { margin: 0 0 12px; color: var(--accent); font-size: .72rem; font-weight: 500; letter-spacing: 3px; }
.guide-article h2 { margin: 0 0 24px; font: 400 clamp(2.1rem, 4vw, 3.5rem)/1.08 var(--serif); letter-spacing: -.5px; }
.guide-article section > p:not(.guide-number):not(.guide-eyebrow) { color: var(--muted); font-size: 1.04rem; }
.guide-pull-image { width: min(1060px, calc(100vw - 48px)); margin: 10px 50% 105px; transform: translateX(-50%); }
.guide-pull-image img { display: block; width: 100%; max-height: 820px; object-fit: cover; }
.guide-pull-image figcaption { margin-top: 12px; color: var(--muted); font-size: .76rem; letter-spacing: .4px; }
.guide-pull-image-wide img { height: auto; aspect-ratio: 16/10; }
blockquote { margin: 20px 0 105px; padding: 0 0 0 34px; border-left: 2px solid var(--accent); }
blockquote p { margin: 0; font: italic 400 clamp(1.9rem, 4vw, 3.1rem)/1.22 var(--serif); }

.guide-checklist { width: min(980px, calc(100vw - 48px)); margin-left: 50% !important; padding: 70px 78px; transform: translateX(-50%); background: var(--ivory); border: 1px solid var(--line); }
.guide-checklist ul { margin: 34px 0 0; padding: 0; list-style: none; }
.guide-checklist li { position: relative; padding: 18px 0 18px 32px; border-top: 1px solid var(--line); color: var(--muted); }
.guide-checklist li::before { content: '—'; position: absolute; left: 0; color: var(--accent); }
.guide-final { margin-bottom: 0 !important; padding-top: 20px; text-align: center; }
.guide-final p { max-width: 55ch; margin: 0 auto 34px; }
.guide-button { display: inline-block; padding: 15px 31px; background: var(--ink); color: var(--paper); font-size: .75rem; font-weight: 500; letter-spacing: 2px; text-decoration: none; text-transform: uppercase; }
.guide-button:hover { background: var(--accent); }

/* Wedding coverage hours guide */
.hours-hero .guide-hero-copy { padding-bottom: 72px; }
.hours-hero h1 { max-width: 11ch; }
.hours-hero .hours-deck { max-width: 59ch; margin: 30px 0 0; color: rgba(255,255,255,.9); font-size: 1.08rem; }
.hours-byline {
    margin-top: 22px !important;
    color: rgba(255,255,255,.7) !important;
    font-size: .72rem !important;
    font-weight: 500;
    letter-spacing: 1.5px;
    text-transform: uppercase;
}

.hours-article { width: min(820px, calc(100% - 48px)); }
.hours-jump {
    width: min(1060px, calc(100vw - 48px));
    margin: 0 50% 120px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    transform: translateX(-50%);
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
}
.hours-jump a {
    min-height: 145px;
    padding: 30px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    text-decoration: none;
}
.hours-jump a + a { border-left: 1px solid var(--line); }
.hours-jump strong { font: 400 2rem/1 var(--serif); }
.hours-jump span { color: var(--muted); font-size: .78rem; }
.hours-jump a:hover strong { color: var(--accent); }

.hours-article a:not(.guide-button) { text-underline-offset: 4px; }
.hours-pull-image img { min-height: 430px; }

.hours-option {
    width: min(1060px, calc(100vw - 48px));
    margin-left: 50% !important;
    padding: 80px;
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    gap: 72px;
    transform: translateX(-50%);
    background: var(--ivory);
    border: 1px solid var(--line);
}
.hours-option-heading > p {
    margin: -18px 0 12px;
    color: var(--accent);
    font: italic 400 clamp(5.5rem, 11vw, 9rem)/.85 var(--serif);
}
.hours-option h2 { font-size: clamp(2.5rem, 4.8vw, 4.2rem); }
.hours-option-copy > p { margin-top: 0; }
.hours-option-copy h3,
.hours-factors h3,
.hours-answer h3 {
    margin: 32px 0 14px;
    font: 500 1.35rem/1.15 var(--serif);
}
.hours-option-copy ul { margin: 0; padding: 0; list-style: none; }
.hours-option-copy li {
    position: relative;
    padding: 14px 0 14px 25px;
    border-top: 1px solid var(--line);
    color: var(--muted);
}
.hours-option-copy li::before { content: '—'; position: absolute; left: 0; color: var(--accent); }
.hours-timeline {
    width: min(1060px, calc(100vw - 48px));
    margin-left: 50% !important;
    display: grid;
    grid-template-columns: .75fr 1.25fr;
    gap: 80px;
    transform: translateX(-50%);
}
.hours-timeline-heading { position: sticky; top: 130px; align-self: start; }
.hours-timeline-heading p { color: var(--muted); }
.hours-timeline ol { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.hours-timeline li {
    min-height: 116px;
    display: grid;
    grid-template-columns: 88px 1fr;
    gap: 24px;
    align-items: start;
    padding: 25px 0;
    border-bottom: 1px solid var(--line);
}
.hours-timeline time { color: var(--accent); font-size: .78rem; font-weight: 500; letter-spacing: .5px; white-space: nowrap; }
.hours-timeline span { color: var(--muted); }
.hours-timeline strong { display: block; margin-bottom: 3px; color: var(--ink); font: 500 1.2rem/1.2 var(--serif); }

.hours-factors { margin-top: 42px; display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--line); }
.hours-factors article { min-height: 190px; padding: 28px 30px 24px 0; border-bottom: 1px solid var(--line); }
.hours-factors article:nth-child(even) { padding-left: 30px; border-left: 1px solid var(--line); }
.hours-factors h3 { margin-top: 0; }
.hours-factors p { margin: 0; color: var(--muted); font-size: .95rem; }

.hours-answer {
    width: min(1060px, calc(100vw - 48px));
    margin-left: 50% !important;
    padding: 76px 80px;
    transform: translateX(-50%);
    background: var(--ivory);
}
.hours-answer > div { display: grid; grid-template-columns: repeat(2, 1fr); margin-top: 38px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.hours-answer article { padding: 32px 38px 32px 0; }
.hours-answer article + article { padding-left: 38px; border-left: 1px solid var(--line); }
.hours-answer h3 { margin-top: 0; font-size: 1.7rem; }
.hours-answer article p { margin-bottom: 0; color: var(--muted); }
.hours-answer-note { max-width: 62ch; margin: 32px 0 0; color: var(--muted); }

.hours-related { width: min(1060px, calc(100vw - 48px)); margin-left: 50% !important; transform: translateX(-50%); }
.hours-related > div { margin-top: 38px; border-top: 1px solid var(--line); }
.hours-related a {
    min-height: 94px;
    padding: 22px 0;
    display: grid;
    grid-template-columns: minmax(220px, .8fr) 1.2fr;
    gap: 28px;
    align-items: center;
    border-bottom: 1px solid var(--line);
    text-decoration: none;
}
.hours-related strong { font: 500 1.35rem/1.2 var(--serif); }
.hours-related span { color: var(--muted); }
.hours-related a:hover strong { color: var(--accent); }

.guide-footer { padding: 70px 40px 45px; background: var(--dark); color: #ece6da; text-align: center; }
.guide-footer img { width: auto; height: 72px; }
.guide-footer div { display: flex; justify-content: center; gap: 26px; flex-wrap: wrap; margin: 28px 0; }
.guide-footer div a { min-height: 44px; padding: 10px 2px; display: inline-flex; align-items: center; color: #ece6da; font-size: .7rem; letter-spacing: 1.8px; text-transform: uppercase; text-underline-offset: 4px; }
.guide-footer p { margin: 0; color: #a9a095; font-size: .75rem; }

@media (max-width: 760px) {
    .guide-nav { height: 78px; padding: 10px 20px; }
    .guide-logo img { height: 48px; }
    .guide-nav-links > a:not(.guide-nav-cta) { display: none; }
    .guide-nav-cta { min-height: 44px; padding: 9px 13px; font-size: .66rem !important; }
    .guide-hero { min-height: calc(100svh - 78px); }
    .guide-hero-image img { object-position: center; }
    .guide-hero-copy { width: calc(100% - 40px); padding: 80px 0 55px; }
    .guide-hero h1 { font-size: clamp(3rem, 15vw, 5rem); }
    .guide-article { width: calc(100% - 40px); padding: 78px 0 90px; }
    .guide-intro { margin-bottom: 74px; }
    .guide-article section, blockquote, .guide-pull-image { margin-bottom: 74px; }
    .guide-checklist { width: calc(100vw - 28px); padding: 44px 26px; }
    .guide-footer { padding-inline: 22px; }
    .hours-hero .guide-hero-shade { background: linear-gradient(90deg, rgba(20,17,13,.64), rgba(20,17,13,.12) 82%), linear-gradient(180deg, rgba(20,17,13,.08), rgba(20,17,13,.55)); }
    .hours-hero .guide-hero-copy { padding-bottom: 26px; }
    .hours-hero h1 { font-size: clamp(2.45rem, 12vw, 4.4rem); }
    .guide-author-block { display: block; font-size: .61rem; line-height: 1.7; }
    .guide-author-social { margin-top: 8px; }
    .hours-article { width: calc(100% - 40px); }
    .hours-jump { width: calc(100vw - 28px); grid-template-columns: 1fr; margin-bottom: 82px; }
    .hours-jump a { min-height: 108px; padding: 24px; }
    .hours-jump a + a { border-left: 0; border-top: 1px solid var(--line); }
    .hours-jump strong { font-size: 1.65rem; }
    .hours-option,
    .hours-answer { width: calc(100vw - 28px); padding: 48px 26px; display: block; }
    .hours-option-heading > p { margin-top: 0; font-size: 5.5rem; }
    .hours-option-copy { margin-top: 36px; }
    .hours-timeline { width: calc(100vw - 40px); display: block; }
    .hours-timeline-heading { position: static; margin-bottom: 34px; }
    .hours-timeline li { grid-template-columns: 76px 1fr; gap: 14px; }
    .hours-pull-image img { min-height: 0; }
    .hours-factors { display: block; }
    .hours-factors article,
    .hours-factors article:nth-child(even) { min-height: 0; padding: 24px 0; border-left: 0; }
    .hours-answer > div { display: block; }
    .hours-answer article,
    .hours-answer article + article { padding: 26px 0; border-left: 0; }
    .hours-answer article + article { border-top: 1px solid var(--line); }
    .hours-related { width: calc(100vw - 40px); }
    .hours-related a { grid-template-columns: 1fr; gap: 5px; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { transition-duration: .01ms !important; }
}
