/* =========================================================================
   DeFlock The USA — "American Overwatch"
   Tokens, header/footer, merch graphics, homepage, shop, product, cart.
   ========================================================================= */

:root{
  --navy:#17233F;
  --navy-deep:#12192C;
  --cream:#EFE6D0;
  --cream-muted:#E4DABF;
  --red:#B4232A;
  --gold:#D9A441;
  --gold-dark:#B98A1F;
  --blue:#5B9BD5;
  --foot:#8A97B5;
  --paper-muted:#8A7A52;
  --white:#fff;
}

/* ---- Global -------------------------------------------------------------- */
body.deflock,
body{
  background:var(--cream);
  color:var(--navy);
  font-family:'Oswald',sans-serif;
}
body a{ color:inherit; }
body a:hover{ opacity:.88; color:inherit; }
::selection{ background:var(--red); color:var(--cream); }

h1,h2,h3,.deflock-anton{ font-family:'Anton',sans-serif; text-transform:uppercase; }

/* Kill Storefront's default header search / rounded UI we don't want. */
.storefront-handheld-footer-bar{ display:none !important; }

/* Let the homepage go full-bleed (front-page.php has no .col-full wrapper). */
.home #content.site-content{ padding:0; }
.home #content .col-full{ max-width:none; padding:0; margin:0; }
/* WooCommerce injects an empty wrapper on full-bleed pages — kill the gap. */
.col-full > .woocommerce:empty{ display:none; margin:0; }

/* Map page full-bleed (mirrors homepage). */
.deflock-map-page #content.site-content{ padding:0; }
.deflock-map-page #content .col-full{ max-width:none; padding:0; margin:0; }
.deflock-map-page .storefront-breadcrumb{ display:none; }
.deflock-map-page .entry-header,
.deflock-map-page .page .entry-title{ display:none; }

/* ---- Announcement bar ---------------------------------------------------- */
.deflock-announce{
  background:var(--red); color:var(--cream); text-align:center;
  padding:9px 20px; font-weight:500; letter-spacing:.18em;
  font-size:12px; text-transform:uppercase;
}

/* ---- Header -------------------------------------------------------------- */
#masthead.site-header,
.site-header{
  background:var(--navy) !important; color:var(--cream);
  position:sticky; top:0; z-index:40; padding:0 !important; margin:0 !important;
  border:0 !important; box-shadow:none;
}
.site-header .col-full{ max-width:none; padding:0; }
.deflock-header-inner{
  display:flex; align-items:center; justify-content:space-between;
  padding:20px 6vw;
}
.deflock-wordmark{
  font-family:'Anton',sans-serif; font-size:26px; letter-spacing:.01em;
  color:var(--cream); text-transform:uppercase; line-height:1;
}
.deflock-wordmark .star,.deflock-footer-mark .star{ color:var(--gold); }
.deflock-nav{
  display:flex; gap:24px; align-items:center; flex-wrap:wrap; justify-content:flex-end;
  font-size:13px; letter-spacing:.1em; text-transform:uppercase; font-weight:500;
}
.deflock-nav a{ color:var(--cream); }
.deflock-cart-pill{
  background:var(--gold); color:var(--navy) !important; padding:9px 18px;
  font-weight:600; letter-spacing:.08em;
}
.deflock-cart-pill:hover{ opacity:.9; }

