/*
Theme Name: Certified True Copy Dubai Child
Template: generatepress
Version: 2.0.6
Description: Child theme for certifiedtruecopydubai.ae. All site-specific CSS lives here so GeneratePress core updates never touch it.
*/

/* ===================================================================
   DESIGN TOKENS, the single source of truth for color, radius, type.
   =================================================================== */
:root{
  --ctc-bg:#ffffff;
  --ctc-surface:#f3f1fb;
  --ctc-ink:#1e2333;
  --ctc-ink-soft:#5b5f74;
  --ctc-brand:#3b3fa0;
  --ctc-brand-deep:#23265f;
  --ctc-coral:#ff5a36;
  --ctc-coral-ink:#2a1206;
  --ctc-coral-soft:#fff1ec;
  --ctc-line:#e4e2f0;
  --ctc-radius:8px;
  --ctc-fs-lead:18px;
  --ctc-fs-body:16.5px;
  --ctc-fs-small:15px;
}

/* ===================================================================
   GeneratePress + Gutenberg group-wrapper fixes (see wp-deploy-loop
   memory). core/group wraps children in .wp-block-group__inner-container,
   which breaks CSS grid/flex on the group and carries a 40px padding /
   1200px max-width GeneratePress adds by default. Reset once, globally,
   scoped to this site's body so it never leaks into other themes.
   =================================================================== */
body.ctc-site .wp-block-group__inner-container{
  display:contents;
  padding:0;
  margin-inline:0;
  max-inline-size:none;
}

body.ctc-site *{box-sizing:border-box;}
body.ctc-site img{max-width:100%;}
body.ctc-site .ctc-shell{max-width:1180px;margin-inline:auto;padding-inline:20px;}
body.ctc-site p{font-size:var(--ctc-fs-body);line-height:1.6;}

/* ===================================================================
   This site is fully custom-built with blocks, page by page. Remove
   GeneratePress's default page title and right sidebar so a page's own
   blocks render edge to edge instead of squeezed into an 840px column.
   =================================================================== */
body.ctc-site.page .entry-header{display:none;}
body.ctc-site.page .site-content{display:block;}
body.ctc-site.page .content-area{width:100%;max-width:100%;}
body.ctc-site.page .sidebar{display:none;}
body.ctc-site.page .inside-article{padding:0;max-width:none;}

/* GeneratePress's "Separate Containers" layout mode paints its own
   background-colour behind .inside-article (var(--base-3), a near-white
   fill from its own colour system) to look like a raised card. That box
   sits at GeneratePress's own container width, not the real viewport
   edge, so it read as a white band that stops short of full width. This
   site paints every section's background itself, so remove GP's card
   fill entirely rather than trying to widen it. */
body.ctc-site.separate-containers .inside-article{background:none;box-shadow:none;}

/* GeneratePress puts a default margin-top on #main and again on
   .entry-content. Both are empty of border/padding above them, so the
   larger one (34px) collapses straight through every wrapper up to the
   very top of the page, showing as blank space above the nav on every
   page load, logged in or not. Zero both, scoped to this site. */
body.ctc-site.page #main.site-main{margin-top:0;}
body.ctc-site.page .entry-content{margin-top:0;}

/* ===================================================================
   FULL-BLEED, WITHOUT VIEWPORT UNITS.
   The hero, photo CTA and footer previously broke out with
   `width:100vw; margin-left:calc(50% - 50vw)`. 100vw counts the
   scrollbar but the visible page does not, so on a 961px window with a
   15px scrollbar those bands rendered 961px wide starting at -17px:
   shifted left, overflowing right, and leaving the hero heading 3px
   from the screen edge instead of 20px. Invisible on a wide desktop
   where the content column hits its max-width anyway, obvious between
   roughly 950px and 1200px.

   Rather than guess the scrollbar width, remove the two things that
   made the content column narrower than the window in the first place,
   so "full width" is simply 100%. Every section still gets its own
   gutter from .ctc-shell, so nothing ends up flush to the edge.
   =================================================================== */
body.ctc-site.page #page.site{max-width:100%;}
body.ctc-site.page #main.site-main{margin:0;width:100%;}

/* GeneratePress's own site header (site title + its own nav) duplicates
   the custom nav built as the first block on every page, so it is
   redundant everywhere on this site, not just this page. Same for its
   default site footer, now that every page carries its own custom
   footer band as the last block. */
body.ctc-site .site-header{display:none;}
body.ctc-site .site-footer{display:none;}

/* With the page container uncapped and #main's margin removed above,
   the content column is exactly as wide as the window, so a full-bleed
   band is just 100%. GeneratePress's own .alignfull only breaks out by
   its 40px content padding and sits behind an .entry-content wrapper,
   so this still has to be written as a descendant override. */
body.ctc-site.page .entry-content .alignfull{
  width:100% !important;
  max-width:100% !important;
  margin-left:0 !important;
  margin-right:0 !important;
}

/* ---------- buttons, one system, reused everywhere ----------
   The element that LOOKS like a button is either the inner <a> of a
   core/button block, or a standalone <button>/<input>/<a> carrying the
   classes directly (the Load More control, the contact form's submit).
   Both shapes are styled here.

   The core/button wrapper div carries the same .ctc-btn class as its
   inner link, so it must be explicitly reset: when it shared this rule it
   took the same padding and border and wrapped every button in an
   invisible 28px tall, 50px wide collar that threw out the spacing
   around every call to action on the site. */
body.ctc-site .ctc-btn .wp-block-button__link,
body.ctc-site button.ctc-btn,
body.ctc-site input.ctc-btn,
body.ctc-site a.ctc-btn{
  display:inline-flex;align-items:center;gap:8px;padding:13px 24px;border-radius:var(--ctc-radius);
  font-weight:700;font-size:var(--ctc-fs-small);border:1px solid transparent;text-decoration:none;
  font-family:'Manrope',sans-serif;cursor:pointer;
  transition:background-color .15s ease,color .15s ease,border-color .15s ease;
}
body.ctc-site .wp-block-button.ctc-btn{padding:0;border:0;background:none;}

