/*
 * These styles are outputted both of the frontend and backend of the site
 * Please note any changes you do make may also make changes to the WP backend default styles.
 * Edit with caution
 */

/* Root Variables */
:root { --border-radius: 0; --grid-gap: 4rem; --gutter: clamp(1.6rem, 4vw, 5.6rem); }


/* Default Margins */
.default-p { padding-top: clamp(2.5rem, 3vw, 5rem); padding-bottom: clamp(2.5rem, 3vw, 5rem); }
.default-m { margin-top: clamp(2.5rem, 3vw, 5rem); margin-bottom: clamp(2.5rem, 3vw, 5rem); }

* { box-sizing: border-box; }
img { max-width: 100%; vertical-align: middle; height: auto; }
.block-overlay-color { position: absolute; top: 0; left: 0; right: 0; bottom: 0; }
/* Grid */
.grid { display: grid; grid-gap: 4rem; }
@media screen and (max-width: 576px) {
	.grid { grid-template-columns: 1fr !important; }
}
/* Sections */

section:has([style*="background-image"]) { background-size: cover; background-position: center; position: relative; }
section.full-width .container,
.container.full-width { max-width: 100%; width: 100%; padding-left: 0rem; padding-right: 0rem; }
.container .container { padding: 0; }

/* Container */
section.narrow .container .grid { width: 80%; max-width: 80%; }
.container { width: calc(100% - (var(--gutter) * 2)); max-width: 132.8rem; margin: 0 auto; padding: 0rem; position: relative; }
.wp-admin .container { width: 97%; }
.container .container { padding: 0; margin: 0; width: 100%; }

/* Container widths (when using the override in Section settings on a block)*/
.width-20 { width: 20%; max-width: 20%; }
.width-25 { width: 25%; max-width: 25%; }
.width-30 { width: 30%; max-width: 30%; }
.width-33 { width: 33%; max-width: 33%; }
.width-40 { width: 40%; max-width: 40%; }
.width-50 { width: 50%; max-width: 50%; }
.width-60 { width: 60%; max-width: 60%; }
.width-66 { width: 66%; max-width: 66%; }
.width-70 { width: 70%; max-width: 70%; }
.width-75 { width: 75%; max-width: 75%; }
.width-80 { width: 80%; max-width: 80%; }
.width-85 { width: 85%; max-width: 85%; }
.width-90 { width: 90%; max-width: 90%; }
.width-100 { width: 100%; max-width: 100%; }
.auto { margin-left: auto !important; margin-right: auto !important; }

@media screen and (max-width: 576px) {
	.width-20,
    .width-25,
    .width-30,
    .width-33,
    .width-40,
    .width-50,
    .width-60,
    .width-66,
    .width-70,
    .width-75,
    .width-80,
    .width-85,
    .width-90,
    .width-100 { width: 90%; max-width: 90%; }
}

/* Block shapes */
.block-shape { position: relative; width: 100%; box-sizing: border-box; overflow: hidden; height: 10rem; }
.block-shape .triangle-shape { background-color: transparent !important; width: 0; height: 0; border-left: 50vw solid transparent; border-right: 50vw solid transparent; border-bottom: 10rem solid;  }
.block-shape .triangle-shape-bottom { background-color: transparent !important; width: 0; height: 0; border-left: 50vw solid transparent; border-right: 50vw solid transparent; border-top: 10rem solid;  }
.block-shape .curve-shape { height: 5rem; border: 0; width: 100%;  border-radius: 50% 50% 0 0; margin-top: 5rem;  }	 
.block-shape .curve-shape-bottom { height: 5rem; border: 0; width: 100%;  border-radius: 0 0 50% 50%; margin-bottom: 5rem;  }	 
.block-shape .tilt-shape { height: 10rem; border: 0; width: 120%; transform: rotate(2deg); margin-top: 5rem; position: relative; left: -5%; }	 
.block-shape .tilt-shape-bottom { height: 10rem; border: 0; width: 120%; transform: rotate(2deg); margin-bottom: 5rem; position: relative; top: -5rem; left: -5%;  }

.block-shape .small-triangle-shape { background-color: transparent !important; width: 0; height: 0; border-left: 10rem solid transparent; border-right: 10rem solid transparent; border-bottom: 5rem solid; position: absolute; bottom: 0; transform: translateX(-50%); left: 50%; }
.block-shape .small-triangle-shape-bottom { background-color: transparent !important; width: 0; height: 0; border-left: 10rem solid transparent; border-right: 10rem solid transparent; border-top: 5rem solid; border-bottom: 0; position: absolute; top: 0; transform: translateX(-50%); left: 50%;   }


/* Copy Column: numbered section heading (lf_section_heading) */
.lf-section-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.8rem 2rem; }
.lf-section-head .lf-number { flex: 0 0 auto; }

/* Copy Column: edit-mark button and its margin note */
.lf-edit { font: inherit; background: none; border: 0; padding: 0; margin: 0; cursor: pointer; }
.lf-edit:focus-visible { outline: 0.2rem solid var(--brand-1); outline-offset: 0.3rem; }
.lf-caret { font-family: var(--font-mono); font-size: 0.7em; color: var(--brand-1); vertical-align: super; line-height: 0; margin: 0 0.15em 0 0.05em; }
.lf-edit-note { margin-top: 1rem; opacity: 0; transition: opacity .15s ease; }
.lf-edit-note.is-open, :has(.lf-edit:hover) > .lf-edit-note, :has(.lf-edit:focus-visible) > .lf-edit-note { opacity: 1; }
@media (prefers-reduced-motion: reduce) { .lf-edit-note { transition: none; } }