/* ---- Footer -------------------------------------------------------------- */
#colophon.site-footer,
.site-footer{ background:var(--navy-deep) !important; padding:0 !important; border:0 !important; margin:0; }
.site-footer .col-full{ max-width:none; padding:0; }
.deflock-footer-inner{
  background:var(--navy-deep); color:var(--foot);
  padding:44px 6vw; display:flex; flex-wrap:wrap; gap:24px;
  justify-content:space-between; align-items:center;
  font-size:13px; letter-spacing:.08em; text-transform:uppercase;
}
.deflock-footer-mark{ font-family:'Anton',sans-serif; font-size:20px; color:var(--cream); letter-spacing:.01em; }
.deflock-footer-links{ display:flex; gap:28px; flex-wrap:wrap; }
.deflock-footer-links a{ color:var(--foot); }
.deflock-footer-copy{ color:var(--foot); }
.deflock-footer-disclaimer{
  background:var(--navy-deep); color:#6b7691;
  font:300 11.5px/1.55 'Oswald',sans-serif; letter-spacing:.03em;
  padding:18px 6vw 34px; border-top:1px solid rgba(217,164,65,.15);
}
.deflock-footer-disclaimer a{ color:#8a97b5; text-decoration:underline; }

/* =========================================================================
   Merch graphics (CSS art). Sized in cqw so they scale to any card width.
   ========================================================================= */
.deflock-graphic{
  position:relative; width:100%; aspect-ratio:1/1;
  container-type:inline-size; overflow:hidden;
}
.dg{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  text-align:center; text-transform:uppercase;
}
.dg-stack{ flex-direction:column; gap:7cqw; }
.dg-pad{ padding:10cqw; }
.dg-rel{ position:absolute; }
/* Background classes ONLY apply to the .dg container. */
.dg.dg-navy{ background:var(--navy); }
.dg.dg-red{ background:var(--red); }
.dg.dg-cream{ background:var(--cream); }
.dg.dg-gold{ background:var(--gold); }

/* Text-colour helpers (used on inner type; never set a background). */
.dg-anton{ font-family:'Anton',sans-serif; line-height:.95; }
.dg-oswald{ font-family:'Oswald',sans-serif; }
.dg-cream{ color:var(--cream); }
.dg-navy{ color:var(--navy); }
.dg-red{ color:var(--red); }
.dg-gold{ color:var(--gold); }
.dg-lh{ font-size:11cqw; }

/* Camera glyph */
.dg-cam{
  width:30cqw; height:20cqw; border:2cqw solid var(--gold); border-radius:3.5cqw;
  position:relative; display:flex; align-items:center; justify-content:center;
}
.dg-cam .dg-lens{ width:9cqw; height:9cqw; border-radius:50%; border:2cqw solid var(--gold); }
.dg-cam::after{ content:""; position:absolute; top:-7cqw; left:50%; transform:translateX(-50%); width:2cqw; height:7cqw; background:var(--gold); }
.dg-cam--navy{ border-color:var(--navy); }
.dg-cam--navy .dg-lens{ border-color:var(--navy); }
.dg-cam--navy::after{ background:var(--navy); }

/* Crest */
.dg-crest{
  width:64cqw; height:64cqw; border-radius:50%; border:2.6cqw solid var(--cream);
  display:flex; flex-direction:column; align-items:center; justify-content:center; color:var(--cream);
}
.dg-crest-top{ font-family:'Oswald'; font-size:4cqw; letter-spacing:.3em; }
.dg-crest-name{ font-family:'Anton'; font-size:14cqw; line-height:.9; margin:2cqw 0; }
.dg-crest-sub{ font-family:'Oswald'; font-size:4.2cqw; letter-spacing:.34em; }

/* Flock Off */
.dg-flockoff{ font-size:27cqw; line-height:.82; }

/* Surveillance is not Safety */
.dg-notsafety{ font-size:13cqw; line-height:1; }

/* Crosshair (map) */
.dg-crosshair{
  width:44cqw; height:44cqw; border:1.4cqw solid var(--navy); border-radius:50%;
  display:flex; align-items:center; justify-content:center; position:relative;
}
.dg-crosshair-h{ position:absolute; width:62cqw; height:1.4cqw; background:var(--navy); }
.dg-crosshair-v{ position:absolute; height:62cqw; width:1.4cqw; background:var(--navy); }
.dg-crosshair-dot{ width:7cqw; height:7cqw; border-radius:50%; background:var(--red); position:relative; z-index:2; }
.dg-mapcaption{ position:absolute; bottom:9cqw; left:0; right:0; font-size:6.5cqw; letter-spacing:.06em; }

/* Yard sign */
.dg-sign{
  background:var(--cream); border:1.4cqw solid var(--navy); padding:8cqw 6cqw;
  font-size:10cqw; line-height:1.02;
}

/* Warrant patch */
.dg-patch{
  width:66cqw; height:66cqw; border-radius:50%; border:2.4cqw solid var(--gold);
  display:flex; flex-direction:column; align-items:center; justify-content:center; color:var(--gold);
}
.dg-patch-top{ font-family:'Oswald'; font-size:4.2cqw; letter-spacing:.24em; }
.dg-patch-name{ font-family:'Anton'; font-size:15cqw; line-height:.9; margin:2cqw 0; }
.dg-patch-sub{ font-family:'Oswald'; font-size:3.6cqw; letter-spacing:.28em; }

/* Read my plate */
.dg-plate{
  background:var(--cream); border:1.6cqw solid var(--navy); border-radius:3cqw;
  padding:6cqw 5cqw; width:78cqw; color:var(--navy);
}
.dg-plate-top{ display:block; font-family:'Oswald'; font-size:4cqw; letter-spacing:.28em; }
.dg-plate-num{ display:block; font-family:'Anton'; font-size:18cqw; line-height:.92; margin:2cqw 0; }
.dg-plate-sub{ display:block; font-family:'Oswald'; font-size:3.4cqw; letter-spacing:.22em; }

/* Poster */
.dg-poster{ font-size:16cqw; line-height:.98; }

/* Free the roads */
.dg-freeroads{ font-size:16cqw; line-height:.95; }
.dg-underline{ position:relative; }
.dg-underline::after{ content:""; position:absolute; left:-2%; bottom:-1cqw; width:104%; height:2.4cqw; background:var(--red); }

/* Pin */
.dg-pinlabel{ font-size:6cqw; letter-spacing:.34em; font-weight:600; }

/* =========================================================================
   Homepage (front-page.php)
   ========================================================================= */
.dfh-section{ padding:90px 6vw; }
.dfh-hero{
  position:relative; padding:100px 6vw 90px; background:var(--navy); color:var(--cream); overflow:hidden;
}
.dfh-hero-stripes{ position:absolute; inset:0; opacity:.10; background:repeating-linear-gradient(45deg,var(--cream) 0 2px, transparent 2px 30px); }
.dfh-hero-star{ position:absolute; top:-40px; right:-30px; font-family:'Anton'; font-size:280px; color:rgba(217,164,65,.07); line-height:.8; user-select:none; pointer-events:none; }
.dfh-hero-inner{ position:relative; max-width:900px; }
.dfh-eyebrow{
  display:inline-block; background:var(--red); color:var(--cream);
  font-weight:600; letter-spacing:.2em; font-size:13px; padding:8px 16px;
  text-transform:uppercase; margin-bottom:28px;
}
.dfh-hero h1{
  font-family:'Anton'; font-size:clamp(56px,9vw,132px); line-height:.88; margin:0;
  letter-spacing:.005em; color:var(--cream);
}
.dfh-strike{ position:relative; color:var(--gold); }
.dfh-strike::after{ content:""; position:absolute; left:-4%; top:52%; width:108%; height:10px; background:var(--red); transform:rotate(-4deg); }
.dfh-hero p{ font-weight:400; font-size:19px; line-height:1.6; max-width:600px; margin:34px 0 38px; color:var(--cream-muted); }
.dfh-cta-row{ display:flex; gap:18px; flex-wrap:wrap; }
.dfh-btn{ font-family:'Oswald'; font-weight:600; text-transform:uppercase; letter-spacing:.12em; font-size:15px; display:inline-block; }
.dfh-btn-red{ background:var(--red); color:var(--cream); padding:17px 38px; }
.dfh-btn-gold-o{ border:2px solid var(--gold); color:var(--gold); padding:15px 30px; }
.dfh-btn-gold{ background:var(--gold); color:var(--navy); padding:15px 30px; }

.dfh-marquee{
  background:var(--red); color:var(--cream); text-align:center; padding:16px;
  font-family:'Anton'; letter-spacing:.3em; font-size:clamp(14px,1.6vw,18px); text-transform:uppercase;
}

.dfh-shop{ background:var(--cream); }
.dfh-head{ text-align:center; margin-bottom:50px; }
.dfh-head .dfh-kicker{ font-weight:600; letter-spacing:.24em; font-size:13px; color:var(--red); text-transform:uppercase; }
.dfh-head h2{ font-family:'Anton'; font-size:clamp(38px,6vw,64px); margin:10px 0 0; letter-spacing:.01em; color:var(--navy); }
.dfh-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:28px; max-width:1280px; margin:0 auto; }
.dfh-card{ background:var(--white); border:2px solid var(--navy); display:block; }
.dfh-card-foot{ padding:18px 20px; display:flex; justify-content:space-between; align-items:center; }
.dfh-card-name{ font-family:'Oswald'; font-weight:500; text-transform:uppercase; letter-spacing:.06em; font-size:15px; }
.dfh-card-price{ font-family:'Anton'; color:var(--red); font-size:22px; }

