:root{--ink:#1c2f33;--muted:#607276;--teal:#2f7478;--deep:#164f54;--sky:#dceef0;--cream:#f7f4ec;--white:#fff;--line:#d8e2df;--accent:#e9a66c;--shadow:0 18px 50px rgba(17,52,55,.12)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--white);font-family:"DM Sans",sans-serif;font-size:16px;line-height:1.65}img{display:block;width:100%;object-fit:cover}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}.skip-link{position:fixed;top:-4rem;left:1rem;z-index:20;background:var(--ink);color:#fff;padding:.7rem 1rem}.skip-link:focus{top:1rem}.site-header{height:82px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(1.25rem,5vw,5.5rem);position:relative;z-index:10;background:rgba(255,255,255,.96);border-bottom:1px solid rgba(28,47,51,.08)}.brand{display:flex;align-items:center;gap:.65rem;font-family:"Playfair Display",serif;font-size:1.3rem;font-weight:600;letter-spacing:-.02em}.brand em,.footer-brand em{font-weight:600;color:var(--teal)}.brand-mark{width:32px;height:32px;display:grid;place-items:center;border:1px solid var(--teal);border-radius:50%;color:var(--teal)}.site-nav{display:flex;gap:clamp(1rem,2.3vw,2.25rem);align-items:center;font-size:.92rem;font-weight:500}.site-nav a{position:relative}.site-nav a:after{content:"";position:absolute;left:0;right:100%;bottom:-.35rem;height:1px;background:var(--teal);transition:right .2s}.site-nav a:hover:after,.site-nav a:focus-visible:after{right:0}.menu-button{display:none;border:1px solid var(--line);background:#fff;padding:.5rem .8rem;border-radius:99px;color:var(--ink)}
.hero{min-height:calc(100vh - 82px);position:relative;display:grid;align-items:end;color:#fff;overflow:hidden}.hero img{position:absolute;inset:0;height:100%}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,31,35,.76),rgba(6,31,35,.18) 70%),linear-gradient(0deg,rgba(6,31,35,.34),transparent 60%)}.hero-content{position:relative;z-index:1;width:min(760px,90vw);padding:0 0 clamp(4rem,10vh,8rem) clamp(1.25rem,8vw,8rem)}.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:.75rem;font-weight:600;margin:0 0 1.2rem}.hero h1,.page-hero h1,.article-hero h1{font-family:"Playfair Display",serif;font-size:clamp(3.5rem,8vw,7.4rem);line-height:.98;letter-spacing:-.045em;margin:0 0 1.5rem}.hero h1 em{display:block;font-weight:600}.hero p{font-size:clamp(1.05rem,2vw,1.3rem);max-width:620px;margin:0 0 2rem;color:rgba(255,255,255,.9)}.button{display:inline-flex;align-items:center;gap:.7rem;padding:.85rem 1.15rem;border:1px solid currentColor;border-radius:3px;text-transform:uppercase;letter-spacing:.1em;font-size:.76rem;font-weight:600}.button:after{content:"→";font-size:1rem}.button.solid{background:var(--deep);color:#fff;border-color:var(--deep)}
.section{padding:clamp(4.5rem,9vw,8rem) clamp(1.25rem,7vw,7rem)}.section-head{display:flex;justify-content:space-between;gap:2rem;align-items:end;margin-bottom:2.5rem}.section-head h2,.intro-copy h2,.newsletter h2,.collab h2{font:600 clamp(2.5rem,5vw,4.7rem)/1.05 "Playfair Display",serif;letter-spacing:-.035em;margin:0}.section-head p{max-width:470px;color:var(--muted);margin:0}.intro{display:grid;grid-template-columns:minmax(260px,.8fr) 1.2fr;gap:clamp(2rem,7vw,7rem);align-items:center;background:var(--cream)}.portrait-wrap{position:relative;max-width:470px}.portrait-wrap img{aspect-ratio:4/5}.portrait-wrap:after{content:"Montréal, Canada";position:absolute;right:-1.2rem;bottom:1.4rem;background:var(--white);padding:.65rem .9rem;font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;box-shadow:var(--shadow)}.intro-copy .eyebrow{color:var(--teal)}.intro-copy p{font-size:1.08rem;color:var(--muted);max-width:650px}.signature{font:italic 600 1.8rem "Playfair Display",serif;color:var(--teal)}
.post-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:1.5rem}.post-card{grid-column:span 4;border-top:1px solid var(--line);padding-top:1rem}.post-card.featured{grid-column:span 6}.post-card img{aspect-ratio:16/10;margin-bottom:1.3rem}.post-card.featured img{aspect-ratio:16/11}.post-meta{color:var(--teal);text-transform:uppercase;letter-spacing:.12em;font-size:.7rem;font-weight:600}.post-card h3{font:600 clamp(1.35rem,2.3vw,2rem)/1.2 "Playfair Display",serif;margin:.65rem 0}.post-card p{color:var(--muted);margin:.75rem 0 1.2rem}.text-link{color:var(--deep);font-weight:600;font-size:.86rem;border-bottom:1px solid var(--teal);padding-bottom:.2rem}
.newsletter{background:var(--deep);color:#fff;display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center}.newsletter p{color:#c6dfe0;max-width:480px}.newsletter-form{display:grid;grid-template-columns:1fr 1fr auto;gap:.7rem}.newsletter-form input{min-width:0;background:transparent;color:#fff;border:1px solid rgba(255,255,255,.35);padding:.9rem 1rem}.newsletter-form input::placeholder{color:#c6dfe0}.newsletter-form button{border:0;background:var(--accent);color:#1c2f33;padding:0 1.25rem;font-weight:600;cursor:pointer}.form-note{font-size:.76rem;grid-column:1/-1;margin:.2rem 0 0!important}.themes{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.theme-card{min-height:430px;position:relative;display:flex;align-items:end;overflow:hidden;color:#fff}.theme-card img{position:absolute;inset:0;height:100%;transition:transform .5s}.theme-card:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(10,36,39,.82),transparent 68%)}.theme-card:hover img{transform:scale(1.025)}.theme-card div{position:relative;z-index:1;padding:1.7rem}.theme-card h3{font:600 2.1rem/1.1 "Playfair Display",serif;margin:0 0 .7rem}.theme-card p{margin:0;color:rgba(255,255,255,.86)}.collab{text-align:center;background:var(--sky)}.collab p{color:var(--muted);max-width:560px;margin:1.2rem auto 1.7rem}
.page-hero{padding:clamp(5rem,10vw,9rem) clamp(1.25rem,7vw,7rem) 4rem;background:var(--cream)}.page-hero h1{font-size:clamp(3.5rem,8vw,7rem);color:var(--deep);max-width:1000px}.page-hero p{font-size:1.15rem;color:var(--muted);max-width:650px}.archive-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2.2rem}.archive-grid .post-card{grid-column:auto}.article-hero{position:relative;min-height:72vh;color:#fff;display:flex;align-items:end}.article-hero img{position:absolute;inset:0;height:100%}.article-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(9,37,41,.84),rgba(9,37,41,.05) 80%)}.article-hero>div{position:relative;z-index:1;padding:4rem clamp(1.25rem,8vw,8rem);max-width:1050px}.article-hero h1{font-size:clamp(3rem,7vw,6rem)}.article-body{max-width:760px;margin:auto;padding:5rem 1.25rem;font-family:"DM Sans",sans-serif;font-size:1.08rem}.article-body h2{font:600 2.5rem/1.15 "Playfair Display",serif;margin:3.2rem 0 1rem}.article-body p{color:#40575b}.article-body .lede{font:600 1.55rem/1.45 "Playfair Display",serif;color:var(--ink)}.about-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2rem,7vw,7rem);align-items:start}.about-layout img{aspect-ratio:4/5;position:sticky;top:2rem}.about-copy h2{font:600 2.7rem/1.15 "Playfair Display",serif}.about-copy p{color:var(--muted);font-size:1.08rem}.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:4rem}.contact-form{display:grid;gap:1rem}.contact-form label{font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;font-weight:600}.contact-form input,.contact-form textarea{display:block;width:100%;border:0;border-bottom:1px solid var(--line);padding:.8rem 0;background:transparent}.contact-form textarea{min-height:140px;resize:vertical}.site-footer{padding:4rem clamp(1.25rem,7vw,7rem) 2rem;background:#102f33;color:#fff}.footer-brand{font:600 1.7rem "Playfair Display",serif}.site-footer>p{color:#a9c4c6}.footer-links{display:flex;flex-wrap:wrap;gap:1.5rem;margin:2.5rem 0}.footer-bottom{display:flex;justify-content:space-between;border-top:1px solid rgba(255,255,255,.15);padding-top:1.3rem;color:#a9c4c6;font-size:.8rem}.empty-note{padding:1rem;border-left:3px solid var(--accent);background:var(--cream);color:var(--muted)}
@media(max-width:900px){.menu-button{display:block}.site-nav{display:none;position:absolute;top:82px;left:0;right:0;background:#fff;padding:1.5rem;flex-direction:column;align-items:flex-start;border-bottom:1px solid var(--line)}.site-nav.open{display:flex}.intro,.newsletter,.about-layout,.contact-grid{grid-template-columns:1fr}.post-card,.post-card.featured{grid-column:span 6}.themes,.archive-grid{grid-template-columns:1fr 1fr}.newsletter-form{grid-template-columns:1fr 1fr}.newsletter-form button{min-height:48px;grid-column:1/-1}.about-layout img{position:static;max-height:650px}.hero-content{padding-left:1.25rem}}
@media(max-width:620px){.site-header{height:70px}.brand{font-size:1.08rem}.brand-mark{width:28px;height:28px}.site-nav{top:70px}.hero{min-height:78vh}.hero h1{font-size:3.25rem}.section-head{display:block}.section-head p{margin-top:1rem}.post-grid{display:block}.post-card{margin-bottom:2.5rem}.themes,.archive-grid{grid-template-columns:1fr}.theme-card{min-height:390px}.newsletter-form{grid-template-columns:1fr}.newsletter-form button{grid-column:auto}.footer-bottom{display:block}.footer-bottom a{display:block;margin-top:.5rem}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.article-body h3{font:600 1.7rem/1.25 "Playfair Display",serif;margin:2.5rem 0 .8rem}.article-body li{color:#40575b}.article-body a{color:var(--deep);text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:.18em}.article-body img{height:auto;margin:2rem 0;border-radius:2px}.article-body figure{margin:2rem 0}.article-body iframe{max-width:100%}.article-body .elementor-section,.article-body .elementor-container,.article-body .elementor-column,.article-body .elementor-widget-wrap{display:block!important;width:100%!important}.article-body .elementor-widget{margin:0!important}

/* Discovering with Grace brand system */
:root{--ink:#173e43;--muted:#587176;--teal:#1f919e;--deep:#176a73;--sky:#d9eff1;--cream:#ececeb;--line:#d4dddd;--accent:#f5d0cc;--shadow:0 18px 50px rgba(23,106,115,.14)}
body{font-family:"Lato",sans-serif}.hero h1,.page-hero h1,.article-hero h1,.section-head h2,.intro-copy h2,.newsletter h2,.collab h2,.post-card h3,.theme-card h3,.article-body h2,.article-body h3,.about-copy h2,.footer-brand{font-family:"Montserrat",sans-serif}.signature{font-family:"Lato",sans-serif}.brand{display:flex;align-items:center;flex:0 0 auto}.brand img{width:220px;height:44px;object-fit:cover;object-position:center}.footer-brand{display:inline-block;background:transparent;padding:0;border-radius:0}.footer-brand img{width:240px;height:48px;object-fit:cover;object-position:center}.site-nav{gap:clamp(.8rem,1.8vw,1.8rem)}.nav-group{position:relative}.nav-parent{display:flex;align-items:center;gap:.1rem}.submenu-toggle{border:0;background:transparent;color:var(--ink);padding:.3rem;cursor:pointer;line-height:1}.submenu{display:none;position:absolute;top:calc(100% + 1rem);left:-1rem;min-width:230px;background:#fff;border-top:3px solid var(--teal);box-shadow:var(--shadow);padding:.55rem}.submenu a{display:block;padding:.65rem .75rem;white-space:nowrap}.submenu a:after{display:none}.submenu a:hover,.submenu a:focus-visible{background:var(--cream);color:var(--deep)}.nav-group:hover .submenu,.nav-group:focus-within .submenu,.nav-group.submenu-open .submenu{display:block}
@media(max-width:900px){.brand img{width:190px;height:38px}.nav-group{width:100%}.nav-parent{justify-content:space-between}.submenu{position:static;min-width:0;box-shadow:none;border-top:0;border-left:2px solid var(--teal);margin:.35rem 0 .7rem;padding:.15rem 0 .15rem .6rem}.nav-group:hover .submenu,.nav-group:focus-within .submenu{display:none}.nav-group.submenu-open .submenu{display:block}}
@media(max-width:620px){.brand img{width:165px;height:33px}.footer-brand img{width:205px;height:41px}}

/* WordPress theme integration */
.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{clip:auto!important;width:auto;height:auto;top:1rem;left:1rem;padding:.7rem 1rem;background:var(--deep);color:#fff;z-index:10000}.site-menu,.site-menu ul,.footer-links{list-style:none;margin:0;padding:0}.site-menu{display:flex;gap:clamp(.8rem,1.8vw,1.8rem);align-items:center}.site-menu>li{position:relative}.site-menu .menu-item-has-children{display:grid;grid-template-columns:auto auto;align-items:center}.site-menu .sub-menu{display:none;position:absolute;z-index:20;top:calc(100% + 1rem);left:-1rem;min-width:230px;background:#fff;border-top:3px solid var(--teal);box-shadow:var(--shadow);padding:.55rem}.site-menu .sub-menu li{display:block}.site-menu .sub-menu a{display:block;padding:.65rem .75rem;white-space:nowrap}.site-menu .menu-item-has-children:hover>.sub-menu,.site-menu .menu-item-has-children:focus-within>.sub-menu,.site-menu .submenu-open>.sub-menu{display:block}.post-card-image{display:block;margin-bottom:1.2rem}.post-card-image img{aspect-ratio:4/3;height:auto}.entry-content img{height:auto}.entry-content a{text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:.18em}.pagination-wrap{padding:0 clamp(1.25rem,7vw,7rem) 5rem}.nav-links{display:flex;gap:.75rem;justify-content:center}.page-numbers{padding:.55rem .8rem;border:1px solid var(--line)}.page-numbers.current{background:var(--deep);color:#fff}.newsletter-embed>*{max-width:100%}.site-footer .footer-brand{background:transparent;padding:0}.footer-links{display:flex;flex-wrap:wrap;gap:1.5rem;margin:2.5rem 0}.footer-links li{margin:0}
@media(max-width:900px){.site-menu{width:100%;flex-direction:column;align-items:flex-start}.site-menu>li{width:100%}.site-menu .menu-item-has-children{grid-template-columns:1fr auto}.site-menu .sub-menu{position:static;grid-column:1/-1;min-width:0;box-shadow:none;border-top:0;border-left:2px solid var(--teal);margin:.35rem 0 .7rem;padding:.15rem 0 .15rem .6rem}.site-menu .menu-item-has-children:hover>.sub-menu,.site-menu .menu-item-has-children:focus-within>.sub-menu{display:none}.site-menu .menu-item-has-children.submenu-open>.sub-menu{display:block}}

/* Readability and resilient media */
.hero:after{background:linear-gradient(90deg,rgba(23,62,67,.9),rgba(23,62,67,.42) 72%),linear-gradient(0deg,rgba(23,62,67,.58),transparent 62%)}
.hero-content{text-shadow:0 2px 18px rgba(8,34,38,.58)}
.hero .button{background:rgba(23,62,67,.5);text-shadow:none}
.theme-card:after{background:linear-gradient(0deg,rgba(23,62,67,.94) 0%,rgba(23,62,67,.72) 42%,rgba(23,62,67,.18) 82%)}
.theme-card h3,.theme-card p{text-shadow:0 2px 14px rgba(8,34,38,.72)}
.site-footer .footer-brand img{filter:brightness(0) invert(1);opacity:.94}

/* One consistent, image-free article heading for current and future posts */
.article-hero--plain{display:block;min-height:0;padding:clamp(4.5rem,9vw,7.5rem) clamp(1.25rem,8vw,8rem) clamp(3.5rem,7vw,5.5rem);background:var(--cream);color:var(--deep)}
.article-hero--plain:after{display:none}
.article-hero--plain h1{max-width:1050px;font-size:clamp(2.7rem,6vw,5.6rem);line-height:1.04;margin-bottom:1.4rem}
.article-hero--plain .eyebrow{color:var(--teal)}
.article-hero--plain .article-date{margin:0;color:var(--muted);font-size:1rem}
.single-post .article-body h1,.single-post .article-body .elementor-widget-theme-post-title,.single-post .article-body .elementor-widget-theme-post-featured-image{display:none!important}

/* Keep one title header on Elementor-built landing pages. */
.page .article-body > .elementor > .elementor-section.dwg-duplicate-page-hero{display:none!important}

/* Static featured image used by the Elementor-free article template. */
.article-feature-image{background:var(--cream)}
.article-feature-image img{width:100%;height:clamp(320px,58vw,720px);object-fit:cover}

/* Keep desktop submenu hover paths continuous and clickable. */
@media(min-width:901px){.submenu,.site-menu .sub-menu{top:100%;margin-top:0}}

@media(max-width:760px){.post-card,.post-card.featured{grid-column:1/-1}.themes{grid-template-columns:1fr}.theme-card{min-height:360px}.hero-content{width:94vw}.article-hero--plain{padding-top:3.5rem}}

/* Keep all display headings aligned with the approved editorial preview. */
.hero h1,.page-hero h1,.article-hero h1,.section-head h2,.intro-copy h2,.newsletter h2,.collab h2,.post-card h3,.theme-card h3,.article-body h2,.article-body h3,.about-copy h2,.footer-brand{font-family:"Playfair Display",serif}
.elementor-location-single .elementor-widget-theme-post-title h1{font-family:"Playfair Display",serif!important;font-weight:600!important;line-height:1.04!important;letter-spacing:-.035em}

/* Guarantee brand-white typography over every homepage photograph. */
.home .hero .hero-content h1,.home .hero .hero-content h1 em,.home .hero .hero-content p,.home .hero .hero-content .button,.home .theme-card h3,.home .theme-card p{color:#fff!important;opacity:1!important}

/* Elementor-free legacy content and landing pages. */
.landing-posts{padding-top:3.5rem}.landing-posts .pagination-wrap{padding:3rem 0 0}.entry-content>p:first-child{margin-top:0}.entry-content figure,.entry-content>img{margin:2rem 0}.entry-content ul,.entry-content ol{padding-left:1.35rem;color:#40575b}.entry-content li+li{margin-top:.55rem}.about-copy .button{margin-top:1rem}.contact-grid h2{font:600 clamp(2.2rem,5vw,3.6rem)/1.1 "Playfair Display",serif;margin:.4rem 0 1.2rem}.contact-grid>div>p{color:var(--muted)}.contact-socials{display:flex;flex-wrap:wrap;gap:.8rem 1.3rem;margin-top:1.5rem}.contact-socials a{text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:.2em}.contact-form .button{width:max-content;margin-top:.6rem}.contact-honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}.form-status{padding:1rem 1.15rem;border-left:4px solid var(--teal);background:var(--cream)}.form-status--error{border-left-color:#a34b43}
