*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cc-cream);color:var(--cc-primary);font-family:var(--cc-font-family);line-height:1.8;-webkit-font-smoothing:antialiased}
body.is-scroll-locked{overflow:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none;transition:color var(--cc-transition),background-color var(--cc-transition),transform var(--cc-transition),opacity var(--cc-transition)}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
h1,h2,h3,h4,h5,h6{margin:0 0 1rem;color:var(--cc-primary);font-weight:700;line-height:1.45}
p{margin:0 0 1rem}
ul,ol{padding-inline-start:1.3rem}
svg{display:block;max-width:100%}
.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,.skip-link:focus{clip:auto!important;width:auto;height:auto;z-index:100000;top:8px;right:8px;padding:.65rem 1rem;background:#fff;color:#111;border-radius:.5rem}
:focus-visible{outline:3px solid color-mix(in srgb,var(--cc-teal) 60%,white);outline-offset:3px}
::selection{background:var(--cc-peach);color:var(--cc-primary)}
.entry-content{color:var(--cc-cocoa);font-size:1rem;line-height:2;text-align:justify}
.entry-content h2{font-size:1.5rem}.entry-content h3{font-size:1.2rem;margin-top:1.5rem}.entry-content a{color:var(--cc-teal);font-weight:700}.entry-content img{border-radius:var(--cc-radius-md)}
.entry-content blockquote{border-inline-start:4px solid var(--cc-accent);margin:1.5rem 0;padding:1rem 1.25rem;background:#fff;border-radius:var(--cc-radius-sm)}

/* 1.5.24 — site-wide responsive safety rails. */
html,body{max-width:100%;overflow-x:clip}
.site-main,.site-header,.site-footer,.cc-container,.entry-content{min-width:0;max-width:100%}
img,video,canvas,iframe,embed,object,svg{max-width:100%}
input,select,textarea,button{max-width:100%}
.entry-content,.cc-content-card,.cc-page-card,.cc-guide-content{overflow-wrap:anywhere}

/* 1.5.39 — restrained site-wide font-weight hierarchy. */
body{font-weight:var(--cc-font-weight-regular)}
:where(h1,h2,h3,h4,h5,h6,strong,b){font-weight:var(--cc-font-weight-bold)}
:where(.cc-button,button,input[type="submit"],input[type="button"]){font-weight:var(--cc-font-weight-semibold)}

/* 1.5.46 — semantic typography baseline. Component titles keep their own
 * named role below, but content typography is consistent site-wide. */
body{font-size:var(--cc-type-copy);line-height:var(--cc-line-copy)}
h1{font-size:var(--cc-type-h1);line-height:var(--cc-line-heading)}
h2{font-size:var(--cc-type-h2);line-height:var(--cc-line-heading)}
h3{font-size:var(--cc-type-h3);line-height:var(--cc-line-heading)}
h4{font-size:var(--cc-type-h4);line-height:var(--cc-line-heading)}
h5,h6{font-size:var(--cc-type-ui);line-height:var(--cc-line-heading)}
p,li,dd,dt,address{line-height:var(--cc-line-copy)}
.entry-content{font-size:var(--cc-type-copy);line-height:var(--cc-line-copy)}
.entry-content h2{font-size:var(--cc-type-h2);line-height:var(--cc-line-heading)}
.entry-content h3{font-size:var(--cc-type-h3);line-height:var(--cc-line-heading)}
.entry-content h4{font-size:var(--cc-type-h4);line-height:var(--cc-line-heading)}