body.ctc-site .ctc-btn-primary .wp-block-button__link,
body.ctc-site button.ctc-btn-primary,
body.ctc-site input.ctc-btn-primary{background:var(--ctc-coral);color:var(--ctc-coral-ink);}
body.ctc-site .ctc-btn-primary .wp-block-button__link:hover,
body.ctc-site button.ctc-btn-primary:hover,
body.ctc-site input.ctc-btn-primary:hover{background:#e6491f;}

body.ctc-site .ctc-btn-brand .wp-block-button__link,
body.ctc-site button.ctc-btn-brand,
body.ctc-site input.ctc-btn-brand{background:var(--ctc-brand);color:#fff;}
body.ctc-site .ctc-btn-brand .wp-block-button__link:hover,
body.ctc-site button.ctc-btn-brand:hover,
body.ctc-site input.ctc-btn-brand:hover{background:var(--ctc-brand-deep);}

body.ctc-site .ctc-btn-white .wp-block-button__link,
body.ctc-site button.ctc-btn-white,
body.ctc-site input.ctc-btn-white{background:#fff;color:var(--ctc-brand-deep);}
body.ctc-site .ctc-btn-white .wp-block-button__link:hover,
body.ctc-site button.ctc-btn-white:hover,
body.ctc-site input.ctc-btn-white:hover{background:var(--ctc-surface);}

body.ctc-site .ctc-btn-outline-light .wp-block-button__link,
body.ctc-site button.ctc-btn-outline-light{border-color:rgba(255,255,255,.6);color:#fff;background:transparent;}
body.ctc-site .ctc-btn-outline-light .wp-block-button__link:hover,
body.ctc-site button.ctc-btn-outline-light:hover{background:rgba(255,255,255,.15);border-color:#fff;}

body.ctc-site .ctc-btn-outline-dark .wp-block-button__link,
body.ctc-site button.ctc-btn-outline-dark{border-color:var(--ctc-line);color:var(--ctc-ink);background:#fff;}
body.ctc-site .ctc-btn-outline-dark .wp-block-button__link:hover,
body.ctc-site button.ctc-btn-outline-dark:hover{background:var(--ctc-surface);border-color:var(--ctc-ink-soft);}

body.ctc-site .ctc-nav-cta{transition:background-color .15s ease;}
body.ctc-site .ctc-nav-cta:hover{background:var(--ctc-brand-deep);}

body.ctc-site .ctc-imgbox{width:100%;overflow:hidden;background:#e7e5f2;border-radius:var(--ctc-radius);}
/* core/image wraps the img in a <figure>. Without an explicit height on
   that figure, the img's height:100% has no definite box to resolve
   against, so the photo renders at its natural ratio and leaves a strip
   of the placeholder colour inside every aspect-ratio box. */
body.ctc-site .ctc-imgbox figure{height:100%;margin:0;display:block;}
body.ctc-site .ctc-imgbox img{width:100%;height:100%;object-fit:cover;display:block;}

body.ctc-site .ctc-eyebrow{display:inline-block;font-weight:800;font-size:11.5px;letter-spacing:.09em;
  text-transform:uppercase;color:var(--ctc-coral);margin-bottom:12px;font-family:'Manrope',sans-serif;}
body.ctc-site .ctc-sec{padding-block:56px;}
body.ctc-site .ctc-sec-head h2{font-family:'Sora',sans-serif;font-size:clamp(24px,3vw,32px);font-weight:800;letter-spacing:-.01em;margin:0;}
body.ctc-site .ctc-sec-head p.ctc-lead{color:var(--ctc-ink-soft);margin-top:12px;font-size:var(--ctc-fs-lead);line-height:1.65;}
/* Full-bleed section band without restructuring the block markup: the
   element keeps the .ctc-shell content width, and a box-shadow paints
   the same color out to the viewport edge, clipped so it never causes
   horizontal scroll. */
body.ctc-site .ctc-sec-alt{
  position:relative;
  background:var(--ctc-surface);
  box-shadow:0 0 0 100vmax var(--ctc-surface);
  clip-path:inset(0 -100vmax);
}

/* ---------- nav, a real full-width sticky header band ----------
   Was plain transparent text sitting on the page background, so it
   read as unfinished and never looked like a header at all. Same
   box-shadow breakout as the alternating sections paints a white band
   the full width of the viewport behind the shell-width nav content,
   and position:sticky keeps it visible while the visitor scrolls. */
body.ctc-site .ctc-brand{font-family:'Sora',sans-serif;font-weight:800;font-size:18.5px;color:var(--ctc-ink);
  display:flex;align-items:center;gap:10px;}
body.ctc-site .ctc-brand svg{flex:none;}
body.ctc-site .ctc-brand-on-dark{color:#fff;}
body.ctc-site .ctc-brand span{color:var(--ctc-coral);}
/* Below the nav-links breakpoint only the wordmark and the phone button
   remain, and at phone widths those two together were wider than the
   screen: the button ran from 277px to 422px on a 375px viewport, so the
   whole page scrolled sideways. Shrink both, then allow a second line on
   the narrowest screens rather than letting anything overflow. */
@media(max-width:780px){
  body.ctc-site .ctc-brand{font-size:16px;min-width:0;}
  body.ctc-site .ctc-brand svg{width:28px;height:28px;}
  body.ctc-site .ctc-nav-cta{padding:9px 14px;font-size:12.5px;}
}
@media(max-width:430px){
    body.ctc-site .ctc-brand{font-size:15px;}
}
body.ctc-site .ctc-nav-cta{background:var(--ctc-brand);color:#fff;border-radius:var(--ctc-radius);padding:10px 18px;
  font-size:13px;font-weight:700;text-decoration:none;white-space:nowrap;}

/* ---------- hero, full width ---------- */
body.ctc-site .ctc-hero{position:relative;width:100%;min-height:600px;display:flex;align-items:center;overflow:hidden;}
body.ctc-site .ctc-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 68%;}
body.ctc-site .ctc-hero-overlay{position:absolute;inset:0;
  background:linear-gradient(100deg, rgba(30,33,88,.95) 0%, rgba(30,33,88,.82) 48%, rgba(30,33,88,.42) 100%);}
body.ctc-site .ctc-hero-wrap{position:relative;width:100%;padding-block:80px;}
body.ctc-site .ctc-hero-content{max-width:620px;}
body.ctc-site .ctc-hero-content .ctc-eyebrow{margin-bottom:14px;color:var(--ctc-coral);}
body.ctc-site .ctc-hero-content h1{font-family:'Sora',sans-serif;font-weight:800;color:#fff;font-size:clamp(30px,4.4vw,46px);
  line-height:1.12;letter-spacing:-.01em;margin:0;}
body.ctc-site .ctc-hero-content p{margin-top:18px;font-size:var(--ctc-fs-lead);line-height:1.62;color:rgba(255,255,255,.88);}
body.ctc-site .ctc-hero-content .ctc-ctas{display:flex;gap:12px;margin-top:28px;flex-wrap:wrap;}

/* ---------- intro strip ---------- */
body.ctc-site .ctc-intro-strip{padding-block:44px 10px;}
body.ctc-site .ctc-intro-strip h2{font-family:'Sora',sans-serif;font-size:clamp(21px,2.6vw,27px);font-weight:800;margin:0;}
body.ctc-site .ctc-intro-strip p{margin-top:12px;color:var(--ctc-ink-soft);font-size:var(--ctc-fs-lead);line-height:1.65;}

/* ---------- trust strip ---------- */
body.ctc-site .ctc-trust-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-top:8px;}
@media(max-width:900px){body.ctc-site .ctc-trust-row{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:520px){body.ctc-site .ctc-trust-row{grid-template-columns:minmax(0,1fr);}}
body.ctc-site .ctc-trust-item{background:#fff;border:1px solid var(--ctc-line);border-radius:var(--ctc-radius);padding:16px;
  font-size:13.5px;font-weight:600;display:flex;gap:10px;align-items:flex-start;line-height:1.4;}
body.ctc-site .ctc-trust-item::before{content:"\2713";flex:none;color:#fff;background:var(--ctc-brand);
  width:18px;height:18px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:11px;margin-top:1px;}
body.ctc-site .ctc-related-list li a::before{content:"\2192";flex:none;color:var(--ctc-brand);font-weight:700;}
body.ctc-site .ctc-chip::before{content:"";}

/* ---------- definition, two column ---------- */
body.ctc-site .ctc-split{display:grid;grid-template-columns:1.1fr .9fr;gap:44px;align-items:center;margin-top:26px;}
@media(max-width:860px){body.ctc-site .ctc-split{grid-template-columns:minmax(0,1fr);}}
body.ctc-site .ctc-split p{font-size:var(--ctc-fs-body);line-height:1.7;color:var(--ctc-ink-soft);}
body.ctc-site .ctc-split p+p{margin-top:16px;}
body.ctc-site .ctc-split .ctc-imgbox{aspect-ratio:4/3.3;}

/* ---------- icon list ---------- */
body.ctc-site .ctc-icon-list{margin-top:24px;display:grid;grid-template-columns:1fr 1fr;gap:14px 28px;list-style:none;padding:0;}
@media(max-width:700px){body.ctc-site .ctc-icon-list{grid-template-columns:minmax(0,1fr);}}
body.ctc-site .ctc-icon-list li{display:flex;gap:12px;align-items:flex-start;font-size:var(--ctc-fs-body);line-height:1.55;color:var(--ctc-ink);margin:0;}
body.ctc-site .ctc-icon-list.ctc-warn li::before{content:"!";background:var(--ctc-coral);}
body.ctc-site .ctc-icon-list li::before{content:"\2713";flex:none;color:#fff;background:var(--ctc-brand);
  width:20px;height:20px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:12px;margin-top:2px;}

/* ---------- card grid (services + scenarios) ---------- */
body.ctc-site .ctc-cardgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:28px;}
body.ctc-site .ctc-cardgrid.ctc-cols-3{grid-template-columns:repeat(3,minmax(0,1fr));}
body.ctc-site .ctc-cardgrid.ctc-cols-2{grid-template-columns:repeat(2,minmax(0,1fr));}
@media(max-width:900px){body.ctc-site .ctc-cardgrid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:520px){body.ctc-site .ctc-cardgrid{grid-template-columns:minmax(0,1fr);}}
body.ctc-site .ctc-card{background:#fff;border:1px solid var(--ctc-line);border-radius:var(--ctc-radius);overflow:hidden;}
/* The accent strip's colour was only ever written into the block's
   editor-settings comment, never onto the rendered element itself, so
   every card showed a blank 5px white gap above its image instead of a
   colour accent. Set a real background here and alternate it the same
   way the card colours were designed to alternate. */
body.ctc-site .ctc-card .ctc-accent{height:5px;background:var(--ctc-brand);}
body.ctc-site .ctc-card:nth-child(even) .ctc-accent{background:var(--ctc-coral);}
body.ctc-site .ctc-card .ctc-imgbox{aspect-ratio:4/3;border-radius:0;}
body.ctc-site .ctc-card-body{padding:17px;}
body.ctc-site .ctc-card-body h3{font-family:'Sora',sans-serif;font-size:15.5px;font-weight:700;margin:0;}
body.ctc-site .ctc-card-body p{font-size:var(--ctc-fs-small);color:var(--ctc-ink-soft);margin-top:6px;line-height:1.5;}
body.ctc-site .ctc-card-body a{display:inline-block;margin-top:10px;font-size:13px;font-weight:700;color:var(--ctc-brand);text-decoration:none;}
/* a hub card listing several sub-page links, rather than one link per card */
body.ctc-site .ctc-card-links{list-style:none;padding:0;margin:12px 0 0;display:flex;flex-direction:column;gap:2px;}
body.ctc-site .ctc-card-links li{margin:0;}
body.ctc-site .ctc-card-links a{display:block;margin-top:0;padding-block:7px;font-size:13.5px;font-weight:600;
  color:var(--ctc-ink);border-top:1px solid var(--ctc-line);text-decoration:none;}
body.ctc-site .ctc-card-links li:first-child a{border-top:none;}

/* ---------- all services, icon cards + load more ---------- */
body.ctc-site .ctc-svc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:28px;}
@media(max-width:860px){body.ctc-site .ctc-svc-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:520px){body.ctc-site .ctc-svc-grid{grid-template-columns:minmax(0,1fr);}}
body.ctc-site .ctc-svc-card{background:#fff;border:1px solid var(--ctc-line);border-radius:var(--ctc-radius);padding:20px;}
body.ctc-site .ctc-svc-card[hidden]{display:none;}
body.ctc-site .ctc-svc-icon{width:40px;height:40px;border-radius:var(--ctc-radius);background:var(--ctc-surface);
  display:flex;align-items:center;justify-content:center;margin-bottom:14px;color:var(--ctc-brand);}
body.ctc-site .ctc-svc-card:nth-child(even) .ctc-svc-icon{color:var(--ctc-coral);}
body.ctc-site .ctc-svc-card h3{font-family:'Sora',sans-serif;font-size:15px;font-weight:700;margin:0;}
body.ctc-site .ctc-svc-card p{font-size:var(--ctc-fs-small);color:var(--ctc-ink-soft);margin-top:6px;line-height:1.5;}
body.ctc-site .ctc-svc-card a{display:inline-block;margin-top:10px;font-size:13px;font-weight:700;color:var(--ctc-brand);text-decoration:none;}
body.ctc-site .ctc-load-more-wrap{display:flex;justify-content:center;margin-top:26px;}

/* ---------- steps ---------- */
body.ctc-site .ctc-steps{margin-top:28px;display:flex;flex-direction:column;}
body.ctc-site .ctc-step{display:flex;gap:18px;padding-block:16px;border-top:1px solid var(--ctc-line);}
body.ctc-site .ctc-step-num{flex:none;width:36px;height:36px;border-radius:var(--ctc-radius);background:var(--ctc-brand);color:#fff;
  display:flex;align-items:center;justify-content:center;font-family:'Sora',sans-serif;font-weight:700;font-size:14px;}
body.ctc-site .ctc-step p{font-size:var(--ctc-fs-body);line-height:1.6;color:var(--ctc-ink-soft);margin:0;}
body.ctc-site .ctc-step p strong{color:var(--ctc-ink);}

/* ---------- callout ---------- */
body.ctc-site .ctc-callout{background:var(--ctc-coral-soft);border:1px solid #ffd8c9;border-radius:var(--ctc-radius);
  padding:26px 28px;display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;}
body.ctc-site .ctc-callout h3{font-family:'Sora',sans-serif;font-size:19px;font-weight:800;margin:0;}
body.ctc-site .ctc-callout p{margin-top:6px;font-size:var(--ctc-fs-body);color:var(--ctc-ink-soft);}

/* ---------- compare ---------- */
body.ctc-site .ctc-compare-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:26px;}
@media(max-width:820px){body.ctc-site .ctc-compare-grid{grid-template-columns:minmax(0,1fr);}}
body.ctc-site .ctc-compare-card{background:#fff;border:1px solid var(--ctc-line);border-radius:var(--ctc-radius);padding:22px;}
body.ctc-site .ctc-compare-card.ctc-on{border-color:var(--ctc-brand);box-shadow:0 0 0 2px var(--ctc-brand) inset;}
body.ctc-site .ctc-compare-card h3{font-family:'Sora',sans-serif;font-size:16px;font-weight:700;margin:0;}
body.ctc-site .ctc-compare-card p{margin-top:8px;font-size:var(--ctc-fs-small);line-height:1.55;color:var(--ctc-ink-soft);}
body.ctc-site .ctc-pill{display:inline-block;font-size:10.5px;font-weight:800;letter-spacing:.06em;
  text-transform:uppercase;color:var(--ctc-brand);background:var(--ctc-surface);border-radius:var(--ctc-radius);
  padding:4px 10px;margin-bottom:10px;}

/* ---------- coverage chips ---------- */
body.ctc-site .ctc-chip-row{display:flex;gap:10px;margin-top:20px;flex-wrap:wrap;}
body.ctc-site .ctc-chip{background:#fff;border:1px solid var(--ctc-line);border-radius:var(--ctc-radius);padding:10px 18px;
  font-size:13.5px;font-weight:700;font-family:'Sora',sans-serif;text-decoration:none;color:var(--ctc-ink);}

/* ---------- placeholder box ---------- */
body.ctc-site .ctc-placeholder-box{border:1px dashed var(--ctc-line);border-radius:var(--ctc-radius);padding:28px;margin-top:24px;
  background:#fff;font-size:var(--ctc-fs-body);line-height:1.6;color:var(--ctc-ink-soft);}

/* ---------- related + guide ---------- */
body.ctc-site .ctc-related-list{margin-top:22px;display:grid;grid-template-columns:1fr 1fr;gap:10px 24px;list-style:none;padding:0;}
@media(max-width:700px){body.ctc-site .ctc-related-list{grid-template-columns:minmax(0,1fr);}}
body.ctc-site .ctc-related-list li{margin:0;}
body.ctc-site .ctc-related-list li a{display:flex;align-items:center;gap:10px;font-size:var(--ctc-fs-body);font-weight:600;
  padding-block:10px;border-bottom:1px solid var(--ctc-line);text-decoration:none;color:var(--ctc-ink);}

body.ctc-site .ctc-guide-box{margin-top:24px;background:var(--ctc-surface);border-radius:var(--ctc-radius);padding:24px 26px;
  display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;}
body.ctc-site .ctc-guide-box p{font-size:var(--ctc-fs-body);color:var(--ctc-ink-soft);margin:0;}
body.ctc-site .ctc-guide-box a{font-weight:700;font-size:14px;color:var(--ctc-brand);white-space:nowrap;text-decoration:none;}

/* ---------- faq ---------- */
body.ctc-site .ctc-faq{margin-top:24px;border-top:1px solid var(--ctc-line);}
body.ctc-site .ctc-faq-item{border-bottom:1px solid var(--ctc-line);}
/* GeneratePress styles every <button> globally (background #55555e, white
   text, padding 10px 20px). That 20px side padding was indenting the
   question text 20px further in than its own answer paragraph, which is the
   misalignment the client spotted. Zero the inline padding explicitly, and
   keep the block padding for the row's height. */
body.ctc-site .ctc-faq-q{width:100%;display:flex;justify-content:space-between;align-items:center;gap:16px;
  padding:18px 0;text-align:left;font-family:'Sora',sans-serif;font-weight:700;font-size:15px;
  background:none;border:none;cursor:pointer;color:var(--ctc-ink);}
body.ctc-site .ctc-faq-q::after{content:"+";flex:none;font-size:20px;color:var(--ctc-brand);transition:transform .15s;}
body.ctc-site .ctc-faq-item.is-open .ctc-faq-q::after{transform:rotate(45deg);}
/* A <p> keeps the browser's own default top/bottom margin unless it is
   reset. That default margin was stacking on top of the question
   button's own padding, opening an oversized, uneven-looking gap
   between a question and its own answer. */
body.ctc-site .ctc-faq-a{font-size:var(--ctc-fs-body);line-height:1.65;color:var(--ctc-ink-soft);
  margin:0;padding-bottom:18px;display:none;}
body.ctc-site .ctc-faq-item.is-open .ctc-faq-a{display:block;}

/* ---------- secondary cta, flat ---------- */
body.ctc-site .ctc-cta-flat{background:var(--ctc-brand);border-radius:var(--ctc-radius);padding:40px 36px;
  display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;color:#fff;}
body.ctc-site .ctc-cta-flat h3{font-family:'Sora',sans-serif;font-size:clamp(19px,2.4vw,24px);font-weight:800;margin:0;}

/* ---------- final cta, full width photo + overlay ---------- */
body.ctc-site .ctc-cta-photo{position:relative;width:100%;min-height:300px;display:flex;align-items:center;overflow:hidden;}
body.ctc-site .ctc-cta-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
body.ctc-site .ctc-cta-photo-overlay{position:absolute;inset:0;background:linear-gradient(120deg, rgba(255,90,54,.88) 0%, rgba(35,38,95,.92) 100%);}
body.ctc-site .ctc-cta-photo-in{position:relative;width:100%;padding-block:52px;color:#fff;
  display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;}
body.ctc-site .ctc-cta-photo-in h3{font-family:'Sora',sans-serif;font-size:clamp(23px,3vw,34px);font-weight:800;margin:0;}
body.ctc-site .ctc-cta-photo-in p{margin-top:10px;font-size:var(--ctc-fs-body);color:rgba(255,255,255,.88);}

/* ---------- contact ---------- */
body.ctc-site .ctc-contact-wrap{display:grid;grid-template-columns:.9fr 1.1fr;gap:44px;margin-top:26px;}
@media(max-width:860px){body.ctc-site .ctc-contact-wrap{grid-template-columns:minmax(0,1fr);}}
body.ctc-site .ctc-contact-wrap p{font-size:var(--ctc-fs-lead);line-height:1.65;color:var(--ctc-ink-soft);}
body.ctc-site .ctc-contact-wrap .ctc-icon-list{grid-template-columns:1fr;margin-top:22px;}
body.ctc-site .ctc-contact-form{background:#fff;border:1px solid var(--ctc-line);border-radius:var(--ctc-radius);padding:26px;
  display:grid;gap:16px;}
body.ctc-site .ctc-field label{display:block;font-size:12.5px;font-weight:700;color:var(--ctc-ink-soft);margin-bottom:6px;}
body.ctc-site .ctc-field .ctc-input{border:1px solid var(--ctc-line);border-radius:var(--ctc-radius);padding:12px 14px;
  font-size:14px;color:var(--ctc-ink-soft);background:#fafafe;}
body.ctc-site .ctc-form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
@media(max-width:500px){body.ctc-site .ctc-form-row{grid-template-columns:minmax(0,1fr);}}

/* ---------- real Contact Form 7 markup, styled to match the mock it replaced ---------- */
body.ctc-site .ctc-field span.wpcf7-form-control-wrap{display:block;}
body.ctc-site .ctc-field input.ctc-input,
body.ctc-site .ctc-field textarea.ctc-input{
  width:100%;display:block;border:1px solid var(--ctc-line);border-radius:var(--ctc-radius);
  padding:12px 14px;font-size:14px;font-family:'Manrope',sans-serif;color:var(--ctc-ink);background:#fafafe;
}
body.ctc-site .ctc-field textarea.ctc-input{min-height:60px;resize:vertical;}
body.ctc-site .ctc-field input.ctc-input:focus,
body.ctc-site .ctc-field textarea.ctc-input:focus{outline:2px solid var(--ctc-brand);outline-offset:1px;}
body.ctc-site .wpcf7-not-valid-tip{display:block;margin-top:6px;font-size:12.5px;color:var(--ctc-coral);}
body.ctc-site .wpcf7-response-output{margin-top:16px;border-radius:var(--ctc-radius);padding:12px 16px;font-size:14px;}
/* The submit input is covered by the shared button system above
   (input.ctc-btn / input.ctc-btn-brand); only its spacing is specific here. */
body.ctc-site input.ctc-btn.wpcf7-submit{margin-top:4px;}
body.ctc-site .wpcf7-spinner{margin-left:10px;}

/* ---------- footer, full width, four columns ---------- */
body.ctc-site .ctc-footer-band{
  background:var(--ctc-brand-deep);
  color:rgba(255,255,255,.78);
  margin-top:10px;
}
body.ctc-site .ctc-footer-main{
  padding-block:52px 36px;
  display:grid;
  grid-template-columns:1.3fr 1fr 1fr 1fr;
  gap:32px;
}
@media(max-width:900px){body.ctc-site .ctc-footer-main{grid-template-columns:1fr 1fr;}}
@media(max-width:560px){body.ctc-site .ctc-footer-main{grid-template-columns:1fr;}}
body.ctc-site .ctc-footer-brand p{color:rgba(255,255,255,.7);font-size:14px;line-height:1.6;margin-top:14px;max-width:34ch;}
body.ctc-site .ctc-footer-col h4{font-family:'Sora',sans-serif;font-weight:700;font-size:13.5px;
  letter-spacing:.05em;text-transform:uppercase;color:#fff;margin:0 0 16px;}
body.ctc-site .ctc-footer-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;}
body.ctc-site .ctc-footer-col a{color:rgba(255,255,255,.78);text-decoration:none;font-size:14px;}
body.ctc-site .ctc-footer-nap{display:flex;flex-direction:column;gap:10px;margin-top:6px;}
body.ctc-site .ctc-footer-nap div{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:rgba(255,255,255,.78);}
body.ctc-site .ctc-footer-nap svg{flex:none;color:var(--ctc-coral);margin-top:2px;}
body.ctc-site .ctc-footer-bottom{
  border-top:1px solid rgba(255,255,255,.14);
  padding-block:20px;
  display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;
  font-size:12.5px;color:rgba(255,255,255,.55);
}
body.ctc-site .ctc-footer-bottom a{color:rgba(255,255,255,.72);text-decoration:none;}
/* The developer credit sits in the same core/html block as the copyright
   line. flex-basis:100% drops it onto its own row inside this
   space-between bar, so the copyright and in-house lines keep the left
   and right positions they already had. The bar gap:16px spaces it. */
body.ctc-site .ctc-footer-credit{flex-basis:100%;}

/* ---------- dynamic posts, query loop ---------- */
body.ctc-site .ctc-postgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:28px;
  list-style:none;padding:0;margin-inline:0;}
@media(max-width:900px){body.ctc-site .ctc-postgrid{grid-template-columns:1fr 1fr;}}
@media(max-width:560px){body.ctc-site .ctc-postgrid{grid-template-columns:1fr;}}
/* The Query Loop's own "columns" display layout adds
   is-flex-container/columns-3 classes that fight this grid for the
   card's width, leaving a narrow, squashed card. The block is now built
   without that layout option, and width:auto here is a backstop in
   case a future edit in the block editor turns it back on. */
body.ctc-site .ctc-postgrid > .wp-block-post{background:#fff;border:1px solid var(--ctc-line);border-radius:var(--ctc-radius);
  overflow:hidden;padding:0;width:auto;max-width:none;list-style:none;}
body.ctc-site .ctc-postgrid .wp-block-post-featured-image{margin:0;}
body.ctc-site .ctc-postgrid .wp-block-post-featured-image img{aspect-ratio:4/3;object-fit:cover;width:100%;display:block;}
body.ctc-site .ctc-postgrid .wp-block-post-title{font-family:'Sora',sans-serif;font-size:15.5px;font-weight:700;
  margin:16px 17px 0;line-height:1.3;}
body.ctc-site .ctc-postgrid .wp-block-post-title a{color:var(--ctc-ink);text-decoration:none;}
body.ctc-site .ctc-postgrid .wp-block-post-excerpt{font-size:var(--ctc-fs-small);color:var(--ctc-ink-soft);
  margin:6px 17px 17px;line-height:1.5;}

/* ===================================================================
   SERVICES HUB (row 1302). This page is a directory, so its job is to
   get a visitor to the right document-type page quickly. It leads with
   the document list rather than a marketing hero, and deliberately
   shares none of the homepage's section treatments beyond the palette,
   type and button system.
   =================================================================== */

/* compact two-column page header, not the homepage's full-bleed photo hero */
body.ctc-site .ctc-pagehead{display:grid;grid-template-columns:1.05fr .95fr;gap:44px;align-items:center;padding-block:40px;}
@media(max-width:860px){body.ctc-site .ctc-pagehead{grid-template-columns:minmax(0,1fr);gap:26px;}}
body.ctc-site .ctc-pagehead h1{font-family:'Sora',sans-serif;font-weight:800;font-size:clamp(27px,3.6vw,40px);
  line-height:1.14;letter-spacing:-.01em;margin:0;color:var(--ctc-ink);}
body.ctc-site .ctc-pagehead p{margin-top:16px;font-size:var(--ctc-fs-lead);line-height:1.6;color:var(--ctc-ink-soft);}
body.ctc-site .ctc-pagehead .ctc-ctas{display:flex;gap:12px;margin-top:24px;flex-wrap:wrap;}
body.ctc-site .ctc-pagehead .ctc-imgbox{aspect-ratio:4/3;}

/* single ruled line of facts, instead of the homepage's five boxed cards */
body.ctc-site .ctc-factline{display:flex;flex-wrap:wrap;gap:10px 26px;padding-block:18px;border-block:1px solid var(--ctc-line);}
body.ctc-site .ctc-factline span{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--ctc-ink-soft);}
body.ctc-site .ctc-factline span::before{content:"\2713";color:var(--ctc-brand);font-weight:800;}

/* the directory itself: two category panels listing every document type */
body.ctc-site .ctc-dir{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-top:28px;}
@media(max-width:820px){body.ctc-site .ctc-dir{grid-template-columns:minmax(0,1fr);}}
body.ctc-site .ctc-dir-panel{border:1px solid var(--ctc-line);border-radius:var(--ctc-radius);overflow:hidden;
  background:#fff;display:flex;flex-direction:column;}
body.ctc-site .ctc-dir-panel .ctc-imgbox{aspect-ratio:16/7;border-radius:0;}
body.ctc-site .ctc-dir-head{padding:20px 22px 12px;}
body.ctc-site .ctc-dir-head h2{font-family:'Sora',sans-serif;font-size:19px;font-weight:800;margin:0;}
body.ctc-site .ctc-dir-head p{margin-top:8px;font-size:var(--ctc-fs-small);color:var(--ctc-ink-soft);line-height:1.5;}
body.ctc-site .ctc-dir-list{list-style:none;margin:0;padding:0 22px;display:flex;flex-direction:column;}
body.ctc-site .ctc-dir-list li{margin:0;}
body.ctc-site .ctc-dir-list a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-block:11px;
  border-top:1px solid var(--ctc-line);font-size:14.5px;font-weight:600;color:var(--ctc-ink);text-decoration:none;}
body.ctc-site .ctc-dir-list a::after{content:"\2192";color:var(--ctc-brand);font-weight:700;flex:none;}
body.ctc-site .ctc-dir-list a:hover{color:var(--ctc-brand);}
body.ctc-site .ctc-dir-foot{margin-top:auto;padding:16px 22px 20px;}

/* horizontal numbered process strip, not the homepage's vertical steps */
body.ctc-site .ctc-steprow{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px;margin-top:30px;}
@media(max-width:900px){body.ctc-site .ctc-steprow{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:520px){body.ctc-site .ctc-steprow{grid-template-columns:minmax(0,1fr);}}
body.ctc-site .ctc-steprow .ctc-stepcol{border-top:3px solid var(--ctc-brand);padding-top:14px;}
body.ctc-site .ctc-steprow .ctc-stepno{font-family:'Sora',sans-serif;font-weight:800;font-size:12.5px;
  color:var(--ctc-coral);letter-spacing:.08em;}
body.ctc-site .ctc-steprow p{margin-top:7px;font-size:var(--ctc-fs-small);line-height:1.5;color:var(--ctc-ink-soft);}

/* ruled rows for the three-way comparison, not the homepage's three cards */
body.ctc-site .ctc-rulerows{margin-top:26px;border-top:1px solid var(--ctc-line);}
body.ctc-site .ctc-rulerow{display:grid;grid-template-columns:250px minmax(0,1fr);gap:24px;padding-block:18px;
  border-bottom:1px solid var(--ctc-line);}
@media(max-width:700px){body.ctc-site .ctc-rulerow{grid-template-columns:minmax(0,1fr);gap:6px;}}
body.ctc-site .ctc-rulerow h3{font-family:'Sora',sans-serif;font-size:16px;font-weight:700;margin:0;color:var(--ctc-ink);}
body.ctc-site .ctc-rulerow .ctc-tag{font-size:11.5px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;
  color:var(--ctc-coral);display:block;margin-bottom:5px;}
body.ctc-site .ctc-rulerow p{margin:0;font-size:var(--ctc-fs-body);line-height:1.6;color:var(--ctc-ink-soft);}

/* solid centred closing CTA, no photograph, so it does not repeat the homepage band */
body.ctc-site .ctc-cta-solid{background:var(--ctc-brand-deep);color:#fff;padding-block:52px;text-align:center;}
body.ctc-site .ctc-cta-solid h2{font-family:'Sora',sans-serif;font-size:clamp(23px,3vw,32px);font-weight:800;margin:0;color:#fff;}
body.ctc-site .ctc-cta-solid p{margin-top:14px;font-size:var(--ctc-fs-lead);color:rgba(255,255,255,.82);}
body.ctc-site .ctc-cta-solid .wp-block-buttons{display:flex;gap:12px;justify-content:center;margin-top:26px;flex-wrap:wrap;}

/* ===================================================================
   CATEGORY HUB PAGES (rows 1303 individual, 1304 corporate).
   A shared vocabulary for the two sibling hubs, distinct from both the
   homepage and the services hub. The pages differ from each other in
   their centrepiece: 1303 leads with a document chooser, 1304 leads
   with the two certification routes, which is the idea that page exists
   to explain.
   =================================================================== */

/* centred header with a wide, short image band beneath it */
body.ctc-site .ctc-hubhead{text-align:center;padding-block:44px 28px;max-width:760px;margin-inline:auto;}
body.ctc-site .ctc-hubhead h1{font-family:'Sora',sans-serif;font-weight:800;font-size:clamp(27px,3.6vw,38px);
  line-height:1.15;letter-spacing:-.01em;margin:0;color:var(--ctc-ink);}
body.ctc-site .ctc-hubhead p{margin-top:16px;font-size:var(--ctc-fs-lead);line-height:1.6;color:var(--ctc-ink-soft);}
body.ctc-site .ctc-hubhead .wp-block-buttons{display:flex;gap:12px;justify-content:center;margin-top:24px;flex-wrap:wrap;}
body.ctc-site .ctc-hubband .ctc-imgbox{aspect-ratio:16/5;border-radius:var(--ctc-radius);}
@media(max-width:700px){body.ctc-site .ctc-hubband .ctc-imgbox{aspect-ratio:16/9;}}

/* document chooser tiles, row 1303's centrepiece */
body.ctc-site .ctc-tilegrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:28px;}
@media(max-width:860px){body.ctc-site .ctc-tilegrid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:520px){body.ctc-site .ctc-tilegrid{grid-template-columns:minmax(0,1fr);}}
body.ctc-site .ctc-tile{display:block;border:1px solid var(--ctc-line);border-radius:var(--ctc-radius);
  padding:20px;background:#fff;text-decoration:none;color:var(--ctc-ink);
  transition:border-color .15s ease,box-shadow .15s ease;}
body.ctc-site .ctc-tile:hover{border-color:var(--ctc-brand);box-shadow:0 0 0 1px var(--ctc-brand);}
body.ctc-site .ctc-tile .ctc-tile-icon{width:38px;height:38px;border-radius:var(--ctc-radius);
  background:var(--ctc-surface);display:flex;align-items:center;justify-content:center;
  color:var(--ctc-brand);margin-bottom:13px;}
body.ctc-site .ctc-tile:nth-child(even) .ctc-tile-icon{color:var(--ctc-coral);}
body.ctc-site .ctc-tile strong{display:block;font-family:'Sora',sans-serif;font-size:15.5px;font-weight:700;line-height:1.3;}
body.ctc-site .ctc-tile span{display:block;margin-top:7px;font-size:var(--ctc-fs-small);
  color:var(--ctc-ink-soft);line-height:1.5;}

/* the two certification routes, row 1304's centrepiece */
body.ctc-site .ctc-routes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:28px;}
@media(max-width:820px){body.ctc-site .ctc-routes{grid-template-columns:minmax(0,1fr);}}
body.ctc-site .ctc-route{border:1px solid var(--ctc-line);border-radius:var(--ctc-radius);padding:24px;background:#fff;}
body.ctc-site .ctc-route.ctc-route-a{border-top:4px solid var(--ctc-brand);}
body.ctc-site .ctc-route.ctc-route-b{border-top:4px solid var(--ctc-coral);}
body.ctc-site .ctc-route .ctc-route-label{font-size:11.5px;font-weight:800;letter-spacing:.07em;
  text-transform:uppercase;color:var(--ctc-ink-soft);}
body.ctc-site .ctc-route h3{font-family:'Sora',sans-serif;font-size:18px;font-weight:800;margin:6px 0 0;}
body.ctc-site .ctc-route > p{margin-top:10px;font-size:var(--ctc-fs-body);line-height:1.6;color:var(--ctc-ink-soft);}
body.ctc-site .ctc-route ul{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:9px;}
body.ctc-site .ctc-route li{display:flex;gap:10px;align-items:flex-start;font-size:var(--ctc-fs-small);
  line-height:1.5;color:var(--ctc-ink);}
body.ctc-site .ctc-route li::before{content:"\2713";flex:none;color:#fff;background:var(--ctc-brand);
  width:18px;height:18px;border-radius:6px;display:flex;align-items:center;justify-content:center;
  font-size:11px;margin-top:2px;}
body.ctc-site .ctc-route-b li::before{background:var(--ctc-coral);}

/* numbered steps on a left rail, a third distinct process treatment */
body.ctc-site .ctc-steplist{margin-top:28px;padding-left:2px;}
body.ctc-site .ctc-steplist .ctc-sl-item{position:relative;padding-left:52px;padding-bottom:22px;
  border-left:2px solid var(--ctc-line);margin-left:16px;}
body.ctc-site .ctc-steplist .ctc-sl-item:last-child{border-left-color:transparent;padding-bottom:0;}
body.ctc-site .ctc-steplist .ctc-sl-num{position:absolute;left:-17px;top:-2px;width:32px;height:32px;
  border-radius:var(--ctc-radius);background:var(--ctc-brand);color:#fff;display:flex;align-items:center;
  justify-content:center;font-family:'Sora',sans-serif;font-weight:700;font-size:13.5px;}
body.ctc-site .ctc-steplist p{margin:0;font-size:var(--ctc-fs-body);line-height:1.6;color:var(--ctc-ink-soft);}

/* a quiet emphasis panel for the "we arrange, we do not certify" note */
body.ctc-site .ctc-note{margin-top:22px;border-left:3px solid var(--ctc-coral);background:var(--ctc-coral-soft);
  border-radius:0 var(--ctc-radius) var(--ctc-radius) 0;padding:18px 22px;}
body.ctc-site .ctc-note p{margin:0;font-size:var(--ctc-fs-body);line-height:1.6;color:var(--ctc-ink);}

/* ===================================================================
   DOCUMENT-TYPE HUBS (rows 1305, 1311, 1317, 1323, 1329, 1335, 1341,
   1347, 1353). Deliberately ICON-led rather than photo-led: there is no
   meaningfully different photograph for a certified copy of a driving
   licence versus an Emirates ID, and nine near-identical desk shots
   would read as filler. The large type icon also gives this whole tier
   its own identity, distinct from the photo-led pages above it.
   =================================================================== */

body.ctc-site .ctc-dochead{display:grid;grid-template-columns:auto 1fr;gap:26px;align-items:start;
  background:var(--ctc-surface);border-radius:var(--ctc-radius);padding:34px 32px;margin-top:26px;}
@media(max-width:700px){body.ctc-site .ctc-dochead{grid-template-columns:1fr;gap:18px;padding:26px 22px;}}
body.ctc-site .ctc-dochead .ctc-docicon{width:64px;height:64px;border-radius:var(--ctc-radius);
  background:var(--ctc-brand);color:#fff;display:flex;align-items:center;justify-content:center;}
body.ctc-site .ctc-dochead .ctc-docicon svg{width:34px;height:34px;}
body.ctc-site .ctc-dochead h1{font-family:'Sora',sans-serif;font-weight:800;
  font-size:clamp(25px,3.3vw,36px);line-height:1.15;letter-spacing:-.01em;margin:0;color:var(--ctc-ink);}
body.ctc-site .ctc-dochead p{margin-top:14px;font-size:var(--ctc-fs-lead);line-height:1.6;color:var(--ctc-ink-soft);}
body.ctc-site .ctc-dochead .wp-block-buttons{display:flex;gap:12px;margin-top:22px;flex-wrap:wrap;}

/* situation links as a pill row, not tiles and not a list */
body.ctc-site .ctc-situations{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px;}
body.ctc-site .ctc-situations a{display:inline-flex;align-items:center;gap:9px;padding:12px 18px;
  border:1px solid var(--ctc-line);border-radius:var(--ctc-radius);background:#fff;
  font-size:14px;font-weight:600;color:var(--ctc-ink);text-decoration:none;
  transition:border-color .15s ease,color .15s ease;}
body.ctc-site .ctc-situations a::after{content:"\2192";color:var(--ctc-brand);font-weight:700;}
body.ctc-site .ctc-situations a:hover{border-color:var(--ctc-brand);color:var(--ctc-brand);}

/* who can attend, a question specific to this tier */
body.ctc-site .ctc-eligibility{margin-top:24px;border:1px solid var(--ctc-line);border-left:4px solid var(--ctc-brand);
  border-radius:0 var(--ctc-radius) var(--ctc-radius) 0;padding:22px 26px;background:#fff;}
body.ctc-site .ctc-eligibility p{margin:0;font-size:var(--ctc-fs-body);line-height:1.65;color:var(--ctc-ink-soft);}
body.ctc-site .ctc-eligibility p + p{margin-top:12px;}

/* what to bring, a boxed checklist that reads as a packing list */
body.ctc-site .ctc-bring{margin-top:24px;background:var(--ctc-surface);border-radius:var(--ctc-radius);padding:24px 26px;}
body.ctc-site .ctc-bring ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:12px 26px;}
@media(max-width:700px){body.ctc-site .ctc-bring ul{grid-template-columns:1fr;}}
body.ctc-site .ctc-bring li{display:flex;gap:11px;align-items:flex-start;font-size:var(--ctc-fs-body);
  line-height:1.5;color:var(--ctc-ink);margin:0;}
body.ctc-site .ctc-bring li::before{content:"";flex:none;width:17px;height:17px;margin-top:3px;border-radius:5px;
  border:2px solid var(--ctc-brand);}

/* compact inline numbered steps, a fourth process treatment */
body.ctc-site .ctc-numsteps{margin-top:24px;counter-reset:ctcstep;display:flex;flex-direction:column;gap:14px;}
body.ctc-site .ctc-numsteps li{counter-increment:ctcstep;display:flex;gap:14px;align-items:flex-start;
  font-size:var(--ctc-fs-body);line-height:1.6;color:var(--ctc-ink-soft);margin:0;list-style:none;}
body.ctc-site .ctc-numsteps li::before{content:counter(ctcstep);flex:none;width:26px;height:26px;
  border-radius:50%;border:2px solid var(--ctc-brand);color:var(--ctc-brand);
  display:flex;align-items:center;justify-content:center;font-family:'Sora',sans-serif;
  font-weight:700;font-size:12.5px;margin-top:1px;}

/* ===================================================================
   SUB-SERVICE PAGES (the 45 deepest pages, rows 1306..1358 excluding
   the hubs). Each covers ONE situation end to end, and each sits three
   levels down, so these are the only pages that need a breadcrumb trail
   and the only ones using a two-column body with a facts panel beside
   the prose. That keeps them distinct from every tier above.
   =================================================================== */

body.ctc-site .ctc-crumbs{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding-block:20px 0;
  font-size:13.5px;color:var(--ctc-ink-soft);}
body.ctc-site .ctc-crumbs a{color:var(--ctc-ink-soft);text-decoration:none;}
body.ctc-site .ctc-crumbs a:hover{color:var(--ctc-brand);}
body.ctc-site .ctc-crumbs span.sep{color:var(--ctc-line);}
body.ctc-site .ctc-crumbs strong{color:var(--ctc-ink);font-weight:600;}

body.ctc-site .ctc-subhead{padding-block:22px 6px;}
body.ctc-site .ctc-subhead h1{font-family:'Sora',sans-serif;font-weight:800;
  font-size:clamp(25px,3.2vw,35px);line-height:1.16;letter-spacing:-.01em;margin:0;color:var(--ctc-ink);}
body.ctc-site .ctc-subhead p{margin-top:14px;font-size:var(--ctc-fs-lead);line-height:1.6;color:var(--ctc-ink-soft);}
body.ctc-site .ctc-subhead .wp-block-buttons{display:flex;gap:12px;margin-top:22px;flex-wrap:wrap;}

/* two column body: prose left, at-a-glance panel right */
body.ctc-site .ctc-twocol{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:40px;
  align-items:start;margin-top:30px;}
@media(max-width:940px){body.ctc-site .ctc-twocol{grid-template-columns:minmax(0,1fr);gap:26px;}}
body.ctc-site .ctc-aside{border:1px solid var(--ctc-line);border-radius:var(--ctc-radius);
  background:var(--ctc-surface);padding:22px 24px;position:sticky;top:86px;}
@media(max-width:940px){body.ctc-site .ctc-aside{position:static;}}
body.ctc-site .ctc-aside h2{font-family:'Sora',sans-serif;font-size:15px;font-weight:800;margin:0 0 14px;
  letter-spacing:.02em;color:var(--ctc-ink);}
body.ctc-site .ctc-aside ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px;}
body.ctc-site .ctc-aside li{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.5;
  color:var(--ctc-ink-soft);margin:0;}
body.ctc-site .ctc-aside li::before{content:"\2713";flex:none;color:#fff;background:var(--ctc-brand);
  width:17px;height:17px;border-radius:5px;display:flex;align-items:center;justify-content:center;
  font-size:10.5px;margin-top:2px;}
body.ctc-site .ctc-aside .ctc-aside-links{margin-top:18px;padding-top:16px;border-top:1px solid var(--ctc-line);
  display:flex;flex-direction:column;gap:9px;}
body.ctc-site .ctc-aside .ctc-aside-links a{font-size:13.5px;font-weight:700;color:var(--ctc-brand);text-decoration:none;}

/* the short answer up top, good for someone scanning and for search snippets */
body.ctc-site .ctc-quickans{border-left:3px solid var(--ctc-brand);background:#fff;
  border:1px solid var(--ctc-line);border-left:3px solid var(--ctc-brand);
  border-radius:0 var(--ctc-radius) var(--ctc-radius) 0;padding:20px 24px;margin-top:4px;}
body.ctc-site .ctc-quickans p{margin:0;font-size:var(--ctc-fs-body);line-height:1.65;color:var(--ctc-ink);}
body.ctc-site .ctc-quickans p + p{margin-top:12px;color:var(--ctc-ink-soft);}

/* prose rhythm inside the main column */
body.ctc-site .ctc-prose h2{font-family:'Sora',sans-serif;font-size:clamp(19px,2.3vw,24px);
  font-weight:800;margin:34px 0 0;letter-spacing:-.01em;color:var(--ctc-ink);}
body.ctc-site .ctc-prose h2:first-child{margin-top:0;}
body.ctc-site .ctc-prose p{margin-top:12px;font-size:var(--ctc-fs-body);line-height:1.7;color:var(--ctc-ink-soft);}
body.ctc-site .ctc-prose ul.ctc-icon-list{margin-top:18px;grid-template-columns:1fr;}

/* Vertical timeline for the sub-service process. The hubs use a compact
   numbered row; these pages walk through one situation, so the steps get
   room and a connecting line. */
body.ctc-site .ctc-timeline{list-style:none;margin:18px 0 0;padding:0;position:relative;}
body.ctc-site .ctc-timeline::before{content:"";position:absolute;left:13px;top:10px;bottom:10px;
  width:2px;background:var(--ctc-line);}
body.ctc-site .ctc-timeline li{position:relative;padding:0 0 22px 44px;margin:0;
  font-size:var(--ctc-fs-body);line-height:1.65;color:var(--ctc-ink-soft);counter-increment:ctcstep;}
body.ctc-site .ctc-timeline li:last-child{padding-bottom:0;}
body.ctc-site .ctc-timeline li::before{content:counter(ctcstep);position:absolute;left:0;top:-1px;
  width:28px;height:28px;border-radius:50%;background:var(--ctc-brand);color:#fff;
  display:flex;align-items:center;justify-content:center;font-family:'Sora',sans-serif;
  font-weight:800;font-size:13px;}
body.ctc-site .ctc-timeline{counter-reset:ctcstep;}

/* ===================================================================
   UTILITY PAGES (rows 1359, 1362, 1363, 1364, 1366).
   Four different jobs, so four different headers. The two location
   pages are deliberate twins of each other and of nothing else.
   =================================================================== */

/* --- Same-day: the page is about urgency, so the header states the
   honest position up front rather than promising a turnaround. --- */
body.ctc-site .ctc-urgenthead{background:var(--ctc-ink);color:#fff;border-radius:var(--ctc-radius);
  padding:44px 40px;margin-top:26px;}
@media(max-width:600px){body.ctc-site .ctc-urgenthead{padding:30px 22px;}}
body.ctc-site .ctc-urgenthead h1{font-family:'Sora',sans-serif;font-weight:800;color:#fff;margin:0;
  font-size:clamp(27px,3.6vw,40px);line-height:1.12;letter-spacing:-.015em;max-width:20ch;}
body.ctc-site .ctc-urgenthead p{margin-top:16px;color:rgba(255,255,255,.82);
  font-size:var(--ctc-fs-lead);line-height:1.6;max-width:62ch;}
body.ctc-site .ctc-urgenthead .wp-block-buttons{margin-top:26px;display:flex;gap:12px;flex-wrap:wrap;}

/* The factors that decide whether same-day is possible. */
body.ctc-site .ctc-factors{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px;padding:0;list-style:none;}
body.ctc-site .ctc-factors li{margin:0;background:var(--ctc-surface);border:1px solid var(--ctc-line);
  border-radius:999px;padding:9px 16px;font-size:13.5px;font-weight:600;color:var(--ctc-ink);}

/* --- Location pages: emirate named in the header with a pin. --- */
body.ctc-site .ctc-lochead{display:flex;gap:22px;align-items:flex-start;
  border:1px solid var(--ctc-line);border-radius:var(--ctc-radius);background:var(--ctc-surface);
  padding:34px 36px;margin-top:26px;}
@media(max-width:700px){body.ctc-site .ctc-lochead{flex-direction:column;gap:14px;padding:26px 22px;}}
body.ctc-site .ctc-locpin{flex:none;width:52px;height:52px;border-radius:14px;background:var(--ctc-brand);
  color:#fff;display:flex;align-items:center;justify-content:center;}
body.ctc-site .ctc-lochead h1{font-family:'Sora',sans-serif;font-weight:800;margin:0;
  font-size:clamp(25px,3.3vw,36px);line-height:1.15;letter-spacing:-.012em;color:var(--ctc-ink);}
body.ctc-site .ctc-lochead p{margin-top:13px;font-size:var(--ctc-fs-lead);line-height:1.6;
  color:var(--ctc-ink-soft);}

/* Document types covered, as a plain tile list linking to each hub. */
body.ctc-site .ctc-doctiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;
  list-style:none;margin:20px 0 0;padding:0;}
@media(max-width:860px){body.ctc-site .ctc-doctiles{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:520px){body.ctc-site .ctc-doctiles{grid-template-columns:1fr;}}
body.ctc-site .ctc-doctiles li{margin:0;}
body.ctc-site .ctc-doctiles a{display:flex;align-items:center;gap:10px;height:100%;
  border:1px solid var(--ctc-line);border-radius:var(--ctc-radius);background:#fff;
  padding:15px 17px;font-size:14.5px;font-weight:600;color:var(--ctc-ink);text-decoration:none;
  transition:border-color .15s ease,background-color .15s ease;}
body.ctc-site .ctc-doctiles a:hover{border-color:var(--ctc-brand);background:var(--ctc-surface);}
body.ctc-site .ctc-doctiles a::before{content:"";flex:none;width:7px;height:7px;border-radius:50%;
  background:var(--ctc-brand);}

/* --- About: centred editorial opening, no photograph. --- */
body.ctc-site .ctc-abouthead{text-align:center;max-width:760px;margin:34px auto 0;}
body.ctc-site .ctc-abouthead h1{font-family:'Sora',sans-serif;font-weight:800;margin:0;
  font-size:clamp(28px,4vw,44px);line-height:1.12;letter-spacing:-.018em;color:var(--ctc-ink);}
body.ctc-site .ctc-abouthead p{margin-top:16px;font-size:var(--ctc-fs-lead);line-height:1.65;
  color:var(--ctc-ink-soft);}
body.ctc-site .ctc-abouthead .wp-block-buttons{justify-content:center;margin-top:24px;display:flex;gap:12px;}
body.ctc-site .ctc-statement{border-top:1px solid var(--ctc-line);border-bottom:1px solid var(--ctc-line);
  padding:26px 0;margin-top:34px;}
body.ctc-site .ctc-statement p{margin:0;font-family:'Sora',sans-serif;font-weight:700;
  font-size:clamp(17px,2.1vw,21px);line-height:1.5;color:var(--ctc-ink);text-align:center;}

/* --- FAQ page: grouped, with jump links, because 22 questions in one
   undifferentiated stack is unusable. --- */
body.ctc-site .ctc-faqjump{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px;padding:0;list-style:none;}
body.ctc-site .ctc-faqjump li{margin:0;}
body.ctc-site .ctc-faqjump a{display:inline-block;border:1px solid var(--ctc-line);border-radius:999px;
  padding:9px 18px;font-size:13.5px;font-weight:700;color:var(--ctc-ink);text-decoration:none;background:#fff;
  transition:border-color .15s ease,color .15s ease;}
body.ctc-site .ctc-faqjump a:hover{border-color:var(--ctc-brand);color:var(--ctc-brand);}
body.ctc-site .ctc-faqgroup{margin-top:38px;scroll-margin-top:90px;}
body.ctc-site .ctc-faqgroup > h2{font-family:'Sora',sans-serif;font-size:clamp(19px,2.3vw,25px);
  font-weight:800;margin:0 0 4px;letter-spacing:-.01em;color:var(--ctc-ink);}

/* ===================================================================
   DYNAMIC PRIMARY HEADER (theme-rendered, fed by Appearance > Menus).
   Replaces the hand-written nav block that used to sit at the top of
   every page's content. Three levels: category, document type, then the
   five situations under each document type.
   =================================================================== */

body.ctc-site .ctc-header{
  position:sticky;top:0;z-index:100;background:var(--ctc-bg);
  border-bottom:1px solid var(--ctc-line);
}
body.ctc-site .ctc-header-in{
  display:flex;align-items:center;justify-content:space-between;gap:18px;padding-block:13px;
}
body.ctc-site .ctc-header .ctc-brand{
  font-family:'Sora',sans-serif;font-weight:800;font-size:18px;color:var(--ctc-ink);
  display:flex;align-items:center;gap:10px;text-decoration:none;flex:none;
}
body.ctc-site .ctc-header .ctc-brand span span{color:var(--ctc-coral);}


/* ---------- the menu itself ---------- */
body.ctc-site .ctc-mainnav{display:flex;align-items:center;min-width:0;}
body.ctc-site .ctc-menu{
  list-style:none;display:flex;align-items:center;gap:2px;margin:0;padding:0;
}
body.ctc-site .ctc-menu li{position:relative;margin:0;}
body.ctc-site .ctc-menu a{
  display:block;padding:9px 11px;font-size:13.5px;font-weight:600;
  color:var(--ctc-ink-soft);text-decoration:none;border-radius:8px;white-space:nowrap;
  transition:color .15s ease,background-color .15s ease;
}
body.ctc-site .ctc-menu a:hover,
body.ctc-site .ctc-menu li:focus-within > a{color:var(--ctc-brand);background:var(--ctc-surface);}
body.ctc-site .ctc-menu .current-menu-item > a,
body.ctc-site .ctc-menu .current-menu-ancestor > a{color:var(--ctc-brand);}

/* a caret on anything with children */
body.ctc-site .ctc-menu .menu-item-has-children > a::after{
  content:"";display:inline-block;width:6px;height:6px;margin-left:7px;vertical-align:1px;
  border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;
  transform:rotate(45deg);
}
body.ctc-site .ctc-menu .sub-menu .menu-item-has-children > a::after{
  transform:rotate(-45deg);float:right;margin-top:5px;
}

/* ---------- dropdowns ---------- */
body.ctc-site .ctc-menu .sub-menu{
  list-style:none;margin:0;padding:6px;position:absolute;top:100%;left:0;min-width:252px;
  background:#fff;border:1px solid var(--ctc-line);border-radius:var(--ctc-radius);
  box-shadow:0 14px 34px rgba(23,26,64,.13);
  opacity:0;visibility:hidden;transform:translateY(4px);
  transition:opacity .13s ease,transform .13s ease,visibility .13s;
  z-index:130;
}
body.ctc-site .ctc-menu li:hover > .sub-menu,
body.ctc-site .ctc-menu li:focus-within > .sub-menu,
body.ctc-site .ctc-menu li.is-open > .sub-menu{
  opacity:1;visibility:visible;transform:translateY(0);
}
body.ctc-site .ctc-menu .sub-menu a{
  white-space:normal;font-weight:600;font-size:13.5px;padding:9px 12px;line-height:1.35;
}
/* third level flies out sideways, flipped by JS when it would overflow */
body.ctc-site .ctc-menu .sub-menu .sub-menu{top:-7px;left:100%;}
body.ctc-site .ctc-menu .sub-menu .sub-menu.ctc-flip{left:auto;right:100%;}

body.ctc-site .ctc-nav-cta{
  background:var(--ctc-brand);color:#fff;border-radius:var(--ctc-radius);padding:10px 16px;
  font-size:13px;font-weight:700;text-decoration:none;white-space:nowrap;flex:none;
  transition:background-color .15s ease;
}
body.ctc-site .ctc-nav-cta:hover{background:var(--ctc-brand-deep);}
body.ctc-site .ctc-nav-cta-mobile{display:none;}

/* The accordion toggles are injected into every parent item by JS, but they
   are only ever used in the mobile drawer. GeneratePress gives every bare
   <button> a background and padding, so on desktop they rendered as dark
   grey blocks sitting between the dropdown items. Hidden by default, shown
   again inside the mobile breakpoint below. */
body.ctc-site .ctc-submenu-toggle{display:none;}

/* ---------- burger, hidden on desktop ---------- */
body.ctc-site .ctc-menu-toggle{
  display:none;align-items:center;justify-content:center;width:42px;height:42px;flex:none;
  background:var(--ctc-surface);border:1px solid var(--ctc-line);border-radius:10px;
  padding:0;cursor:pointer;
}
body.ctc-site .ctc-burger{display:block;width:18px;}
body.ctc-site .ctc-burger span{
  display:block;height:2px;background:var(--ctc-ink);border-radius:2px;
  transition:transform .18s ease,opacity .18s ease;
}
body.ctc-site .ctc-burger span + span{margin-top:4px;}
body.ctc-site .ctc-menu-toggle[aria-expanded="true"] .ctc-burger span:nth-child(1){transform:translateY(6px) rotate(45deg);}
body.ctc-site .ctc-menu-toggle[aria-expanded="true"] .ctc-burger span:nth-child(2){opacity:0;}
body.ctc-site .ctc-menu-toggle[aria-expanded="true"] .ctc-burger span:nth-child(3){transform:translateY(-6px) rotate(-45deg);}

/* ---------- mobile drawer ----------
   Below this width the horizontal menu cannot fit, so it becomes a real
   drawer with accordion sections. The old header simply hid its links
   here, which left phone visitors with no navigation at all. */
@media(max-width:1080px){
  body.ctc-site .ctc-menu-toggle{display:flex;}
  body.ctc-site .ctc-nav-cta-desktop{display:none;}
  body.ctc-site .ctc-nav-cta-mobile{display:block;text-align:center;margin-top:14px;}
  body.ctc-site .ctc-mainnav{
    position:absolute;left:0;right:0;top:100%;
    background:#fff;border-bottom:1px solid var(--ctc-line);
    box-shadow:0 18px 30px rgba(23,26,64,.12);
    max-height:calc(100vh - 70px);overflow-y:auto;
    padding:14px 20px 22px;
    display:none;
  }
  body.ctc-site .ctc-mainnav.is-open{display:block;}
  body.ctc-site .ctc-menu{display:block;}
  body.ctc-site .ctc-menu li{border-bottom:1px solid var(--ctc-line);}
  body.ctc-site .ctc-menu li:last-child{border-bottom:0;}
  body.ctc-site .ctc-menu a{padding:12px 2px;font-size:15px;white-space:normal;border-radius:0;}
  body.ctc-site .ctc-menu .menu-item-has-children > a::after{display:none;}

  /* every parent gets a real button, so the parent link stays tappable */
  body.ctc-site .ctc-submenu-toggle{
    display:block;position:absolute;top:2px;right:0;width:42px;height:42px;
    background:none;border:0;padding:0;cursor:pointer;color:var(--ctc-ink-soft);
  }
  body.ctc-site .ctc-submenu-toggle::after{
    content:"";display:block;width:8px;height:8px;margin:0 auto;
    border-right:2px solid currentColor;border-bottom:2px solid currentColor;
    transform:rotate(45deg) translate(-2px,-2px);transition:transform .18s ease;
  }
  body.ctc-site .ctc-submenu-toggle[aria-expanded="true"]::after{transform:rotate(-135deg) translate(-3px,-3px);}

  body.ctc-site .ctc-menu .sub-menu{
    position:static;opacity:1;visibility:visible;transform:none;
    border:0;box-shadow:none;min-width:0;padding:0 0 8px 14px;
    display:none;
  }
  body.ctc-site .ctc-menu li.is-open > .sub-menu{display:block;}
  body.ctc-site .ctc-menu .sub-menu .sub-menu{left:auto;top:auto;}
  body.ctc-site .ctc-menu .sub-menu a{font-size:14px;padding:10px 2px;color:var(--ctc-ink-soft);}
}

/* ===================================================================
   CONTACT PAGE (row 1365). Its job is to get someone in touch, so the
   ways to do that are the first thing on the page, as cards.
   =================================================================== */
body.ctc-site .ctc-contacthead{padding-block:34px 4px;max-width:720px;}
body.ctc-site .ctc-contacthead h1{font-family:'Sora',sans-serif;font-weight:800;margin:0;
  font-size:clamp(28px,3.8vw,42px);line-height:1.13;letter-spacing:-.015em;color:var(--ctc-ink);}
body.ctc-site .ctc-contacthead p{margin-top:15px;font-size:var(--ctc-fs-lead);line-height:1.6;
  color:var(--ctc-ink-soft);}

body.ctc-site .ctc-contactcards{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:26px;
  list-style:none;padding:0;
}
@media(max-width:820px){body.ctc-site .ctc-contactcards{grid-template-columns:1fr;}}
body.ctc-site .ctc-contactcards li{margin:0;}
body.ctc-site .ctc-contactcards a,
body.ctc-site .ctc-contactcards .ctc-contactcard{
  display:flex;gap:13px;align-items:flex-start;height:100%;
  border:1px solid var(--ctc-line);border-radius:var(--ctc-radius);background:var(--ctc-surface);
  padding:20px;text-decoration:none;transition:border-color .15s ease,background-color .15s ease;
}
body.ctc-site .ctc-contactcards a:hover{border-color:var(--ctc-brand);background:#fff;}
body.ctc-site .ctc-contactcards .ctc-cc-icon{
  flex:none;width:38px;height:38px;border-radius:10px;background:var(--ctc-brand);color:#fff;
  display:flex;align-items:center;justify-content:center;
}
body.ctc-site .ctc-contactcards strong{display:block;font-family:'Sora',sans-serif;font-size:13px;
  font-weight:800;letter-spacing:.02em;color:var(--ctc-ink-soft);margin-bottom:3px;}
body.ctc-site .ctc-contactcards .ctc-cc-value{display:block;font-size:15px;font-weight:700;
  color:var(--ctc-ink);line-height:1.4;}
