/*
Theme Name: The Lantern
Theme URI: https://thelanternnc.com
Author: Jenn / The Lantern
Description: Custom theme for The Lantern, an Appalachian ritual workshop, journal, library, and shop.
Version: 1.1.0
Requires at least: 6.4
Requires PHP: 8.0
Text Domain: lantern-theme
License: GPL-2.0-or-later
*/
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400&family=Source+Sans+3:wght@400;500;600;700&display=swap');

:root{--lantern-paper:#f4efe5;--lantern-paper-dark:#e7dece;--lantern-ink:#26231f;--lantern-muted:#6c655b;--lantern-green:#4f5c49;--lantern-rust:#81573d;--lantern-line:rgba(38,35,31,.16);--lantern-white:#fffdf8;--lantern-max:1240px;--lantern-serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;--lantern-sans:"Source Sans 3",Arial,Helvetica,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--lantern-paper);color:var(--lantern-ink);font-family:var(--lantern-sans);line-height:1.65}img{max-width:100%;height:auto}a{color:inherit}.screen-reader-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.site-shell{width:min(calc(100% - 40px),var(--lantern-max));margin-inline:auto}.site-header{position:sticky;top:0;z-index:100;background:rgba(244,239,229,.96);backdrop-filter:blur(10px);border-bottom:1px solid var(--lantern-line)}.site-header-inner{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:28px}.site-branding{display:flex;align-items:center;gap:14px}.site-title{margin:0;font-family:var(--lantern-serif);font-size:2rem;font-weight:500;line-height:1}.site-title a{text-decoration:none}.custom-logo{max-height:52px;width:auto}.primary-navigation ul{display:flex;flex-wrap:wrap;gap:22px;align-items:center;margin:0;padding:0;list-style:none}.primary-navigation a{text-decoration:none;font-size:.9rem;font-weight:700;letter-spacing:.04em}.primary-navigation a:hover,.primary-navigation .current-menu-item>a{color:var(--lantern-rust)}.menu-toggle{display:none;border:1px solid var(--lantern-line);background:transparent;padding:10px 12px}.site-main{min-height:60vh}.content-shell{width:min(calc(100% - 40px),900px);margin:0 auto;padding:80px 0}.entry-header{margin-bottom:36px}.entry-title{margin:0 0 14px;font-family:var(--lantern-serif);font-size:clamp(2.5rem,7vw,5rem);font-weight:500;line-height:1.05}.entry-meta{color:var(--lantern-muted);font-size:.9rem}.entry-content{font-size:1.08rem}.entry-content h2,.entry-content h3,.entry-content h4{font-family:var(--lantern-serif);font-weight:500;line-height:1.15}.archive-header{padding:84px 0 42px;border-bottom:1px solid var(--lantern-line)}.archive-title{margin:0;font-family:var(--lantern-serif);font-size:clamp(3rem,8vw,6rem);font-weight:500}.archive-grid{width:min(calc(100% - 40px),var(--lantern-max));margin:0 auto;padding:60px 0 90px;display:grid;grid-template-columns:repeat(3,1fr);gap:26px}.archive-card{border:1px solid var(--lantern-line);background:rgba(255,255,255,.35)}.archive-card-image{display:block;min-height:260px;overflow:hidden;background:var(--lantern-paper-dark)}.archive-card-image img{width:100%;height:100%;object-fit:cover}.archive-card-body{padding:24px}.archive-card h2{margin:0 0 10px;font-family:var(--lantern-serif);font-size:1.8rem;font-weight:500}.archive-card h2 a{text-decoration:none}.pagination{grid-column:1/-1;margin-top:24px}.site-footer{background:var(--lantern-ink);color:var(--lantern-white);padding:64px 0 28px}.site-footer-grid{display:grid;grid-template-columns:1.2fr .8fr .8fr;gap:50px}.site-footer h2,.site-footer h3{font-family:var(--lantern-serif);font-weight:500}.site-footer ul{margin:0;padding:0;list-style:none}.site-footer li+li{margin-top:8px}.site-info{margin-top:48px;padding-top:22px;border-top:1px solid rgba(255,255,255,.18);color:rgba(255,255,255,.68);font-size:.86rem}@media(max-width:860px){.menu-toggle{display:inline-flex}.primary-navigation{display:none;position:absolute;left:0;right:0;top:100%;background:var(--lantern-paper);border-bottom:1px solid var(--lantern-line);padding:20px}.primary-navigation.is-open{display:block}.primary-navigation ul{display:grid;gap:12px}.archive-grid{grid-template-columns:repeat(2,1fr)}.site-footer-grid{grid-template-columns:1fr}}@media(max-width:600px){.site-shell,.content-shell,.archive-grid{width:min(calc(100% - 28px),var(--lantern-max))}.archive-grid{grid-template-columns:1fr}.site-title{font-size:1.65rem}}

/* The Lantern — Front Page */

.lantern-home-v2 {
    background: var(--lantern-paper);
    color: var(--lantern-ink);
}

.lantern-home-v2 h1,
.lantern-home-v2 h2,
.lantern-home-v2 h3 {
    margin-top: 0;
    font-family: var(--lantern-serif);
    font-weight: 500;
    line-height: 1.02;
}

.lantern-shell {
    width: min(calc(100% - 40px), var(--lantern-max));
    margin-inline: auto;
}

.lantern-intro {
    min-height: 72vh;
    display: flex;
    align-items: center;
    padding: 72px 0 56px;
    border-bottom: 1px solid var(--lantern-line);
    background:
        linear-gradient(rgba(244, 239, 229, .94), rgba(244, 239, 229, .94)),
        repeating-linear-gradient(
            90deg,
            transparent 0,
            transparent 89px,
            rgba(38, 35, 31, .045) 90px
        );
}

.lantern-intro-inner {
    width: min(calc(100% - 40px), 1160px);
    margin: 0 auto;
    text-align: center;
}

.lantern-location,
.lantern-eyebrow,
.lantern-entry-date {
    margin: 0 0 16px;
    color: var(--lantern-rust);
    font-size: .76rem;
    font-weight: 700;
    letter-spacing: .17em;
    text-transform: uppercase;
}

.lantern-intro h1 {
    margin-bottom: 24px;
    font-size: clamp(5rem, 15vw, 11rem);
    letter-spacing: -.025em;
}

.lantern-pillars {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px 24px;
    margin: 0 auto 34px;
    color: var(--lantern-muted);
    font-family: var(--lantern-serif);
    font-size: clamp(1rem, 1.8vw, 1.3rem);
}

.lantern-pillars span:not(:last-child)::after {
    content: "•";
    margin-left: 24px;
    color: var(--lantern-rust);
}

.lantern-intro-copy {
    max-width: 760px;
    margin: 0 auto;
    font-family: var(--lantern-serif);
    font-size: clamp(1.25rem, 2.4vw, 1.75rem);
    color: #4a433a;
}

.lantern-enter {
    display: inline-flex;
    flex-direction: column;
    gap: 6px;
    align-items: center;
    margin-top: 44px;
    color: var(--lantern-ink);
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .14em;
    text-decoration: none;
    text-transform: uppercase;
}

.lantern-enter span:last-child {
    font-size: 1.25rem;
    transition: transform 160ms ease;
}

.lantern-enter:hover span:last-child {
    transform: translateY(4px);
}

.lantern-section {
    padding: 96px 0;
    border-bottom: 1px solid var(--lantern-line);
}

.lantern-bench-grid,
.lantern-latest-entry,
.lantern-object-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr);
    gap: clamp(44px, 8vw, 110px);
    align-items: center;
}

