/* =========================================================
   Creativity Island — Journal / Blog Module
   Separate stylesheet so the existing homepage design stays intact.
========================================================= */

/* ---------- Homepage Blog Section ---------- */
#blog {
    background: #f6f4ef;
    color: #0D1117;
    padding: 54px 80px 46px;
    flex-direction: column;
}

.home-blog-wrap {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
}

.home-blog-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 30px;
    margin-bottom: 26px;
}

.home-blog-head .section-tag {
    display: block;
    margin-bottom: 7px;
    color: rgba(13,17,23,.42);
}

.home-blog-head h2 {
    font-family: 'Montserrat', sans-serif;
    font-size: clamp(2.1rem, 4vw, 3.55rem);
    line-height: .98;
    letter-spacing: -.04em;
    font-weight: 800;
}

.home-blog-head h2 em {
    color: var(--coral);
    font-style: italic;
}

.home-blog-all {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: #0D1117;
    text-decoration: none;
    font-size: .78rem;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    padding-bottom: 6px;
    border-bottom: 1px solid rgba(13,17,23,.28);
    transition: .25s ease;
    flex-shrink: 0;
}

.home-blog-all:hover { color: var(--coral); border-color: var(--coral); }

.home-blog-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.home-blog-card {
    min-width: 0;
    background: #fff;
    border-radius: 18px;
    overflow: hidden;
    border: 1px solid rgba(13,17,23,.07);
    box-shadow: 0 14px 40px rgba(13,17,23,.06);
    transition: transform .35s cubic-bezier(.22,1,.36,1), box-shadow .35s ease;
}

.home-blog-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 24px 55px rgba(13,17,23,.12);
}

.home-blog-image {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    background: #0D1117;
    overflow: hidden;
}

.home-blog-image img {
    width: 100%; height: 100%; object-fit: cover; display: block;
    transition: transform .55s cubic-bezier(.22,1,.36,1);
}

.home-blog-card:hover .home-blog-image img { transform: scale(1.045); }