/* Section Titles */
.section-title-area { margin-bottom: 5rem; }
.section-title-area .section-title {}

/* Broken Links */
.broken-link { position: relative; }
.broken-link:after { content: "HASH LINK"; float: left; width: 6rem; color: #fff; background: red; border-radius: 100rem; padding: 0rem 1rem; font-size: 1rem; position: absolute; left: 3.5rem; text-align: left; line-height: 3rem; }


/* Pagination */
.page-navigation { margin-top: 2rem; text-align: center; }

/* Captions */
p.wp-caption-text { background: var(--brand-2); padding: 1rem 2rem; box-sizing: border-box; display: inline-block; color: #fff; width: 100%; border-radius: var(--border-radius); }
div[id^="attachment_"] { max-width: 100% !important; width: 100% !important; }
div[id^="attachment_"] img { width: 100%; }
.alignleft .wp-caption-text,
.alignright .wp-caption-text { margin-bottom: 0 !important; }

/* Never Remove */
.wp-block { font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen-Sans, Ubuntu, Cantarell, Helvetica Neue, sans-serif; }
/* ===================================================================
 * Copy Column vertical rhythm
 * One spacing system for the homepage sections:
 *   [end of section]  --lf-gap  [3px rule, aligned to the container]  --lf-gap-inner  [heading]  --lf-gap-head  [content]
 * Applies when a section uses the default Padding Both setting, so other
 * padding choices in a block's settings still work.
 * =================================================================== */
:root {
	--lf-gap: clamp(5.6rem, 7vw, 10rem);
	--lf-gap-inner: clamp(3.2rem, 4vw, 5.6rem);
	--lf-gap-head: clamp(2.8rem, 3.4vw, 4.4rem);
	--lf-gap-hero-top: clamp(2.4rem, 3vw, 4rem);
}

/* Hero: tight under the masthead, full gap before the next section */
.toast-block.pbth.block-opening-column,
.toast-block.pbth.block-copy-column-hero { padding-top: var(--lf-gap-hero-top); padding-bottom: var(--lf-gap); }

/* Content sections: the heavy rule sits inside the container, lined up with the content */
.toast-block.pbth:is(.block-services-contents, .block-case-studies, .block-who-i-write-for, .block-about-note, .block-practical-details, .block-services-rows, .block-clips, .block-problem-index, .block-services-overview, .block-approach-boundaries, .block-writing-excerpt) {
	border-top: 0;
	padding-top: 0;
	padding-bottom: var(--lf-gap);
}
.toast-block.pbth:is(.block-services-contents, .block-case-studies, .block-who-i-write-for, .block-about-note, .block-practical-details, .block-services-rows, .block-clips, .block-problem-index, .block-services-overview, .block-approach-boundaries, .block-writing-excerpt) > .container {
	border-top: 0.3rem solid var(--brand-2);
	padding-top: var(--lf-gap-inner);
}

/* Heading to content: the same gap everywhere */
.block-services-contents .sc-head,
.block-case-studies .cs-head,
.block-practical-details .lf-section-head,
.block-services-rows .lf-section-head,
.block-clips .cl-head { margin-bottom: var(--lf-gap-head); }
.block-who-i-write-for .wf-left { gap: var(--lf-gap-head); }
.block-about-note .an-text { gap: 2rem; }
.block-about-note .an-text .lf-section-head + .an-standfirst { margin-top: 0.4rem; }

/* Writer's note without a photo: use the full width, keep a readable measure */
.block-about-note .an-grid.no-image .an-text { max-width: 104rem; }
.block-about-note .an-grid.no-image .an-body { columns: 2 32rem; }

/* Hero internals */
.block-opening-column .oc-dateline { margin-bottom: var(--lf-gap-inner); }
.block-opening-column .oc-stats { margin-top: var(--lf-gap-inner); }
.block-opening-column .oc-scroll { margin-top: 1.6rem; }

/* Footer: matching rhythm */
.site-footer .footer-final { padding-top: var(--lf-gap); padding-bottom: var(--lf-gap-inner); }
.site-footer .footer-strap { margin-bottom: var(--lf-gap-inner); }

/* Phones: a little tighter, and grids stack with sensible gaps */
@media screen and (max-width: 640px) {
	:root { --lf-gap: 5.6rem; --lf-gap-inner: 3.2rem; --lf-gap-head: 2.8rem; --lf-gap-hero-top: 2rem; }
	.block-services-contents .sc-grid, .block-who-i-write-for .wf-grid, .block-practical-details .pd-grid, .block-about-note .an-grid { row-gap: 3.2rem; }
	.block-services-contents .sc-feature { padding-top: 2.4rem; padding-bottom: 2.4rem; }
	.block-case-studies .cs-feature-text, .block-case-studies .cs-study { padding: 2.2rem 2rem; }
	.block-case-studies .cs-extract { padding: 2.4rem 2rem; }
}
/* Hero without a dateline: a little more air under the masthead */
.block-opening-column .container > .oc-top:first-child { padding-top: clamp(1.6rem, 2vw, 2.4rem); }
