/* Optional Embed block. All styling stays inside this block's own classes. */
.he-embed-wrap,
.he-embed-wrap * {
    box-sizing: border-box;
}

.he-embed-wrap {
    --he-paper: #fbfaf6;
    --he-soft: #f0eee6;
    --he-ink: #3c4033;
    --he-muted: #65685b;
    --he-line: #dfdfd2;
    --he-olive: #62683d;
    width: calc(100% - 40px);
    max-width: 1240px;
    margin: 34px auto;
    padding: 0;
    color: var(--he-ink);
    font-family: "Open Sans", Helvetica, Arial, sans-serif;
    font-size: 14px;
    line-height: 1.8;
    text-align: left;
    overflow-wrap: anywhere;
}

.he-embed {
    display: grid;
    grid-template-columns: minmax(0, .85fr) minmax(0, 1.3fr);
    align-items: center;
    gap: 42px;
    min-width: 0;
    margin: 0;
    padding: 8px 0;
    border: 0;
    background: transparent;
    color: inherit;
}

.he-embed--background {
    padding: 34px 38px;
    border: 1px solid var(--he-line);
    border-radius: 4px;
    background: var(--he-paper);
}

.he-embed--wide {
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
}

.he-embed__copy,
.he-embed__media {
    min-width: 0;
    width: 100%;
    margin: 0;
    padding: 0;
}

.he-embed--wide .he-embed__copy {
    max-width: 78ch;
}

.he-embed .he-embed__eyebrow {
    display: block;
    margin: 0 0 9px;
    padding: 0;
    color: var(--he-olive);
    font-family: inherit;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.6;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.he-embed .he-embed__title {
    max-width: 25ch;
    margin: 0;
    padding: 0;
    color: var(--he-ink);
    font-family: inherit;
    font-size: 28px;
    font-weight: 400;
    line-height: 1.3;
    letter-spacing: -.025em;
    text-transform: none;
}

.he-embed--wide .he-embed__title {
    max-width: 38ch;
}

.he-embed .he-embed__text {
    margin: 15px 0 0;
    padding: 0;
    color: var(--he-muted);
    font-family: inherit;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.85;
}

.he-embed__text > :first-child { margin-top: 0; }
.he-embed__text > :last-child { margin-bottom: 0; }
.he-embed__text p { margin: 0 0 13px; }
.he-embed__text :is(h1, h2, h3, h4, h5, h6) {
    margin: 20px 0 10px;
    color: var(--he-ink);
    font: 600 18px/1.45 "Open Sans", Helvetica, Arial, sans-serif;
    letter-spacing: normal;
    text-transform: none;
}
.he-embed__text :is(ul, ol) { padding-left: 22px; }
.he-embed__text :is(img, video) { max-width: 100%; height: auto; }
.he-embed__text table { max-width: 100%; width: 100%; table-layout: fixed; }
.he-embed__text pre { max-width: 100%; white-space: pre-wrap; }

.he-embed__text a,
.he-embed__widget > a {
    color: var(--he-olive);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.he-embed a:focus-visible {
    outline: 3px solid var(--he-olive);
    outline-offset: 4px;
}

.he-embed__frame {
    position: relative;
    display: block;
    width: 100%;
    min-width: 0;
    height: var(--he-embed-height, 360px);
    margin: 0;
    padding: 0;
    border: 1px solid var(--he-line);
    border-radius: 4px;
    background: var(--he-soft);
    overflow: hidden;
}

.he-embed__frame--video {
    height: auto;
    aspect-ratio: 16 / 9;
}

.he-embed .he-embed__iframe {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    max-width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}

.he-embed__widget {
    min-width: 0;
    max-width: 100%;
    margin: 0;
    color: var(--he-ink);
}

.he-embed__widget > iframe {
    max-width: 100%;
    border: 0;
}

@media (max-width: 900px) {
    .he-embed { gap: 28px; }
    .he-embed--background { padding: 28px; }
    .he-embed .he-embed__title { font-size: 26px; }
}

@media (max-width: 680px) {
    .he-embed-wrap { width: calc(100% - 36px); margin: 25px auto; }
    .he-embed { grid-template-columns: minmax(0, 1fr); gap: 22px; }
    .he-embed--background { padding: 24px 20px; }
    .he-embed__copy { max-width: none; }
    .he-embed .he-embed__title { max-width: none; font-size: 25px; }
    .he-embed .he-embed__eyebrow { font-size: 12px; }
    .he-embed .he-embed__text { margin-top: 12px; font-size: 13px; }
    /* Compact rating widgets wrap on narrow screens; preserve both text lines. */
    .he-embed__widget > iframe { min-height: 80px; }
}

@media print {
    .he-embed-wrap { width: 100%; margin: 20px 0; }
    .he-embed { display: block; }
    .he-embed__media { margin-top: 20px; }
}