.dfh-movement{ background:var(--navy); color:var(--cream); padding:96px 6vw; display:grid; grid-template-columns:repeat(auto-fit,minmax(340px,1fr)); gap:56px; align-items:center; }
.dfh-movement .dfh-kicker{ font-family:'Oswald'; letter-spacing:.24em; font-size:13px; color:var(--gold); text-transform:uppercase; margin-bottom:16px; }
.dfh-movement h2{ font-family:'Anton'; font-size:clamp(34px,4.5vw,52px); margin:0 0 22px; line-height:.98; color:var(--cream); }
.dfh-movement p{ font-weight:400; font-size:18px; line-height:1.65; color:var(--cream-muted); margin:0 0 26px; }
.dfh-movement p em{ font-style:italic; color:var(--cream); }
.dfh-fineprint{ font-size:13px !important; color:var(--foot) !important; margin:-8px 0 26px !important; }
.dfh-fineprint a{ color:var(--gold); text-decoration:underline; }
.dfh-stats{ display:grid; grid-template-columns:1fr 1fr; gap:2px; background:var(--gold); }
.dfh-stat{ background:var(--navy); padding:34px; text-align:center; }
.dfh-stat-num{ font-family:'Anton'; font-size:52px; color:var(--gold); }
.dfh-stat-label{ font-family:'Oswald'; font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--cream-muted); }