.lantern-bench-visual,
.lantern-latest-image,
.lantern-object-image {
    min-height: 520px;
    overflow: hidden;
    background: var(--lantern-paper-dark);
}

.lantern-bench-image,
.lantern-latest-image img,
.lantern-object-image img {
    width: 100%;
    height: 100%;
    min-height: 520px;
    object-fit: cover;
}

.lantern-photo-placeholder,
.lantern-image-fallback {
    width: 100%;
    min-height: 520px;
    display: grid;
    place-items: center;
    align-content: center;
    gap: 8px;
    padding: 40px;
    text-align: center;
    color: rgba(38, 35, 31, .48);
    background:
        radial-gradient(circle at 24% 20%, rgba(129, 87, 61, .18), transparent 30%),
        linear-gradient(145deg, #e8decd, #d3c5ae);
    font-family: var(--lantern-serif);
    font-size: 1.6rem;
}

.lantern-photo-placeholder small {
    font-family: var(--lantern-sans);
    font-size: .82rem;
}

.lantern-bench-copy h2,
.lantern-section-heading h2 {
    margin-bottom: 28px;
    font-size: clamp(3rem, 6vw, 5.5rem);
    letter-spacing: -.045em;
}

.lantern-current-list {
    margin: 28px 0 34px;
    padding: 0;
    list-style: none;
    border-top: 1px solid var(--lantern-line);
}

.lantern-current-list li {
    padding: 15px 0;
    border-bottom: 1px solid var(--lantern-line);
    font-family: var(--lantern-serif);
    font-size: 1.2rem;
}

.lantern-link-arrow {
    display: inline-flex;
    gap: 10px;
    align-items: center;
    color: var(--lantern-ink);
    font-weight: 700;
    text-decoration: none;
    text-underline-offset: 5px;
}

.lantern-link-arrow:hover {
    text-decoration: underline;
}

.lantern-paths {
    padding: 0;
    background: var(--lantern-ink);
    color: var(--lantern-white);
}

.lantern-path-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border-left: 1px solid rgba(255, 255, 255, .18);
}

