/* TMJ Editorial: main styles. Palette and fonts also set in theme.json. */
:root{
 --cream:#fbf9f6;--sand:#f1ebe3;--line:#e8e1d8;--muted:#6b5d51;--body:#574d45;--ink:#2b2622;--white:#fff;
 --serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;
 --sans:Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
 --focus:#1f5fd6;--wrap:1280px;--pad:32px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
body{margin:0;font-family:var(--sans);font-size:16px;line-height:1.6;color:var(--ink);background:var(--cream);-webkit-font-smoothing:antialiased}
img,svg,video{max-width:100%;height:auto}
img{display:block}
a{color:inherit;text-underline-offset:4px}
a:hover{color:#000}
h1,h2,h3,h4,h5,h6{font-family:var(--serif);font-weight:500;line-height:1.1;color:var(--ink);margin:0 0 .5em}
h1{font-size:clamp(40px,5vw,64px);font-weight:400}
h2{font-size:clamp(30px,3.4vw,46px)}
h3{font-size:clamp(22px,2vw,28px)}
h4{font-size:22px}h5,h6{font-size:19px}
p{margin:0 0 1em}
.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.screen-reader-text:focus{position:static!important;width:auto;height:auto;clip:auto;margin:0;overflow:visible}
.skip-link{position:absolute;left:-9999px;top:8px;z-index:1000;padding:12px 18px;background:var(--ink);color:var(--cream);font-weight:600;text-decoration:none}
.skip-link:focus{left:8px}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.site-footer :focus-visible{outline-color:#9cc0ff}
main:focus{outline:0}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--pad)}

/* Buttons */
.btn,.wp-block-button__link,button.btn,input[type=submit],.search-form button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 28px;font:600 15px/1.2 var(--sans);letter-spacing:.02em;text-decoration:none;background:var(--ink);color:var(--cream);border:1px solid var(--ink);border-radius:0;cursor:pointer}
.btn:hover,.wp-block-button__link:hover,input[type=submit]:hover,.search-form button:hover{background:#000;color:#fff}
.btn.ghost,.is-style-outline .wp-block-button__link{background:transparent;color:var(--ink)}
.btn.ghost:hover{background:var(--ink);color:var(--cream)}
.btns{display:flex;flex-wrap:wrap;gap:14px 22px;align-items:center}
.lnk{display:inline-flex;align-items:center;min-height:44px;font-size:14px;letter-spacing:.06em;color:var(--ink);text-decoration:underline;text-underline-offset:6px}
.eyebrow{font-size:12px;letter-spacing:.28em;text-transform:uppercase;color:var(--muted);margin:0 0 18px}

/* Forms */
input[type=text],input[type=email],input[type=tel],input[type=password],input[type=search],input[type=number],input[type=url],select,textarea{font:inherit;color:var(--ink);background:#fff;border:1px solid #b9ab9b;border-radius:0;min-height:48px;padding:10px 14px;width:100%;max-width:100%}
textarea{min-height:140px}
input:focus,select:focus,textarea:focus{border-color:var(--ink)}
label{font-weight:500}
.search-form{display:flex;gap:10px;max-width:560px;margin:20px 0}

/* Header */
.site-header{position:sticky;top:0;z-index:50;background:rgba(251,249,246,.97);border-bottom:1px solid var(--line)}
.admin-bar .site-header{top:32px}
@media (max-width:782px){.admin-bar .site-header{top:0;position:relative}}
.hwrap{max-width:var(--wrap);margin:0 auto;display:flex;align-items:center;gap:28px;padding:10px var(--pad);min-height:72px}
.brand{flex-shrink:0;display:inline-flex;flex-direction:column;justify-content:center;min-height:44px;text-decoration:none;font-family:var(--serif);font-weight:500;font-size:26px;line-height:1.1;color:var(--ink)}
.brand small{display:block;font-family:var(--sans);font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--muted);margin-top:2px}
.brand-logo img{max-height:56px;width:auto}
.mainnav{flex:1;display:flex;justify-content:center}
.mainnav ul,.mnav ul{list-style:none;margin:0;padding:0}
.mainnav>ul{display:flex;gap:4px}
.mainnav li{position:relative}
.mainnav a{display:inline-flex;align-items:center;min-height:44px;padding:10px 12px;font-size:14px;color:#4a413a;text-decoration:none}
.mainnav a:hover,.mainnav .current-menu-item>a,.mainnav .current_page_item>a{color:#000;text-decoration:underline}
.mainnav .sub-menu{display:none;position:absolute;left:0;top:100%;min-width:220px;background:var(--cream);border:1px solid var(--line);padding:6px;box-shadow:0 8px 24px rgba(0,0,0,.08)}
.mainnav li:hover>.sub-menu,.mainnav li:focus-within>.sub-menu{display:block}
.mainnav .sub-menu a{display:flex;width:100%}
.hicons{display:flex;align-items:center;gap:4px}
.hsearch{display:flex;align-items:center;border:1px solid #d9cfc3;border-radius:999px;padding-left:14px;background:#fff}
.hsearch input[type=search]{border:0;background:transparent;width:150px;min-height:42px;padding:0}
.hsearch button,.iconbtn{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;border:0;background:transparent;color:var(--ink);cursor:pointer;position:relative;text-decoration:none;padding:0}
.cart .count{position:absolute;top:5px;right:3px;font-size:11px;min-width:18px;height:18px;border-radius:9px;display:flex;align-items:center;justify-content:center;background:var(--ink);color:#fff;font-weight:600}
.mnav{display:none;position:relative}
.mnav summary{list-style:none;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;cursor:pointer}
.mnav summary::-webkit-details-marker{display:none}
.mnav-panel{position:absolute;left:0;top:50px;background:var(--cream);border:1px solid var(--line);min-width:260px;padding:8px;box-shadow:0 12px 28px rgba(0,0,0,.14)}
.mnav-panel a{display:flex;align-items:center;min-height:48px;padding:10px 12px;text-decoration:none;font-size:16px}
.mnav-panel .sub-menu{padding-left:14px}
.mnav-search{display:flex;align-items:center;gap:4px;margin:4px 4px 8px;border:1px solid #d9cfc3;background:#fff;padding-left:12px}
.mnav-search input[type=search]{border:0;min-height:44px;padding:0;background:transparent;flex:1;min-width:0}
@media (max-width:1100px){.mainnav{display:none}.mnav{display:block}.hwrap{gap:14px}.brand{flex:1}.hsearch input[type=search]{width:120px}}
@media (max-width:700px){:root{--pad:18px}.hwrap{min-height:64px;gap:6px}.brand{font-size:21px}.hsearch{display:none}.hicons{gap:0}.mnav-panel{position:fixed;left:0;right:0;top:64px;min-width:0;max-height:calc(100vh - 64px);overflow:auto;border-left:0;border-right:0}}

/* Generic page layout */
.page-head{padding-top:72px;padding-bottom:24px;max-width:calc(760px + 2*var(--pad))}
.page-title{margin:0 0 12px}
.entry-content{max-width:calc(760px + 2*var(--pad));padding-bottom:96px;color:var(--body);font-size:17px}
.entry-content h2,.entry-content h3,.entry-content h4{color:var(--ink);margin-top:1.6em}
.entry-content .alignwide{max-width:var(--wrap);margin-left:calc(50% - 50vw + var(--pad));margin-right:0;width:auto}
.entry-content .alignfull{margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);max-width:100vw;width:100vw}
.entry-content img{height:auto}
.entry-content ul,.entry-content ol{padding-left:1.3em}
.entry-content a{color:var(--ink)}
.entry-content a.btn,.entry-content .wp-block-button__link{color:var(--cream);text-decoration:none}
.entry-content a.btn.ghost,.entry-content .is-style-outline .wp-block-button__link{color:var(--ink)}
.entry-content a.btn:hover,.entry-content a.btn.ghost:hover{color:var(--cream)}
.entry-content .wp-block-image img,.entry-content figure img{width:100%}
.entry-thumb img{width:100%;max-height:560px;object-fit:cover}
.entry-foot{padding-bottom:64px}
.archive-desc{color:var(--body)}
.post-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:40px 24px;padding-bottom:96px}
.post-card a{text-decoration:none;display:block}
.post-card-img{aspect-ratio:4/3;overflow:hidden;background:var(--sand);margin-bottom:14px}
.post-card-img img{width:100%;height:100%;object-fit:cover}
.post-card h2{font-size:24px}
.post-card p{color:var(--body);margin:0}
.nav-links{display:flex;gap:8px;flex-wrap:wrap;padding:24px 0 96px}
.nav-links a,.nav-links span{display:inline-flex;min-width:44px;min-height:44px;align-items:center;justify-content:center;padding:0 12px;border:1px solid var(--line);text-decoration:none}
.nav-links .current{background:var(--ink);color:#fff}
.notfound{padding-bottom:110px}
.gallery,.wp-block-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}
.gallery-item{margin:0}.gallery-item img{width:100%;aspect-ratio:1/1;object-fit:cover}

/* Content blocks used by the rebuilt pages */
.tmj-lede{font-size:20px;color:var(--body);max-width:640px}
.tmj-split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;margin:48px 0}
.tmj-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:28px;margin:32px 0}
.tmj-card{background:#fff;border:1px solid var(--line);padding:24px}
.tmj-card h3{margin-top:0}
/* Photo rows in rebuilt pages: equal square tiles, cropped to fill. */
.tmj-gallery,.tmj-cards:has(>figure){grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.tmj-cards>figure,.tmj-gallery>figure{margin:0;min-width:0}
.entry-content .tmj-cards>figure img,.entry-content .tmj-gallery>figure img{display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:cover}
@media (max-width:520px){.tmj-gallery,.tmj-cards:has(>figure){gap:8px}}
.tmj-note{font-size:14px;color:var(--muted)}
.tmj-contact{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:28px;margin:24px 0 40px}
.tmj-contact h2{font-size:26px;margin:0 0 10px}
.tmj-contact p{margin:0 0 6px;overflow-wrap:anywhere}
@media (max-width:800px){.tmj-split{grid-template-columns:1fr;gap:28px}}

/* Homepage */
.hero{display:grid;grid-template-columns:1fr 1.15fr;min-height:640px;max-width:1440px;margin:0 auto}
.hero-txt{padding:96px 64px 64px max(var(--pad),calc((100vw - var(--wrap))/2 + var(--pad)));display:flex;flex-direction:column;justify-content:center}
.hero h1{font-size:68px;line-height:1.02;margin:0 0 24px}
.hero .lede{max-width:430px;color:var(--body);font-size:17px;margin:0 0 36px}
.hero-img{background:var(--sand)}
.hero-img img{width:100%;height:100%;object-fit:cover}
.band{padding:110px 0}
.band-tight{padding-top:0}
.shead{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:44px}
.shead h2{margin:0;line-height:1.05}
.cats{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.cat{text-decoration:none;display:block}
.cat .ci{aspect-ratio:3/4;overflow:hidden;background:var(--sand)}
.cat img,.pimg img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.cat:hover img,.pcard a:hover .pimg img{transform:scale(1.04)}
.cat h3{font-size:26px;margin:16px 0 0}
.cat span{font-size:13px;color:var(--muted)}
.pgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:48px 24px}
.pcard a{text-decoration:none;display:block}
.pimg{aspect-ratio:1/1;overflow:hidden;background:var(--sand)}
.pinfo{padding-top:14px}
.pinfo h3{font-size:22px;margin:6px 0 4px}
.pcat{display:block;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.price{font-size:15px;color:var(--ink)}
.custom{background:var(--sand)}
.custom-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:80px;align-items:center}
.custom h2{font-size:50px;line-height:1.05;margin:0 0 20px}
.custom p{color:var(--body);max-width:440px;margin:0 0 32px}
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:16px;counter-reset:step}
.steps li{counter-increment:step}
.steps figure{margin:0}
.steps img{aspect-ratio:3/4;object-fit:cover;width:100%}
.steps figcaption{font-size:13px;margin-top:10px;color:#4a413a}
.steps figcaption::before{content:counter(step) ". "}
.events{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:64px 0}
.evrow{display:grid;grid-template-columns:minmax(220px,1fr) 2fr auto;gap:32px;align-items:center}
.evrow h2{font-size:34px;margin:0}
.evrow p{margin:0;color:var(--body)}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:96px;align-items:center}
.about-grid img{aspect-ratio:4/5;object-fit:cover;width:100%}
.about p{color:var(--body)}
.trust{padding:56px 0;background:#fff;border-top:1px solid #eee5da}
.trust-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:32px}
.trust h3{font-family:var(--sans);font-size:13px;letter-spacing:.14em;text-transform:uppercase;margin:0 0 6px;font-weight:600}
.trust p{margin:0;font-size:14px;color:var(--muted)}
@media (max-width:1000px){
 .hero{grid-template-columns:1fr;min-height:0}.hero-txt{padding:56px var(--pad)}.hero-img{height:480px;order:-1}
 .cats,.pgrid{grid-template-columns:repeat(2,1fr)}
 .custom-grid,.about-grid{grid-template-columns:1fr;gap:40px}
 .evrow{grid-template-columns:1fr;gap:16px}
 .trust-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:700px){
 .band{padding:64px 0}.band-tight{padding-top:0}
 .hero-txt{padding:40px var(--pad) 48px}.hero h1{font-size:44px}.hero-img{height:380px}
 .custom h2{font-size:34px}
 .shead{flex-direction:column;align-items:flex-start;margin-bottom:28px}
 .pgrid{gap:32px 14px}.pinfo h3{font-size:18px}.cats{gap:14px}.cat h3{font-size:21px}.steps{gap:8px}
 .page-head{padding-top:44px}
}

/* Footer */
.site-footer{background:var(--ink);color:#e9e1d7}
.site-footer a{color:#e9e1d7}
.site-footer a:hover{color:#fff}
.fwrap{max-width:var(--wrap);margin:0 auto;display:grid;grid-template-columns:1.4fr 1.4fr 1fr 1fr;gap:32px;padding:56px var(--pad) 24px}
.fbrand{font-family:var(--serif);font-size:26px;margin:0 0 8px}
.fhead{font-family:var(--sans);font-size:13px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:#cdbfad;margin:0 0 12px}
.fwrap p{margin:0 0 8px}
.fmenu{list-style:none;margin:0;padding:0}
.fmenu a,.fwrap p a{display:inline-flex;align-items:center;min-height:44px}
.fwrap p:has(>a){margin:0}
.copy{max-width:var(--wrap);margin:0 auto;padding:16px var(--pad) 32px;font-size:13px;color:#bfb2a2;border-top:1px solid #443b34}
@media (max-width:700px){.fwrap{grid-template-columns:1fr 1fr}.fwrap a{word-break:break-word}}
@media (max-width:440px){.fwrap{grid-template-columns:1fr}}

/* Old Divi leftovers shown through the fixes plugin */
.tmj-divi-section{margin:0 0 32px}
.tmj-divi-row{display:flex;flex-wrap:wrap;gap:32px;margin:0 0 24px}
.tmj-divi-col{flex:1 1 260px;min-width:0}
.tmj-divi-header{padding:32px 0}

.brand-mark{flex-direction:row;align-items:center;gap:12px}
.brand-mark img{width:44px;height:44px;flex:none}
.brand-text{display:flex;flex-direction:column;justify-content:center}
.fbrand{display:flex;align-items:center;gap:12px}
.fmark{width:36px;height:36px;filter:brightness(1.05)}
@media (max-width:700px){.brand-mark img{width:36px;height:36px}.brand-mark{gap:8px}}
.fmark{background:#f6f1ea;border-radius:8px;padding:4px;box-sizing:content-box}