.home-blog-image-placeholder {
    width:100%;height:100%;display:flex;align-items:center;justify-content:center;
    background:linear-gradient(135deg,var(--ocean),#0D1117);color:#fff;
    font-family:'Montserrat',sans-serif;font-size:2rem;font-weight:800;
}

.home-blog-category {
    position: absolute;
    left: 14px;
    top: 14px;
    background: rgba(255,255,255,.92);
    color: #0D1117;
    padding: 7px 10px;
    border-radius: 999px;
    font-size: .64rem;
    text-transform: uppercase;
    letter-spacing: .08em;
    font-weight: 700;
}

.home-blog-body { padding: 17px 18px 19px; }
.home-blog-meta { color: rgba(13,17,23,.42); font-size: .72rem; margin-bottom: 8px; }
.home-blog-card h3 { font-size: clamp(1rem, 1.25vw, 1.22rem); line-height: 1.2; margin-bottom: 9px; }
.home-blog-card h3 a { color:#0D1117;text-decoration:none; }
.home-blog-card p { font-size: .78rem; line-height: 1.6; color: rgba(13,17,23,.62); display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden; }
.home-blog-read { display:inline-flex;margin-top:13px;color:var(--coral);text-decoration:none;font-weight:700;font-size:.72rem;letter-spacing:.04em; }

.home-blog-empty {
    min-height: 260px;
    border: 1px dashed rgba(13,17,23,.18);
    border-radius: 20px;
    display:flex;align-items:center;justify-content:center;text-align:center;
    color:rgba(13,17,23,.55);
}

@media (max-width: 900px) {
    #blog { padding: 72px 24px 34px; align-items:flex-start; }
    .home-blog-wrap { max-width:none; }
    .home-blog-head { margin-bottom:18px; }
    .home-blog-head h2 { font-size: 2.35rem; }
    .home-blog-grid {
        display:flex;
        gap:14px;
        overflow-x:auto;
        padding: 2px 2px 14px;
        scroll-snap-type:x mandatory;
        scrollbar-width:none;
    }
    .home-blog-grid::-webkit-scrollbar { display:none; }
    .home-blog-card { flex:0 0 78vw; max-width:340px; scroll-snap-align:start; }
    .home-blog-image { aspect-ratio: 16/8.7; }
    .home-blog-body { padding:14px 15px 16px; }
}

@media (max-width: 560px) {
    #blog { padding: 82px 20px 30px; }
    .home-blog-head { align-items:flex-start; flex-direction:column; gap:13px; }
    .home-blog-head h2 { font-size: 2rem; }
    .home-blog-card { flex-basis: 82vw; }
    .home-blog-card p { -webkit-line-clamp: 1; }
}

/* ---------- Standalone Journal Pages ---------- */
.blog-page {
    margin:0;
    background:#f7f6f2;
    color:#0D1117;
    font-family:'Poppins','Segoe UI',Arial,sans-serif;
    overflow-x:hidden;
}
.blog-page *, .blog-page *::before, .blog-page *::after { box-sizing:border-box; }
.blog-page a { color:inherit; }
.blog-page h1,.blog-page h2,.blog-page h3 { font-family:'Montserrat','Segoe UI',Arial,sans-serif; }

.blog-nav {
    height:82px;
    width:min(1240px,calc(100% - 48px));
    margin:0 auto;
    display:grid;
    grid-template-columns:1fr auto 1fr;
    gap:28px;
    align-items:center;
    border-bottom:1px solid rgba(13,17,23,.09);
}
.blog-brand { display:inline-flex;align-items:center;text-decoration:none;font-weight:800;font-size:1.1rem;letter-spacing:-.03em;justify-self:start; }
.blog-brand img { max-height:38px;max-width:165px;width:auto;display:block; }
.blog-brand em { color:var(--coral);font-style:normal; }
.blog-nav-links { display:flex;align-items:center;gap:28px; }
.blog-nav-links a { text-decoration:none;font-size:.78rem;font-weight:600;color:rgba(13,17,23,.58);transition:.2s; }
.blog-nav-links a:hover,.blog-nav-links a.active { color:#0D1117; }
.blog-nav-cta { justify-self:end;text-decoration:none;background:#0D1117;color:#fff!important;padding:11px 17px;border-radius:999px;font-size:.72rem;font-weight:700;transition:.25s; }
.blog-nav-cta:hover { background:var(--coral); }

.journal-hero {
    width:min(1180px,calc(100% - 48px));
    margin:0 auto;
    padding:110px 0 82px;
    border-bottom:1px solid rgba(13,17,23,.1);
}
.journal-kicker { color:var(--coral);text-transform:uppercase;letter-spacing:.15em;font-size:.72rem;font-weight:700;margin-bottom:24px; }
.journal-hero h1 { font-size:clamp(3rem,7vw,6.7rem);line-height:.92;letter-spacing:-.07em;margin:0;max-width:980px; }
.journal-hero h1 em { color:var(--coral);font-style:italic;font-weight:700; }
.journal-hero p { max-width:570px;color:rgba(13,17,23,.55);font-size:1rem;line-height:1.75;margin:30px 0 0; }

.journal-shell { width:min(1180px,calc(100% - 48px));margin:0 auto;padding:54px 0 110px; }
.journal-categories { display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:36px;font-size:.72rem;color:rgba(13,17,23,.45); }
.journal-category-chip { border:1px solid rgba(13,17,23,.13);padding:7px 12px;border-radius:999px;color:rgba(13,17,23,.68);background:#fff; }
.journal-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px 20px; }
.journal-card { min-width:0; }
.journal-card-image { display:block;position:relative;aspect-ratio:16/10;border-radius:18px;overflow:hidden;background:#0D1117; }
.journal-card-image img { width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s cubic-bezier(.22,1,.36,1); }
.journal-card:hover .journal-card-image img { transform:scale(1.045); }
.journal-card-placeholder { width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--ocean),#0D1117);color:#fff;font-weight:800;font-size:2rem; }
.journal-card-arrow { position:absolute;right:14px;top:14px;width:38px;height:38px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:rgba(255,255,255,.92);text-decoration:none;font-size:1rem; }
.journal-card-body { padding:17px 4px 8px; }
.journal-card-meta { display:flex;justify-content:space-between;gap:10px;color:rgba(13,17,23,.4);font-size:.68rem;text-transform:uppercase;letter-spacing:.07em;margin-bottom:11px; }
.journal-card h2 { font-size:1.35rem;line-height:1.18;letter-spacing:-.035em;margin:0 0 10px; }
.journal-card h2 a { text-decoration:none; }
.journal-card p { color:rgba(13,17,23,.58);font-size:.84rem;line-height:1.65;margin:0; }
.journal-read { display:inline-flex;gap:8px;align-items:center;text-decoration:none;margin-top:14px;color:var(--coral)!important;font-size:.75rem;font-weight:700; }
.journal-pagination { margin-top:55px;padding-top:25px;border-top:1px solid rgba(13,17,23,.1);display:flex;justify-content:space-between;align-items:center;font-size:.78rem; }
.journal-pagination a { text-decoration:none;font-weight:700; }
.journal-pagination .disabled { color:rgba(13,17,23,.25); }
.journal-empty { padding:100px 30px;text-align:center;background:#fff;border:1px solid rgba(13,17,23,.08);border-radius:22px; }
.journal-empty span { color:var(--coral);font-size:.72rem;text-transform:uppercase;letter-spacing:.14em;font-weight:700; }
.journal-empty h2 { font-size:2.1rem;margin:12px 0 8px; }
.journal-empty p { color:rgba(13,17,23,.5); }

.article-page { padding-top:40px; }
.article-header { width:min(980px,calc(100% - 48px));margin:0 auto;padding:65px 0 50px;text-align:center; }
.article-back { display:inline-block;text-decoration:none;color:rgba(13,17,23,.5)!important;font-size:.74rem;margin-bottom:35px; }
.article-meta-row { display:flex;justify-content:center;flex-wrap:wrap;gap:10px 24px;color:var(--coral);font-size:.68rem;text-transform:uppercase;letter-spacing:.11em;font-weight:700;margin-bottom:22px; }
.article-header h1 { font-size:clamp(2.65rem,6vw,5.7rem);line-height:.96;letter-spacing:-.065em;margin:0; }
.article-lead { max-width:760px;margin:24px auto 0;color:rgba(13,17,23,.57);font-size:1.05rem;line-height:1.75; }
.article-author { margin-top:22px;font-size:.76rem;color:rgba(13,17,23,.44); }
.article-cover { width:min(1180px,calc(100% - 48px));margin:0 auto 72px;border-radius:24px;overflow:hidden;background:#0D1117; }
.article-cover img { width:100%;max-height:680px;object-fit:cover;display:block; }
.article-content-wrap { width:min(930px,calc(100% - 48px));margin:0 auto 110px;display:grid;grid-template-columns:70px minmax(0,720px);gap:50px;justify-content:center; }
.article-rail { position:sticky;top:110px;align-self:start;display:flex;flex-direction:column;gap:10px;align-items:center; }
.article-rail span { writing-mode:vertical-rl;text-transform:uppercase;letter-spacing:.13em;font-size:.62rem;color:rgba(13,17,23,.35);margin-bottom:8px; }
.article-rail a { width:34px;height:34px;border-radius:50%;border:1px solid rgba(13,17,23,.13);display:flex;align-items:center;justify-content:center;text-decoration:none;font-size:.72rem;font-weight:700;background:#fff; }
.article-content { font-family:Georgia,'Times New Roman',serif;font-size:1.08rem;line-height:1.9;color:#25282c; }
.article-content > *:first-child { margin-top:0; }
.article-content p { margin:0 0 1.45em; }
.article-content h2,.article-content h3 { font-family:'Montserrat','Segoe UI',Arial,sans-serif;color:#0D1117;letter-spacing:-.04em;line-height:1.14; }
.article-content h2 { font-size:2rem;margin:2.1em 0 .65em; }
.article-content h3 { font-size:1.45rem;margin:1.8em 0 .55em; }
.article-content ul,.article-content ol { padding-left:25px;margin:0 0 1.5em; }
.article-content li { margin-bottom:.5em; }
.article-content blockquote { margin:2em 0;padding:10px 0 10px 24px;border-left:4px solid var(--coral);font-size:1.35rem;line-height:1.6;color:#0D1117;font-style:italic; }
.article-content a { color:var(--coral);text-underline-offset:3px; }
.article-content img { max-width:100%;height:auto;border-radius:14px;margin:1.5em 0; }

.related-journal { width:min(1180px,calc(100% - 48px));margin:0 auto;padding:0 0 100px; }
.related-heading { display:flex;justify-content:space-between;align-items:flex-end;border-top:1px solid rgba(13,17,23,.1);padding-top:42px;margin-bottom:24px; }
.related-heading > span { font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;color:rgba(13,17,23,.4); }
.related-heading h2 { font-size:2.3rem;margin:0;letter-spacing:-.05em; }
.related-heading h2 em { color:var(--coral); }
.related-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px; }
.related-card { text-decoration:none;background:#fff;border-radius:16px;overflow:hidden;border:1px solid rgba(13,17,23,.07); }
.related-card img { width:100%;aspect-ratio:16/9;object-fit:cover;display:block; }
.related-card div { padding:17px; }
.related-card span { color:var(--coral);font-size:.66rem;text-transform:uppercase;letter-spacing:.1em;font-weight:700; }
.related-card h3 { margin:8px 0 14px;font-size:1rem;line-height:1.25; }
.related-card small { color:rgba(13,17,23,.5);font-weight:600; }

.blog-footer { width:min(1240px,calc(100% - 48px));margin:0 auto;border-top:1px solid rgba(13,17,23,.1);padding:44px 0 52px;display:flex;align-items:flex-end;justify-content:space-between;gap:30px; }
.blog-footer p { font-size:.74rem;color:rgba(13,17,23,.45);margin:12px 0 0; }
.blog-footer-links { display:flex;gap:22px; }
.blog-footer-links a { text-decoration:none;font-size:.74rem;color:rgba(13,17,23,.55); }

@media(max-width:900px){
    .blog-nav { grid-template-columns:1fr auto;width:calc(100% - 32px); }
    .blog-nav-links { display:none; }
    .journal-hero,.journal-shell,.article-header,.article-cover,.article-content-wrap,.related-journal,.blog-footer { width:calc(100% - 36px); }
    .journal-grid,.related-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .article-content-wrap { grid-template-columns:1fr; }
    .article-rail { position:static;flex-direction:row;justify-content:flex-start; }
    .article-rail span { writing-mode:initial;margin:0 8px 0 0; }
}
@media(max-width:620px){
    .blog-nav { height:70px; }
    .blog-nav-cta { padding:10px 13px; }
    .journal-hero { padding:75px 0 55px; }
    .journal-hero h1 { font-size:3.1rem; }
    .journal-shell { padding-top:38px; }
    .journal-grid,.related-grid { grid-template-columns:1fr; }
    .journal-pagination { gap:12px;font-size:.68rem; }
    .article-page { padding-top:18px; }
    .article-header { padding:45px 0 35px; }
    .article-cover { margin-bottom:45px;border-radius:14px; }
    .article-content { font-size:1rem; }
    .article-content h2 { font-size:1.65rem; }
    .related-heading { align-items:flex-start;flex-direction:column;gap:8px; }
    .blog-footer { align-items:flex-start;flex-direction:column; }
}

/* ---------- Rich article content generated by the professional editor ---------- */
.article-content h4 {
    font-family:'Montserrat','Segoe UI',Arial,sans-serif;
    color:#0D1117;
    letter-spacing:-.025em;
    line-height:1.2;
    font-size:1.18rem;
    margin:1.55em 0 .5em;
}
.article-content u { text-underline-offset:3px; }
.article-content s { opacity:.72; }
.article-content hr { border:0;border-top:1px solid rgba(13,17,23,.14);margin:2.4em 0; }
.article-content pre,
.article-content .ql-code-block-container {
    background:#111820;
    color:#eef3f6;
    border-radius:14px;
    padding:18px 20px;
    margin:1.8em 0;
    overflow:auto;
    font: .88rem/1.7 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;
}
.article-content code {
    background:rgba(13,17,23,.06);
    border-radius:5px;
    padding:.12em .34em;
    font-size:.88em;
}
.article-content pre code { background:transparent;padding:0;color:inherit; }
.article-content img {
    display:inline-block;
    max-width:100%;
    height:auto;
    border-radius:14px;
    margin:1.5em 0;
    box-shadow:0 12px 36px rgba(13,17,23,.08);
}
.article-content iframe,
.article-content .ql-video {
    display:block;
    width:100%;
    max-width:100%;
    aspect-ratio:16/9;
    height:auto;
    border:0;
    border-radius:16px;
    margin:2em 0;
    background:#0D1117;
}
.article-content .ql-align-center,
.article-content [style*="text-align: center"] { text-align:center; }
.article-content .ql-align-right,
.article-content [style*="text-align: right"] { text-align:right; }
.article-content .ql-align-justify,
.article-content [style*="text-align: justify"] { text-align:justify; }
.article-content .ql-align-left,
.article-content [style*="text-align: left"] { text-align:left; }
.article-content .ql-size-small { font-size:.78em; }
.article-content .ql-size-large { font-size:1.35em; }
.article-content .ql-size-huge { font-size:1.8em;line-height:1.35; }
.article-content .ql-font-serif { font-family:Georgia,'Times New Roman',serif; }
.article-content .ql-font-monospace { font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace; }
.article-content .ql-indent-1 { padding-left:2em; }
.article-content .ql-indent-2 { padding-left:4em; }
.article-content .ql-indent-3 { padding-left:6em; }
.article-content .ql-indent-4 { padding-left:8em; }
.article-content li[data-list="checked"],
.article-content li[data-list="unchecked"] { list-style:none;position:relative; }
.article-content li[data-list="checked"]::before,
.article-content li[data-list="unchecked"]::before {
    position:absolute;
    left:-1.65em;
    top:.18em;
    width:1.05em;
    height:1.05em;
    border:1.5px solid rgba(13,17,23,.36);
    border-radius:3px;
    content:'';
}
.article-content li[data-list="checked"]::before {
    background:#0b7694;
    border-color:#0b7694;
    box-shadow:inset 0 0 0 3px #fff;
}
.article-content .ql-ui { display:none; }
.article-content figure { margin:2em 0;text-align:center; }
.article-content figcaption {
    margin-top:-1em;
    color:rgba(13,17,23,.52);
    font-family:'Poppins','Segoe UI',Arial,sans-serif;
    font-size:.78rem;
    line-height:1.55;
}
.article-content table { width:100%;border-collapse:collapse;margin:2em 0;font-family:'Poppins','Segoe UI',Arial,sans-serif;font-size:.88rem; }
.article-content th,.article-content td { border:1px solid rgba(13,17,23,.12);padding:10px 12px;text-align:left; }
.article-content th { background:rgba(13,17,23,.045);font-weight:700; }

@media(max-width:620px){
    .article-content .ql-indent-2,.article-content .ql-indent-3,.article-content .ql-indent-4{padding-left:2em}
    .article-content iframe,.article-content .ql-video{border-radius:10px}
}

/* =========================================================
   v4 — Article wrapping + portfolio-style journal chrome
   Prevent rich-editor HTML from ever forcing horizontal overflow.
========================================================= */

/* --- Minimal top navigation, matching the full portfolio behavior --- */
.journal-simple-nav {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    min-height: 84px;
    padding: 20px clamp(22px, 5vw, 80px);
    display: flex;
    align-items: center;
    justify-content: space-between;
    box-sizing: border-box;
    z-index: 1002;
    pointer-events: none;
}

.journal-back-home,
.journal-menu-toggle {
    pointer-events: auto;
}

.journal-back-home {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    color: #0D1117 !important;
    text-decoration: none;
    font-family: 'Poppins','Segoe UI',Arial,sans-serif;
    font-size: .78rem;
    line-height: 1;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    transition: color .22s ease, transform .22s ease;
}

.journal-back-home:hover {
    color: var(--coral) !important;
    transform: translateX(-2px);
}

.journal-menu-toggle {
    width: 48px;
    height: 48px;
    border: 0;
    background: transparent;
    padding: 11px 7px;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 6px;
    position: relative;
    z-index: 1004;
}

.journal-menu-toggle span {
    display: block;
    width: 100%;
    height: 1.5px;
    background: #0D1117;
    transform-origin: center;
    transition: transform .28s ease, opacity .2s ease, background .2s ease;
}

.journal-menu-toggle.is-open span { background: #fff; }
.journal-menu-toggle.is-open span:nth-child(1) { transform: translateY(7.5px) rotate(45deg); }
.journal-menu-toggle.is-open span:nth-child(2) { opacity: 0; }
.journal-menu-toggle.is-open span:nth-child(3) { transform: translateY(-7.5px) rotate(-45deg); }

.journal-menu-overlay {
    position: fixed;
    inset: 0;
    z-index: 1001;
    background: #0D1117;
    color: #fff;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-12px);
    transition: opacity .3s ease, visibility .3s ease, transform .35s cubic-bezier(.22,1,.36,1);
    display: grid;
    place-items: center;
    padding: 110px 28px 48px;
}

.journal-menu-overlay.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: none;
}

.journal-menu-inner {
    width: min(980px, 100%);
    display: grid;
    grid-template-columns: minmax(0,1.2fr) minmax(240px,.8fr);
    gap: clamp(40px, 8vw, 110px);
    align-items: end;
}

.journal-menu-links {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.journal-menu-links a {
    color: #fff !important;
    text-decoration: none;
    font-family: 'Montserrat','Segoe UI',Arial,sans-serif;
    font-size: clamp(2.5rem, 6vw, 5.6rem);
    line-height: 1.04;
    font-weight: 800;
    letter-spacing: -.055em;
    transition: color .2s ease, transform .2s ease;
}

.journal-menu-links a:hover,
.journal-menu-links a.active {
    color: var(--coral) !important;
    transform: translateX(7px);
}

.journal-menu-contact {
    padding-bottom: 8px;
    color: rgba(255,255,255,.62);
    font-size: .8rem;
    line-height: 1.75;
}

.journal-menu-contact strong {
    display: block;
    color: #fff;
    font-family: 'Montserrat','Segoe UI',Arial,sans-serif;
    font-size: 1.15rem;
    line-height: 1.35;
    margin-bottom: 16px;
}

.journal-menu-contact a {
    color: #fff !important;
    text-decoration: none;
    overflow-wrap: anywhere;
}

body.journal-menu-open { overflow: hidden !important; }

/* the old website-like blog header/footer are intentionally removed in v4 */
.blog-nav,
.blog-footer { display: none !important; }

/* leave enough breathing room below the minimal top controls */
.journal-hero { padding-top: 135px; }
.article-page { padding-top: 82px; }

/* --- Bulletproof article wrapping / responsive rich content --- */
.article-content-wrap,
.article-content {
    min-width: 0;
    max-width: 100%;
}

.article-content {
    width: 100%;
    overflow-x: hidden;
    overflow-wrap: anywhere;
    word-wrap: break-word;
    word-break: normal;
    white-space: normal;
}

.article-content p,
.article-content div:not(.ql-code-block-container),
.article-content span,
.article-content a,
.article-content h1,
.article-content h2,
.article-content h3,
.article-content h4,
.article-content h5,
.article-content h6,
.article-content li,
.article-content blockquote,
.article-content figcaption,
.article-content th,
.article-content td {
    max-width: 100%;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    word-wrap: break-word !important;
    word-break: break-word;
}

.article-content img,
.article-content video,
.article-content iframe,
.article-content .ql-video,
.article-content figure,
.article-content svg,
.article-content canvas {
    max-width: 100% !important;
}

.article-content figure {
    width: 100%;
    min-width: 0;
}

.article-content pre,
.article-content .ql-code-block-container {
    max-width: 100%;
    white-space: pre-wrap !important;
    overflow-wrap: anywhere !important;
    word-break: break-word;
    overflow-x: hidden !important;
}

.article-content table {
    width: 100% !important;
    max-width: 100%;
    table-layout: fixed;
}

.article-content th,
.article-content td {
    min-width: 0;
}

/* Imported content can carry fixed pixel widths. Never let them escape the article column. */
.article-content [style*="width"],
.article-content [width] {
    max-width: 100% !important;
}

@media (max-width: 900px) {
    .journal-simple-nav {
        min-height: 74px;
        padding: 15px 20px;
    }
    .journal-menu-inner {
        grid-template-columns: 1fr;
        gap: 42px;
        align-items: start;
    }
    .journal-menu-contact { max-width: 440px; }
    .journal-hero { padding-top: 115px; }
    .article-page { padding-top: 72px; }
}

@media (max-width: 620px) {
    .journal-back-home { font-size: .7rem; }
    .journal-menu-toggle { width: 44px; height: 44px; }
    .journal-menu-overlay { padding: 100px 22px 35px; }
    .journal-menu-links a { font-size: clamp(2.35rem, 14vw, 4.2rem); }
    .article-content-wrap { width: calc(100% - 32px); }
    .article-content {
        font-size: 1rem;
        line-height: 1.82;
    }
}