.dfh-signup{ background:var(--gold); color:var(--navy); padding:64px 6vw; text-align:center; }
.dfh-signup h2{ font-family:'Anton'; font-size:clamp(30px,4vw,46px); margin:0 0 10px; color:var(--navy); }
.dfh-signup p{ font-size:16px; margin:0 auto 26px; max-width:480px; }
.dfh-signup-form{ display:flex; gap:0; max-width:460px; margin:0 auto; }
.dfh-signup-form input{ flex:1; border:2px solid var(--navy); border-right:none; background:var(--cream); padding:15px 18px; font-family:'Oswald'; font-size:15px; color:var(--navy); outline:none; }
.dfh-signup-form button{ background:var(--navy); color:var(--cream); border:2px solid var(--navy); font-family:'Oswald'; font-weight:600; text-transform:uppercase; letter-spacing:.1em; font-size:14px; padding:0 26px; cursor:pointer; }

/* =========================================================================
   Shop / catalog (WooCommerce archive)
   ========================================================================= */
.woocommerce .site-content,.site-content{ background:var(--cream); }
.woocommerce-products-header,
.storefront-breadcrumb{ padding-top:20px; }
.woocommerce-products-header__title.page-title,
.woocommerce div.product .product_title,
.entry-title{ font-family:'Anton'; text-transform:uppercase; color:var(--navy); letter-spacing:.01em; }

.woocommerce ul.products{ gap:26px; display:grid !important; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); margin:0 auto 40px; max-width:1360px; float:none; }
.woocommerce ul.products li.product{
  width:auto !important; margin:0 !important; float:none !important;
  background:var(--white); border:2px solid var(--navy); text-align:left; padding:0;
}
.woocommerce ul.products li.product a img,
.woocommerce ul.products li.product .deflock-graphic{ margin:0; border-radius:0; box-shadow:none; }
.woocommerce ul.products li.product .woocommerce-loop-product__link{ display:block; }
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  font-family:'Oswald'; font-weight:500; text-transform:uppercase; letter-spacing:.06em;
  font-size:15px; color:var(--navy); padding:16px 20px 0; }
.woocommerce ul.products li.product .price{
  font-family:'Anton'; color:var(--red); font-size:22px; padding:0 20px 16px; display:block; }
.woocommerce ul.products li.product .price del{ color:var(--paper-muted); font-size:16px; }
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart{
  display:none; } /* whole card links to product; no loop add-to-cart button */
.woocommerce ul.products li.product .star-rating{ display:none; }

/* =========================================================================
   Single product
   ========================================================================= */
.woocommerce div.product{ margin-top:20px; }
.woocommerce div.product .deflock-single-graphic{ border:2px solid var(--navy); }
.woocommerce div.product p.price,
.woocommerce div.product span.price{ color:var(--red); font-family:'Anton'; font-size:32px; }
.woocommerce div.product form.cart .button,
.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce .single_add_to_cart_button{
  background:var(--red) !important; color:var(--cream) !important; border-radius:0 !important;
  font-family:'Oswald'; font-weight:600; text-transform:uppercase; letter-spacing:.1em; }
