*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;min-width:0}
img{max-width:100%;height:auto}
.dfp-main{width:100%;min-height:50vh}

/* JSON-first geometry. WordPress theme.json provides the width/token variables. */
.dfp-container,.dfp-layout-shell,.dfp-page-title-wrap{box-sizing:border-box;width:calc(100% - (var(--wp--custom--dfp--gutter-desktop) * 2));margin-inline:auto}
.dfp-container{max-width:var(--wp--style--global--wide-size)}
.dfp-layout-shell.dfp-width-narrow,.dfp-page-title-wrap.dfp-width-narrow{max-width:var(--wp--custom--dfp--narrow-width)}
.dfp-layout-shell.dfp-width-content,.dfp-page-title-wrap.dfp-width-content{max-width:var(--wp--style--global--content-size)}
.dfp-layout-shell.dfp-width-wide,.dfp-page-title-wrap.dfp-width-wide{max-width:var(--wp--style--global--wide-size)}
.dfp-layout-shell.dfp-width-full,.dfp-page-title-wrap.dfp-width-full{width:100%;max-width:none;padding-inline:var(--wp--custom--dfp--gutter-desktop);margin-inline:auto}

/* Layout + sidebar. Width classes are intentionally scoped to shells, never body. */
.dfp-layout{display:grid;grid-template-columns:minmax(0,1fr) var(--wp--custom--dfp--sidebar-width);gap:var(--wp--custom--dfp--layout-gap);padding-block:18px 32px}
.dfp-sidebar-left .dfp-layout{grid-template-columns:var(--wp--custom--dfp--sidebar-width) minmax(0,1fr)}
.dfp-sidebar-left .dfp-sidebar{grid-column:1;grid-row:1}.dfp-sidebar-left .dfp-content-area{grid-column:2}
.dfp-no-sidebar .dfp-layout{grid-template-columns:minmax(0,1fr)}
.dfp-content-area,.dfp-sidebar,.dfp-entry-content,.dfp-card,.dfp-card__body{min-width:0}
.dfp-entry-content{width:100%;max-width:none}
.dfp-entry-content img,.dfp-entry-content video,.dfp-entry-content iframe{max-width:100%}.dfp-entry-content iframe{width:100%}

/* Title uses the same shell geometry as content. */
.dfp-page-title-wrap{padding-top:var(--dfp-title-top,32px);padding-bottom:var(--dfp-title-bottom,18px)}
.dfp-page-title{margin:0;font-size:clamp(1.7rem,3vw,2.8rem);line-height:1.1}.dfp-page-title__description{margin-top:10px;color:var(--wp--preset--color--muted)}

/* Builder ownership: DFP mode keeps the centered shell; builder modes opt into full canvas. */
.dfp-builder-dfp .elementor{width:100%;max-width:100%;margin-inline:0}
.dfp-layout-shell.dfp-builder-builder,.dfp-layout-shell.dfp-builder-full{width:100%;max-width:none;margin-inline:auto}
.dfp-layout-shell.dfp-builder-builder{padding-inline:var(--wp--custom--dfp--gutter-desktop)}
.dfp-layout-shell.dfp-builder-full{display:block;padding:0}
.dfp-builder-full .dfp-content-area,.dfp-builder-full .dfp-entry-content,.dfp-builder-full .elementor{width:100%;max-width:none;margin:0;padding:0}

@media(max-width:900px){
 .dfp-container,.dfp-layout-shell,.dfp-page-title-wrap{width:calc(100% - (var(--wp--custom--dfp--gutter-tablet) * 2))}
 .dfp-layout-shell.dfp-width-full,.dfp-page-title-wrap.dfp-width-full{width:100%;padding-inline:var(--wp--custom--dfp--gutter-tablet)}
 .dfp-layout-shell.dfp-builder-builder{width:100%;padding-inline:var(--wp--custom--dfp--gutter-tablet)}
 .dfp-layout,.dfp-sidebar-left .dfp-layout{grid-template-columns:1fr;gap:24px;padding-block:16px 24px}
 .dfp-sidebar-left .dfp-sidebar,.dfp-sidebar-left .dfp-content-area{grid-column:auto;grid-row:auto}.dfp-sidebar{order:2;width:100%}.dfp-sidebar-mobile-hidden .dfp-sidebar{display:none}
}
@media(max-width:640px){
 .dfp-container,.dfp-layout-shell,.dfp-page-title-wrap{width:calc(100% - (var(--wp--custom--dfp--gutter-mobile) * 2))}
 .dfp-layout-shell.dfp-width-full,.dfp-page-title-wrap.dfp-width-full{width:100%;padding-inline:var(--wp--custom--dfp--gutter-mobile)}
 .dfp-layout-shell.dfp-builder-builder{width:100%;padding-inline:var(--wp--custom--dfp--gutter-mobile)}
 .dfp-layout{padding-block:12px 20px;gap:18px}.dfp-entry-header h1,.dfp-archive-header h1,.dfp-page-title{overflow-wrap:anywhere}
}

/* DFP Pages 0.2 — color profiles + title bar */
body{background:var(--wp--preset--color--background);color:var(--wp--preset--color--text)}
.dfp-color-profile-navy{--dfp-profile-bg:#0b1220;--dfp-profile-surface:#111b2e;--dfp-profile-text:#f5f8ff;--dfp-profile-muted:#aab7cc;--dfp-profile-border:#24324a}
.dfp-color-profile-dark{--dfp-profile-bg:#090b0f;--dfp-profile-surface:#13161c;--dfp-profile-text:#f7f7f8;--dfp-profile-muted:#a5a8b0;--dfp-profile-border:#292d35}
.dfp-color-profile-light{--dfp-profile-bg:var(--wp--preset--color--background);--dfp-profile-surface:var(--wp--preset--color--surface);--dfp-profile-text:var(--wp--preset--color--text);--dfp-profile-muted:var(--wp--preset--color--muted);--dfp-profile-border:var(--wp--preset--color--border)}
.dfp-color-profile-navy,.dfp-color-profile-dark{background:var(--dfp-profile-bg);color:var(--dfp-profile-text)}
.dfp-color-profile-navy .dfp-main,.dfp-color-profile-dark .dfp-main{background:var(--dfp-profile-bg);color:var(--dfp-profile-text)}
.dfp-page-title-wrap{background:var(--dfp-title-bg,#0b1220);color:var(--dfp-title-text,#fff);box-shadow:0 0 0 100vmax var(--dfp-title-bg,#0b1220);clip-path:inset(0 -100vmax)}
.dfp-page-title{font-size:clamp(1.7rem,4vw,var(--dfp-title-size,48px));color:inherit}
.dfp-page-title__description{color:color-mix(in srgb,currentColor 72%,transparent)}