.lantern-path {
    position: relative;
    min-height: 420px;
    padding: 42px;
    border-right: 1px solid rgba(255, 255, 255, .18);
    color: inherit;
    text-decoration: none;
    transition: background 180ms ease;
}

.lantern-path:hover {
    background: rgba(255, 255, 255, .055);
}

.lantern-path-number {
    display: block;
    margin-bottom: 90px;
    color: rgba(255, 255, 255, .48);
    font-size: .75rem;
    letter-spacing: .16em;
}

.lantern-path h2 {
    margin-bottom: 20px;
    font-size: clamp(2.8rem, 5vw, 4.6rem);
}

.lantern-path p {
    max-width: 31ch;
    color: rgba(255, 255, 255, .7);
}

.lantern-path-arrow {
    position: absolute;
    right: 34px;
    bottom: 30px;
    font-size: 1.5rem;
}

.lantern-section-heading {
    max-width: 860px;
    margin-bottom: 50px;
}

.lantern-latest-copy h3,
.lantern-object-copy h3 {
    margin-bottom: 24px;
    font-size: clamp(2.6rem, 5vw, 4.8rem);
    letter-spacing: -.04em;
}

.lantern-latest-copy h3 a,
.lantern-object-copy h3 a {
    text-decoration: none;
}

.lantern-latest-copy > p:not(.lantern-entry-date),
.lantern-object-copy > p:not(.lantern-entry-date) {
    font-size: 1.08rem;
}

.lantern-object-price {
    margin: 24px 0;
    font-family: var(--lantern-serif);
    font-size: 1.45rem;
}

.lantern-featured-object {
    background: var(--lantern-paper-dark);
}

.lantern-empty-state {
    opacity: .96;
}

@media (max-width: 900px) {
    .lantern-bench-grid,
    .lantern-latest-entry,
    .lantern-object-grid {
        grid-template-columns: 1fr;
    }

    .lantern-path-grid {
        grid-template-columns: 1fr;
        border-top: 1px solid rgba(255, 255, 255, .18);
    }

    .lantern-path {
        min-height: 300px;
        border-bottom: 1px solid rgba(255, 255, 255, .18);
    }

    .lantern-path-number {
        margin-bottom: 44px;
    }
}

@media (max-width: 640px) {
    .lantern-intro {
        min-height: 70vh;
        padding: 56px 0 44px;
    }

    .lantern-intro-inner,
    .lantern-shell {
        width: min(calc(100% - 28px), var(--lantern-max));
    }

    .lantern-intro h1 {
        font-size: clamp(4.4rem, 24vw, 6.4rem);
    }

    .lantern-pillars {
        display: grid;
        gap: 5px;
    }

    .lantern-pillars span::after {
        display: none;
    }

    .lantern-section {
        padding: 68px 0;
    }

    .lantern-bench-visual,
    .lantern-latest-image,
    .lantern-object-image,
    .lantern-bench-image,
    .lantern-latest-image img,
    .lantern-object-image img,
    .lantern-photo-placeholder,
    .lantern-image-fallback {
        min-height: 360px;
    }

    .lantern-path {
        padding: 30px 24px;
    }
}

/* =========================================================
   Typography System
   Display/headings: Cormorant Garamond
   Body/interface: Source Sans 3
   ========================================================= */

body{
    font-family:var(--lantern-sans);
    font-weight:400;
}

.site-title,
.entry-title,
.archive-title,
.archive-card h2,
.site-footer h2,
.site-footer h3,
.lantern-home-v2 h1,
.lantern-home-v2 h2,
.lantern-home-v2 h3,
.lantern-intro-copy,
.lantern-pillars,
.lantern-current-list li,
.lantern-photo-placeholder,
.lantern-image-fallback,
.lantern-object-price{
    font-family:var(--lantern-serif);
}

.site-title{
    font-weight:500;
    letter-spacing:.015em;
}

.lantern-intro h1{
    font-family:var(--lantern-serif);
    font-weight:500;
    letter-spacing:.005em;
    font-kerning:normal;
}

