:root{
    --cream:#EFE7DA; --ivory:#F7F2E9; --paper:#FBFAF6;
    --walnut:#473829; --walnut-soft:#6E5942; --espresso:#2A2017;
    --brass:#AC8447; --brass-bright:#C7A567;
    --serif:'Cormorant Garamond',Georgia,serif;
    --sans:'Jost',-apple-system,sans-serif;
  }
  *{margin:0;padding:0;box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{background:var(--cream);color:var(--walnut);font-family:var(--sans);font-weight:300;-webkit-font-smoothing:antialiased;overflow-x:hidden}
  img{display:block;width:100%;height:100%;object-fit:cover}
  .eyebrow{font-family:var(--sans);font-weight:400;font-size:.7rem;letter-spacing:.38em;text-transform:uppercase;color:var(--brass)}
  .cta{display:inline-block;font-family:var(--sans);font-weight:400;font-size:.78rem;letter-spacing:.3em;text-transform:uppercase;color:var(--ivory);text-decoration:none;border:1px solid rgba(247,242,233,.55);padding:1.05em 2.6em;border-radius:2px;transition:all .5s ease;background:transparent}
  .cta:hover{background:var(--ivory);color:var(--walnut);border-color:var(--ivory)}
  .seal{width:60px;height:60px;border:1px solid var(--brass);border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-weight:400;font-size:1.75rem;color:var(--brass);position:relative}
  .seal::after{content:"";position:absolute;inset:5px;border:1px solid rgba(172,132,71,.35);border-radius:50%}

  /* HERO */
  .hero{position:relative;height:100vh;min-height:600px;display:flex;align-items:flex-end;justify-content:center;text-align:center;overflow:hidden}
  .hero__media{position:absolute;inset:0;z-index:0}
  .hero__media img{transform:scale(1.05);animation:slowzoom 20s ease-out forwards}
  @keyframes slowzoom{to{transform:scale(1)}}
  .hero__scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(42,32,23,.34) 0%,rgba(42,32,23,0) 26%,rgba(42,32,23,0) 52%,rgba(42,32,23,.66) 100%)}
  .hero__inner{position:relative;z-index:2;color:var(--ivory);padding:0 24px 8vh;max-width:900px;display:flex;flex-direction:column;align-items:center}
  .hero .seal{border-color:rgba(231,219,200,.7);color:var(--ivory);margin-bottom:32px}
  .hero .seal::after{border-color:rgba(231,219,200,.4)}
  .hero .eyebrow{color:rgba(247,242,233,.85);margin-bottom:26px}
  .wordmark{font-family:var(--serif);font-weight:300;line-height:.92;font-size:clamp(4.4rem,15vw,10rem);text-shadow:0 2px 40px rgba(42,32,23,.4)}
  .wordmark__sub{display:block;font-size:clamp(.9rem,2.4vw,1.3rem);font-family:var(--sans);font-weight:300;letter-spacing:.46em;text-transform:uppercase;margin-top:18px;text-indent:.46em;color:rgba(247,242,233,.92)}
  .hero__line{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(1.15rem,2.6vw,1.55rem);margin:30px 0 38px;color:rgba(247,242,233,.95)}
  .scrollcue{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);z-index:2;font-family:var(--sans);font-size:.6rem;letter-spacing:.34em;text-transform:uppercase;color:rgba(247,242,233,.7);writing-mode:vertical-rl}
  .scrollcue::after{content:"";display:block;width:1px;height:42px;background:rgba(247,242,233,.5);margin:12px auto 0}

  /* STATEMENT (type only) */
  .statement{max-width:740px;margin:0 auto;padding:clamp(96px,16vh,180px) 28px;text-align:center}
  .statement .eyebrow{margin-bottom:34px}
  .statement__lead{font-family:var(--serif);font-weight:300;font-size:clamp(2.2rem,5.5vw,3.7rem);line-height:1.12}
  .statement__lead em{font-style:italic;color:var(--brass)}
  .statement__body{font-size:clamp(1rem,1.6vw,1.1rem);line-height:1.95;color:var(--walnut-soft);max-width:500px;margin:32px auto 0}

  /* SPLIT (reused, alternating sides) */
  .split{display:grid;grid-template-columns:1fr 1fr;align-items:stretch;min-height:80vh}
  .split__text{display:flex;flex-direction:column;justify-content:center;padding:clamp(48px,7vw,108px)}
  .split--ivory .split__text{background:var(--ivory)}
  .split__text .eyebrow{margin-bottom:28px}
  .split__text h2{font-family:var(--serif);font-weight:300;font-size:clamp(2rem,4vw,3rem);line-height:1.14;margin-bottom:26px}
  .split__text p{font-size:1.05rem;line-height:1.95;color:var(--walnut-soft);max-width:36ch}
  .split__list{list-style:none;margin-top:36px;border-top:1px solid rgba(172,132,71,.3)}
  .split__list li{padding:16px 0;border-bottom:1px solid rgba(172,132,71,.18);font-family:var(--serif);font-size:1.45rem;font-weight:300;display:flex;align-items:baseline;gap:16px}
  .split__list li span{font-family:var(--sans);font-size:.62rem;letter-spacing:.26em;text-transform:uppercase;color:var(--brass);font-weight:400}
  .split__media{position:relative;min-height:54vh}
  .split--flip .split__media{order:-1}

  /* DETAIL band (texture, full-bleed thin) */
  .detail{position:relative;height:58vh;min-height:340px;overflow:hidden;display:flex;align-items:center;justify-content:flex-end}
  .detail__media{position:absolute;inset:0;z-index:0}
  .detail__media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(42,32,23,.05),rgba(42,32,23,.45) 78%)}
  .detail__caption{position:relative;z-index:1;color:var(--ivory);padding:0 clamp(28px,7vw,110px);max-width:430px;text-align:right}
  .detail__caption p{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(1.5rem,3vw,2.2rem);line-height:1.3}

  /* APPOINTMENT (type led, dark) */
  .appt{background:var(--espresso);color:var(--ivory);text-align:center;padding:clamp(96px,16vh,190px) 28px}
  .appt .eyebrow{color:var(--brass-bright);margin-bottom:30px}
  .appt h2{font-family:var(--serif);font-weight:300;font-size:clamp(2.2rem,5vw,3.6rem);line-height:1.16;margin-bottom:26px;max-width:680px;margin-left:auto;margin-right:auto}
  .appt p{font-size:1.06rem;line-height:1.9;color:rgba(247,242,233,.82);max-width:470px;margin:0 auto}

  /* CONTACT */
  .contact{position:relative;background:var(--cream);text-align:center;padding:clamp(96px,15vh,170px) 28px 60px}
  .contact .seal{margin:0 auto 38px}
  .contact .eyebrow{margin-bottom:26px}
  .contact h2{font-family:var(--serif);font-weight:300;font-size:clamp(2.2rem,4.5vw,3.2rem);margin-bottom:42px;line-height:1.15}
  .contact .cta{color:var(--walnut);border-color:rgba(71,56,41,.4)}
  .contact .cta:hover{background:var(--walnut);color:var(--ivory);border-color:var(--walnut)}
  .contact__foot{margin-top:84px;padding-top:34px;border-top:1px solid rgba(172,132,71,.3);display:flex;flex-direction:column;gap:9px;align-items:center}
  .contact__brand{font-family:var(--serif);font-size:1.3rem;font-weight:300;letter-spacing:.04em}
  .contact__credit{position:absolute;right:18px;bottom:13px;font-family:var(--sans);font-size:.56rem;letter-spacing:.2em;text-transform:uppercase;color:var(--walnut-soft);opacity:.38;text-decoration:none;transition:opacity .3s ease}
  .contact__credit:hover{opacity:.85}

  .reveal{opacity:0;transform:translateY(26px);transition:opacity 1.1s ease,transform 1.1s cubic-bezier(.2,.7,.2,1)}
  .reveal.in{opacity:1;transform:none}
  @media(max-width:820px){
    .split{grid-template-columns:1fr}
    .split__media{min-height:60vh;order:-1}
    .split--flip .split__media{order:-1}
    .detail{justify-content:center}
    .detail__caption{text-align:center}
    .detail__media::after{background:rgba(42,32,23,.4)}
  }
  @media(prefers-reduced-motion:reduce){
    .hero__media img{animation:none;transform:none}
    .reveal{opacity:1;transform:none;transition:none}
    html{scroll-behavior:auto}
  }

  /* ===================================================================
     FSE block-wrapper reconciliation + theme chrome (header/footer),
     accessibility, and content typography. Appended for the block theme;
     the design above (ported from reference/waves-landing.html) is intact.
     =================================================================== */

  /* Strip native block flow gap so the component CSS controls all spacing */
  :where(.wp-block-group),:where(.wp-block-group) > *{margin:0}

  /* --- Media blocks fill their containers (hero / split / detail) --- */
  .hero__media .wp-block-image,.hero__media figure,
  .split__media .wp-block-image,.split__media figure,
  .detail__media .wp-block-image,.detail__media figure{margin:0;width:100%;height:100%}
  .hero__media figure,.split__media figure,.detail__media figure{display:block}
  .hero__media img,.split__media img,.detail__media img{width:100%;height:100%;object-fit:cover}

  /* The image-block group wrappers inherit their parent's absolute/relative box */
  .hero__media,.detail__media{display:block}

  /* --- CTA: make the Button block read as .cta regardless of wrapper --- */
  .wp-block-buttons{display:flex;justify-content:center;margin:0}
  .wp-block-button.cta{margin:0}
  .wp-block-button.cta .wp-block-button__link{
    display:inline-block;background:transparent;color:var(--ivory);
    border:1px solid rgba(247,242,233,.55);border-radius:2px;
    padding:1.05em 2.6em;
    font-family:var(--sans);font-weight:400;font-size:.78rem;letter-spacing:.3em;text-transform:uppercase;
    line-height:1;transition:all .5s ease;
  }
  .wp-block-button.cta .wp-block-button__link:hover,
  .wp-block-button.cta .wp-block-button__link:focus{background:var(--ivory);color:var(--walnut);border-color:var(--ivory)}
  .contact .wp-block-button.cta .wp-block-button__link,
  .page-main .wp-block-button.cta .wp-block-button__link{color:var(--walnut);border-color:rgba(71,56,41,.4)}
  .contact .wp-block-button.cta .wp-block-button__link:hover,
  .contact .wp-block-button.cta .wp-block-button__link:focus,
  .page-main .wp-block-button.cta .wp-block-button__link:hover,
  .page-main .wp-block-button.cta .wp-block-button__link:focus{background:var(--walnut);color:var(--ivory);border-color:var(--walnut)}

  /* Heading block default class is cosmetic only; component rules above style it */
  .wp-block-heading{font-weight:inherit}

  /* --- Accessibility: skip link + screen-reader text + focus --- */
  .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}
  .skip-link{position:absolute;left:8px;top:-64px;z-index:1000;background:var(--espresso);color:var(--ivory);padding:10px 18px;border-radius:2px;font-family:var(--sans);font-size:.75rem;letter-spacing:.1em;text-decoration:none;transition:top .2s ease}
  .skip-link:focus{top:8px;color:var(--ivory)}
  a:focus-visible,button:focus-visible,input:focus-visible,
  .wp-block-button__link:focus-visible,.wp-block-navigation a:focus-visible{outline:2px solid var(--brass);outline-offset:3px}
  .hero a:focus-visible,.site-header a:focus-visible,.site-footer a:focus-visible,
  .appt a:focus-visible,.detail a:focus-visible{outline-color:var(--brass-bright)}

  /* --- Global site header (template part) --- */
  .site-header{position:absolute;top:0;left:0;right:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px clamp(20px,5vw,56px);background:transparent}
  .site-header .wp-block-navigation{gap:clamp(20px,3vw,40px)}
  .site-header__brand,.site-header__brand a{font-family:var(--serif);font-weight:400;font-size:1.5rem;letter-spacing:.02em;color:var(--ivory);text-decoration:none}
  .site-header .wp-block-navigation a{font-family:var(--sans);font-weight:400;font-size:.7rem;letter-spacing:.28em;text-transform:uppercase;color:rgba(247,242,233,.85);text-decoration:none}
  .site-header .wp-block-navigation a:hover{color:var(--brass-bright)}
  /* Inner pages (anything that isn't the homepage): solid bar, dark ink */
  body:not(.home) .site-header{position:relative;background:var(--ivory);border-bottom:1px solid rgba(172,132,71,.3)}
  body:not(.home) .site-header__brand,body:not(.home) .site-header__brand a{color:var(--walnut)}
  body:not(.home) .site-header .wp-block-navigation a{color:var(--walnut-soft)}
  body:not(.home) .site-header .wp-block-navigation a:hover{color:var(--brass)}

  /* --- Global site footer (template part) --- */
  .site-footer{position:relative;background:var(--espresso);color:var(--ivory);text-align:center;padding:clamp(48px,8vh,80px) 28px 56px}
  .site-footer__inner{display:flex;flex-direction:column;align-items:center;gap:14px}
  .site-footer__brand{font-family:var(--serif);font-size:1.3rem;font-weight:300;letter-spacing:.04em;color:var(--ivory)}
  .site-footer__nav{justify-content:center;gap:clamp(18px,3vw,34px)}
  .site-footer__nav a{font-family:var(--sans);font-weight:400;font-size:.66rem;letter-spacing:.26em;text-transform:uppercase;color:rgba(247,242,233,.75);text-decoration:none}
  .site-footer__nav a:hover{color:var(--brass-bright)}
  .site-footer__byline{font-family:var(--sans);font-size:.7rem;letter-spacing:.14em;color:rgba(247,242,233,.62)}
  .site-footer__byline a{color:rgba(247,242,233,.85)}
  .site-footer .contact__credit{color:rgba(247,242,233,.5);opacity:.6}
  .site-footer .contact__credit:hover{opacity:1;color:var(--brass-bright)}

  /* --- Content typography for Pages / Posts / archives --- */
  .page-main{padding:clamp(120px,18vh,180px) clamp(20px,5vw,40px) clamp(80px,12vh,120px)}
  .entry,.archive-head,.post-list{max-width:760px;margin-left:auto;margin-right:auto}
  .entry__title,.archive-head .entry__title{font-family:var(--serif);font-weight:300;font-size:clamp(2.4rem,5vw,3.6rem);line-height:1.12;color:var(--walnut);margin:0 0 .55em}
  .entry__eyebrow{margin-bottom:18px;display:block}
  .entry__content > *{margin-bottom:1.4em}
  .entry__content > *:last-child{margin-bottom:0}
  .wp-block-post-content p,.entry__content p{font-size:1.05rem;line-height:1.95;color:var(--walnut-soft);margin:0 0 1.4em}
  .wp-block-post-content h2{font-family:var(--serif);font-weight:300;font-size:clamp(1.8rem,3.5vw,2.6rem);line-height:1.16;color:var(--walnut);margin:1.6em 0 .5em}
  .wp-block-post-content h3{font-family:var(--serif);font-weight:400;font-size:clamp(1.4rem,2.6vw,1.9rem);color:var(--walnut);margin:1.4em 0 .4em}
  .wp-block-post-content a{color:var(--brass);text-decoration:underline;text-underline-offset:3px}
  .wp-block-post-content ul,.wp-block-post-content ol{margin:0 0 1.4em;padding-left:1.4em;color:var(--walnut-soft);line-height:1.95}
  .wp-block-post-content li{margin:.3em 0}
  .wp-block-post-content img,.wp-block-post-content .wp-block-image{margin:2em auto;border-radius:2px}
  .wp-block-post-content blockquote{border-left:2px solid var(--brass);margin:2em 0;padding:.4em 0 .4em 1.4em;font-family:var(--serif);font-style:italic;font-size:1.4rem;color:var(--walnut)}
  .entry__terms{margin-top:48px;font-family:var(--sans);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--brass)}
  .entry__terms a{color:var(--brass);text-decoration:none}

  /* Archive / blog listing */
  .archive-head{text-align:center;margin-bottom:64px}
  .archive-head .eyebrow{margin-bottom:18px;display:block}
  .archive-head__desc{color:var(--walnut-soft);line-height:1.9;margin-top:14px}
  .archive-head__search{margin-top:24px}
  .post-list .wp-block-post-template{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:52px}
  .post-list .wp-block-post-template > li{margin:0}
  .post-list__title,.post-list__title a{font-family:var(--serif);font-weight:300;font-size:1.85rem;line-height:1.2;color:var(--walnut);text-decoration:none}
  .post-list__title a:hover{color:var(--brass)}
  .post-list .wp-block-post-date{font-family:var(--sans);font-size:.66rem;letter-spacing:.26em;text-transform:uppercase;color:var(--brass);margin-bottom:8px;display:block}
  .post-list .wp-block-post-excerpt{margin-top:12px}
  .post-list .wp-block-post-excerpt p{color:var(--walnut-soft);line-height:1.9}
  .post-list__pagination{margin-top:64px;display:flex;justify-content:space-between;gap:20px}
  .post-list__pagination a,.post-list__pagination .wp-block-query-pagination-numbers{color:var(--brass);text-decoration:none}

  .error-404{text-align:left}

  /* --- Hero top-text legibility over light areas of the photo --- */
  .hero__scrim{
    background:linear-gradient(180deg,
      rgba(42,32,23,.60) 0%,
      rgba(42,32,23,.18) 20%,
      rgba(42,32,23,0)  44%,
      rgba(42,32,23,.24) 64%,
      rgba(42,32,23,.74) 100%);
  }
  .home .site-header__brand,
  .home .site-header__brand a,
  .home .site-header .wp-block-navigation a{
    text-shadow:0 1px 14px rgba(42,32,23,.65);
  }
  .hero .eyebrow{ color:var(--ivory); text-shadow:0 1px 16px rgba(42,32,23,.6); }
  .wordmark{ text-shadow:0 2px 30px rgba(42,32,23,.55), 0 1px 5px rgba(42,32,23,.4); }
  .hero__line{ text-shadow:0 1px 14px rgba(42,32,23,.5); }