.woocommerce div.product form.cart .button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover{ opacity:.9; }
.woocommerce .woocommerce-variation-add-to-cart .button{ }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active{ border-bottom-color:var(--red); }

/* Buttons everywhere, brand them. */
a.button.alt,button.button.alt,input.button.alt{ background:var(--navy) !important; color:var(--cream) !important; }

/* =========================================================================
   Cart / checkout
   ========================================================================= */
.woocommerce-cart .cart_totals,
.woocommerce-checkout #order_review,
.woocommerce table.shop_table{ border-radius:0; }
.woocommerce-info,.woocommerce-message{ border-top-color:var(--gold); }
.woocommerce-message::before{ color:var(--gold); }
.woocommerce .cart-collaterals .cart_totals h2,
#order_review_heading{ font-family:'Anton'; text-transform:uppercase; color:var(--navy); }

/* =========================================================================
   The Camera Map (page-the-map.php)
   ========================================================================= */
.dm-titleband{ background:var(--navy); color:var(--cream); padding:52px 6vw 40px; text-align:center; }
.dm-titleband .dm-kicker{ color:var(--gold); letter-spacing:.24em; font-size:13px; text-transform:uppercase; font-weight:600; font-family:'Oswald'; }
.dm-titleband h1{ font-family:'Anton'; color:var(--cream); font-size:clamp(38px,6vw,68px); margin:10px 0 14px; text-transform:uppercase; }
.dm-titleband p{ color:var(--cream-muted); font-size:17px; max-width:720px; margin:0 auto; line-height:1.55; font-family:'Oswald'; font-weight:300; }
.dm-titleband strong{ color:var(--gold); font-weight:600; }
.dm-titleband p a{ color:var(--gold); text-decoration:underline; }
.dm-titleband p em{ font-style:normal; color:var(--cream); font-weight:600; }