.lantern-bench-copy h2,
.lantern-section-heading h2{
    font-weight:500;
    letter-spacing:0;
}

.lantern-path h2{
    font-weight:500;
    letter-spacing:.005em;
}

.lantern-latest-copy h3,
.lantern-object-copy h3{
    font-weight:500;
    letter-spacing:0;
}

.entry-title,
.archive-title,
.archive-card h2{
    font-weight:500;
    letter-spacing:0;
}

.lantern-location,
.lantern-eyebrow,
.lantern-entry-date,
.lantern-enter,
.lantern-path-number,
.primary-navigation a{
    font-family:var(--lantern-sans);
}

.lantern-intro-copy{
    font-weight:400;
}

.lantern-pillars{
    font-weight:400;
}

@media(max-width:640px){
    .lantern-intro h1{
        letter-spacing:0;
    }
}

/* =========================================================
   Launch refinements: navigation, editorial content and
   transferred Cozy & Content layouts
   ========================================================= */

body.admin-bar .site-header{top:32px}

.site-header-inner{position:relative}
.primary-navigation .menu-item{position:relative}
.primary-navigation .menu-item-has-children>a{display:flex;align-items:center;gap:7px}
.primary-navigation .menu-item-has-children>a::after{content:"";width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg)}
.primary-navigation .sub-menu{position:absolute;z-index:20;top:calc(100% + 15px);left:-22px;width:250px;display:block;margin:0;padding:12px;background:var(--lantern-white);border:1px solid var(--lantern-line);box-shadow:0 18px 45px rgba(38,35,31,.12);opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .16s ease,transform .16s ease,visibility .16s ease}
.primary-navigation .sub-menu::before{content:"";position:absolute;left:0;right:0;bottom:100%;height:16px}
.primary-navigation .sub-menu li{width:100%}
.primary-navigation .sub-menu a{display:block;padding:10px 12px;font-size:.84rem;line-height:1.35;letter-spacing:.025em}
.primary-navigation .sub-menu a:hover,.primary-navigation .sub-menu .current-menu-item>a{background:var(--lantern-paper);color:var(--lantern-rust)}
.primary-navigation .menu-item-has-children:hover>.sub-menu,.primary-navigation .menu-item-has-children:focus-within>.sub-menu{opacity:1;visibility:visible;transform:translateY(0)}

.menu-toggle{align-items:center;gap:10px;color:var(--lantern-ink);font:700 .78rem/1 var(--lantern-sans);letter-spacing:.1em;text-transform:uppercase;cursor:pointer}
.menu-toggle-icon,.menu-toggle-icon::before,.menu-toggle-icon::after{display:block;width:19px;height:1px;background:currentColor;transition:transform .18s ease,opacity .18s ease}
.menu-toggle-icon{position:relative}
.menu-toggle-icon::before,.menu-toggle-icon::after{content:"";position:absolute;left:0}
.menu-toggle-icon::before{top:-6px}.menu-toggle-icon::after{top:6px}
.menu-toggle[aria-expanded="true"] .menu-toggle-icon{background:transparent}
.menu-toggle[aria-expanded="true"] .menu-toggle-icon::before{top:0;transform:rotate(45deg)}
.menu-toggle[aria-expanded="true"] .menu-toggle-icon::after{top:0;transform:rotate(-45deg)}

.entry-content>*{max-width:100%}
.entry-content>p,.entry-content>ul,.entry-content>ol,.entry-content>blockquote{max-width:72ch}
.entry-content p{margin:0 0 1.35em}
.entry-content h2{margin:2.2em 0 .65em;font-size:clamp(2rem,5vw,3.35rem)}
.entry-content h3{margin:1.8em 0 .55em;font-size:clamp(1.55rem,3.5vw,2.2rem)}
.entry-content h4{margin:1.6em 0 .5em;font-size:1.3rem}
.entry-content ul,.entry-content ol{margin:0 0 1.6em;padding-left:1.4em}
.entry-content li+li{margin-top:.45em}
.entry-content blockquote{margin:2.2em 0;padding:4px 0 4px 26px;border-left:3px solid var(--lantern-rust);color:#4a433a;font-family:var(--lantern-serif);font-size:1.35rem}
.entry-content hr{margin:3rem 0;border:0;border-top:1px solid var(--lantern-line)}
.entry-content figure{margin:2.2rem 0}
.entry-content figcaption{margin-top:.7rem;color:var(--lantern-muted);font-size:.86rem}
.entry-content iframe{max-width:100%}
.entry-content table{width:100%;margin:2rem 0;border-collapse:collapse;background:rgba(255,255,255,.25)}
.entry-content th,.entry-content td{padding:13px 15px;border:1px solid var(--lantern-line);text-align:left;vertical-align:top}
.entry-content th{background:var(--lantern-paper-dark);font-weight:700}
.entry-featured-image{margin:0 0 44px}
.entry-featured-image img{display:block;width:100%;max-height:680px;object-fit:cover}

.button,.wp-element-button,.wp-block-button__link,input[type="submit"],button[type="submit"]{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:12px 20px;border:1px solid var(--lantern-ink);border-radius:0;background:var(--lantern-ink);color:var(--lantern-white);font:700 .78rem/1.2 var(--lantern-sans);letter-spacing:.08em;text-decoration:none;text-transform:uppercase;cursor:pointer;transition:background .16s ease,color .16s ease,border-color .16s ease}
.button:hover,.wp-element-button:hover,.wp-block-button__link:hover,input[type="submit"]:hover,button[type="submit"]:hover{border-color:var(--lantern-rust);background:var(--lantern-rust);color:var(--lantern-white)}
.button-secondary,.is-style-outline>.wp-block-button__link{background:transparent;color:var(--lantern-ink)}
input[type="text"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="number"],select,textarea{width:100%;padding:12px 14px;border:1px solid var(--lantern-line);border-radius:0;background:var(--lantern-white);color:var(--lantern-ink);font:inherit}
textarea{min-height:150px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:2px solid var(--lantern-rust);outline-offset:2px}

.cozy-stack{display:grid;gap:34px}
.cozy-stack>h2{margin:34px 0 -8px}
.cozy-stack>p{margin:0}
.cozy-info-grid,.cozy-feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.cozy-feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.cozy-info-card,.cozy-feature-card{padding:26px;border:1px solid var(--lantern-line);background:rgba(255,255,255,.28)}
.cozy-info-card p,.cozy-feature-card p{margin:0}
.cozy-feature-card h3{margin:0 0 10px;font-size:1.7rem}
.cozy-label{margin-bottom:10px;color:var(--lantern-rust);font-size:.75rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase}
.cozy-button-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.cozy-visit-cta{margin-top:18px;padding:clamp(30px,6vw,58px);border:1px solid var(--lantern-line);background:var(--lantern-paper-dark)}
.cozy-visit-cta h2{margin:0 0 18px}
.cozy-visit-cta .cozy-button-row{margin-top:24px}

.wp-block-gallery{gap:12px}
.wp-block-separator{border-color:var(--lantern-line)}
.wp-block-cover{margin:2.5rem 0}
.alignwide{width:min(1100px,calc(100vw - 40px));max-width:none;margin-left:50%;transform:translateX(-50%)}
.alignfull{width:100vw;max-width:none;margin-left:50%;transform:translateX(-50%)}

@media(max-width:900px){
    body.admin-bar .site-header{top:46px}
    .site-header-inner{min-height:70px}
    .primary-navigation{max-height:calc(100vh - 70px);overflow-y:auto}
    .primary-navigation ul{display:grid;gap:0}
    .primary-navigation li{width:100%}
    .primary-navigation a{display:block;padding:12px 4px;font-size:.94rem}
    .primary-navigation .menu-item-has-children>a::after{display:none}
    .primary-navigation .sub-menu{position:static;width:auto;display:block;margin:0 0 8px 16px;padding:0 0 0 15px;border:0;border-left:1px solid var(--lantern-line);background:transparent;box-shadow:none;opacity:1;visibility:visible;transform:none}
    .primary-navigation .sub-menu a{padding:8px 4px;color:var(--lantern-muted);font-size:.86rem}
    .primary-navigation .sub-menu a:hover{background:transparent}
    .cozy-info-grid{grid-template-columns:1fr}
}

@media(max-width:640px){
    body.admin-bar .site-header{top:46px}
    .content-shell{padding:52px 0}
    .entry-header{margin-bottom:28px}
    .entry-title{font-size:clamp(2.7rem,15vw,4.2rem)}
    .entry-content{font-size:1rem}
    .cozy-feature-grid{grid-template-columns:1fr}
    .cozy-info-card,.cozy-feature-card{padding:22px}
    .cozy-button-row{align-items:stretch;flex-direction:column}
    .cozy-button-row .button{width:100%}
    .table-scroll{overflow-x:auto}
}

@media(max-width:782px){body.admin-bar .site-header{top:46px}}
@media(max-width:600px){body.admin-bar .site-header{top:0}}

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