/* Layout: control sidebar + map */
.dm-layout{ display:grid; grid-template-columns:340px 1fr; height:clamp(560px,80vh,900px); }
.dm-map{ height:100%; background:#0E1424; }

.dm-sidebar{
  background:var(--navy-deep); color:var(--cream-muted); overflow-y:auto;
  padding:22px 22px 26px; display:flex; flex-direction:column; gap:22px;
  border-right:2px solid var(--gold);
}
.dm-panel-h{ font-family:'Oswald'; font-weight:600; text-transform:uppercase; letter-spacing:.16em; font-size:12px; color:var(--gold); display:block; margin-bottom:12px; }

/* Search */
.dm-search-row{ display:flex; }
.dm-search-row input{
  flex:1; min-width:0; border:2px solid var(--cream); border-right:none; background:var(--cream);
  color:var(--navy); font-family:'Oswald'; font-size:14px; padding:11px 12px; outline:none;
}
.dm-search-row button{
  background:var(--red); color:var(--cream); border:2px solid var(--red);
  font-family:'Oswald'; font-weight:600; text-transform:uppercase; letter-spacing:.08em;
  font-size:13px; padding:0 16px; cursor:pointer;
}
.dm-search-row button:hover{ opacity:.9; }
.dm-status{ font-family:'Oswald'; font-size:12px; color:var(--gold); min-height:16px; margin-top:8px; }

/* Filters */
.dm-filter-row{ display:flex; align-items:center; gap:9px; padding:7px 0; cursor:pointer; font-family:'Oswald'; font-size:14px; color:var(--cream); }
.dm-filter-row input{ accent-color:var(--gold); width:15px; height:15px; }
.dm-chip{ width:13px; height:13px; border-radius:50%; flex:0 0 auto; box-shadow:0 0 0 1px rgba(255,255,255,.25); }
.dm-filter-label{ flex:1; }
.dm-filter-count{ font-family:'Space Mono',monospace; font-size:12px; color:var(--foot); }

/* Legend */
.dm-legend-row{ display:flex; align-items:center; gap:9px; font-family:'Oswald'; font-size:13px; margin-bottom:8px; color:var(--cream-muted); }
.dm-legend-dot{ width:13px; height:13px; border-radius:50%; background:var(--red); border:1px solid var(--cream); flex:0 0 auto; }
.dm-legend-cluster{ width:22px; height:22px; border-radius:50%; background:var(--navy); border:2px solid var(--gold); color:var(--cream); display:flex; align-items:center; justify-content:center; font-family:'Anton'; font-size:10px; flex:0 0 auto; }
.dm-total{ margin-top:12px; padding-top:12px; border-top:1px solid rgba(217,164,65,.3); font-family:'Oswald'; font-size:14px; color:var(--cream); }
.dm-total b{ color:var(--gold); }

/* Report button */
.dm-report{
  margin-top:auto; background:var(--red); color:var(--cream); text-align:center;
  font-family:'Oswald'; font-weight:600; text-transform:uppercase; letter-spacing:.08em;
  font-size:13px; padding:14px 16px; display:block;
}
.dm-report:hover{ opacity:.92; color:var(--cream); }

/* Branded cluster markers (HTML) */
.dm-cluster{
  background:var(--navy); color:var(--cream); border:2px solid var(--gold);
  border-radius:50%; display:flex; align-items:center; justify-content:center;
  font-family:'Anton',sans-serif; line-height:1; cursor:pointer;
  box-shadow:0 2px 10px rgba(0,0,0,.4);
}
.dm-cluster span{ font-size:14px; letter-spacing:.02em; }
.dm-cluster:hover{ background:var(--red); border-color:var(--cream); }

/* Popups */
.maplibregl-popup-content{ border-radius:0; border:2px solid var(--navy); padding:14px 16px; }
.maplibregl-popup-close-button{ font-size:20px; color:var(--navy); padding:0 6px; }
.dm-pop{ font-family:'Oswald',sans-serif; }
.dm-pop-brand{ font-family:'Anton',sans-serif; text-transform:uppercase; color:var(--navy); font-size:18px; line-height:1; }
.dm-pop-type{ font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:var(--red); margin:5px 0 8px; }
.dm-pop-ref{ font-size:13px; color:#444; margin-bottom:8px; }
.dm-pop-link{ font-family:'Oswald',sans-serif; font-weight:600; font-size:13px; color:var(--navy); text-decoration:underline; }

/* CTA band under the map */
.dm-cta{ background:var(--gold); color:var(--navy); padding:44px 6vw; }
.dm-cta-inner{ max-width:1200px; margin:0 auto; display:flex; gap:28px; align-items:center; justify-content:space-between; flex-wrap:wrap; }
.dm-cta .dm-kicker{ letter-spacing:.2em; font-size:12px; text-transform:uppercase; font-weight:600; font-family:'Oswald'; }
.dm-cta h2{ font-family:'Anton'; font-size:clamp(24px,3vw,38px); margin:6px 0 0; color:var(--navy); text-transform:uppercase; }

/* =========================================================================
   Button variants (added)
   ========================================================================= */
.dfh-btn-navy{ background:var(--navy); color:var(--cream); padding:15px 30px; }
.dfh-btn-navy:hover{ opacity:.9; color:var(--cream); }
.dfh-btn-gold-o-dark{ border:2px solid var(--gold-dark); color:var(--gold-dark); padding:13px 28px; }

/* =========================================================================
   Homepage — the three questions
   ========================================================================= */
.dfh-3q{ background:var(--cream); }
.dfh-3q-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:24px; max-width:1200px; margin:0 auto; }
.dfh-qcard{ background:var(--white); border:2px solid var(--navy); padding:32px 28px; display:flex; flex-direction:column; }
.dfh-qnum{ font-family:'Anton',sans-serif; font-size:40px; color:var(--gold); line-height:1; margin-bottom:10px; }
.dfh-qcard h3{ font-family:'Anton',sans-serif; text-transform:uppercase; color:var(--navy); font-size:24px; margin:0 0 12px; }
.dfh-qcard p{ font-family:'Oswald',sans-serif; font-weight:300; font-size:15.5px; line-height:1.6; color:#3a4256; margin:0 0 18px; flex:1; }
.dfh-qlink{ font-family:'Oswald',sans-serif; font-weight:600; text-transform:uppercase; letter-spacing:.08em; font-size:13px; color:var(--red); }

/* =========================================================================
   Content pages (Learn, Take Action, Community, Contact) + blog posts
   ========================================================================= */
.deflock-content{ max-width:860px; margin:0 auto; font-family:'Oswald',sans-serif; font-weight:300; font-size:16.5px; line-height:1.7; color:var(--navy); }
.deflock-content h2{ font-family:'Anton',sans-serif; text-transform:uppercase; color:var(--navy); font-size:28px; margin:40px 0 14px; letter-spacing:.01em; }
.deflock-content h3{ font-family:'Anton',sans-serif; text-transform:uppercase; color:var(--navy); font-size:20px; margin:24px 0 8px; }
.deflock-content p, .deflock-content li{ margin:0 0 14px; }
.deflock-content ul{ padding-left:22px; margin:0 0 18px; }
.deflock-content a{ color:var(--red); text-decoration:underline; }
.deflock-content strong{ font-weight:600; }
.deflock-content .dc-lead{ font-size:21px; font-weight:400; line-height:1.5; color:var(--navy); border-left:4px solid var(--gold); padding-left:20px; margin:0 0 30px; }
.deflock-content .dc-note{ background:var(--white); border-left:4px solid var(--gold); padding:14px 18px; font-size:15px; color:#4a4a4a; margin:22px 0; }
.deflock-content .dc-cta{ background:var(--navy); color:var(--cream); padding:34px; margin:40px 0 0; text-align:center; }
.deflock-content .dc-cta h3{ color:var(--cream); margin-top:0; }
.deflock-content .dc-cta p{ color:var(--cream-muted); }
.deflock-content .dc-cta a{ text-decoration:none; margin:6px; }

/* Blog / News — Anton titles */
.blog .entry-title a, .archive .entry-title a, .single-post .entry-title{ font-family:'Anton',sans-serif; text-transform:uppercase; color:var(--navy); }
.single-post .entry-content{ }

/* =========================================================================
   Map page — "Camera Map Resources" callout
   ========================================================================= */
.dm-resources{ background:var(--cream); padding:56px 6vw; }
.dm-resources-inner{ max-width:820px; margin:0 auto; text-align:center; }
.dm-resources .dm-kicker{ font-family:'Oswald'; font-weight:600; letter-spacing:.2em; font-size:12px; text-transform:uppercase; }
.dm-resources h2{ font-family:'Anton',sans-serif; text-transform:uppercase; color:var(--navy); font-size:clamp(26px,3.4vw,40px); margin:8px 0 14px; }
.dm-resources p{ font-family:'Oswald',sans-serif; font-weight:300; font-size:17px; line-height:1.6; color:#3a4256; margin:0 auto 24px; max-width:680px; }

/* =========================================================================
   Legal / policy pages
   ========================================================================= */
.deflock-legal{
  max-width:840px; margin:0 auto; font-family:'Oswald',sans-serif; font-weight:300;
  font-size:16px; line-height:1.7; color:var(--navy);
}
.deflock-legal h2{ font-family:'Anton',sans-serif; text-transform:uppercase; color:var(--navy); font-size:26px; margin:36px 0 12px; letter-spacing:.01em; }
.deflock-legal h3{ font-family:'Oswald',sans-serif; font-weight:600; text-transform:uppercase; letter-spacing:.06em; font-size:14px; color:var(--red); margin:22px 0 6px; }
.deflock-legal p, .deflock-legal li{ margin:0 0 12px; }
.deflock-legal ul{ padding-left:22px; margin:0 0 16px; }
.deflock-legal a{ color:var(--red); text-decoration:underline; }
.deflock-legal strong{ font-weight:600; }
.deflock-legal .dl-updated{ color:var(--paper-muted); font-size:12px; text-transform:uppercase; letter-spacing:.1em; margin-bottom:22px; }
.deflock-legal .dl-note{ background:var(--white); border-left:4px solid var(--gold); padding:14px 18px; font-size:15px; color:#4a4a4a; margin:18px 0; }

/* =========================================================================
   Responsive
   ========================================================================= */
@media (max-width:768px){
  .deflock-header-inner{ flex-direction:column; gap:14px; padding:16px 6vw; }
  .deflock-nav{ gap:18px; font-size:12px; }
  .dfh-hero{ padding:64px 6vw 56px; }
  .dfh-hero-star{ font-size:180px; }
  .dfh-movement{ padding:64px 6vw; }
  .dm-layout{ grid-template-columns:1fr; height:auto; }
  .dm-sidebar{ border-right:none; border-bottom:2px solid var(--gold); }
  .dm-map{ height:62vh; min-height:420px; }
}
