/* =====================================================================
   Connoisseur Technologies — component styles (effects not native to
   Gutenberg). Design tokens live in theme.json; this file adds glows,
   hover reveals, scrims, aspect ratios and the bento grid only.
   ===================================================================== */

:root{ --cnr-ease: cubic-bezier(0.16,1,0.3,1); --cnr-line: rgba(29,47,75,0.12); --cnr-line-strong: rgba(29,47,75,0.20); }

/* ---------- Shared helpers ---------- */
.cnr-lead{ font-size: var(--wp--preset--font-size--large); line-height:1.6; color: var(--wp--preset--color--text-soft); }
.has-navy-deep-background-color .cnr-lead, .has-navy-background-color .cnr-lead, .has-navy-abyss-background-color .cnr-lead{ color: rgba(255,255,255,0.72); }
.cnr-measure{ max-width: 46ch; }

/* Text link with animated underline + arrow */
.cnr-link{ display:inline-flex; align-items:center; gap:0.5em; font-weight:600; color: var(--wp--preset--color--navy); position:relative; width:auto; }
.has-navy-deep-background-color .cnr-link, .has-navy-background-color .cnr-link{ color: var(--wp--preset--color--gold-light); }
.cnr-link::after{ content:"→"; transition: transform var(--cnr-ease) 0.4s; }
.cnr-link:hover::after{ transform: translateX(4px); }

/* ---------- Header ---------- */
.cnr-header{ position:sticky; top:0; z-index:100; -webkit-backdrop-filter:saturate(150%) blur(8px); backdrop-filter:saturate(150%) blur(8px); background:rgba(22,39,62,0.92) !important; }
.cnr-header .wp-block-site-logo img{ height:auto; width:200px; max-width:52vw; display:block; }
.cnr-header-bar{ align-items:center; }
.cnr-nav-group{ flex-wrap:nowrap !important; align-items:center; }
.cnr-header .wp-block-navigation{ --wp--preset--color--navy: #fff; flex-grow:0; flex-basis:auto; }
.cnr-header .wp-block-navigation .wp-block-navigation__container{ flex-wrap:nowrap; }
@media (max-width:781px){ .cnr-nav-group .wp-block-buttons{ display:none; } }
@media (max-width:600px){ .cnr-header .wp-block-site-logo img{ width:150px; } }
.cnr-header .wp-block-navigation a{ color:rgba(255,255,255,0.86); font-weight:500; }
.cnr-header .wp-block-navigation a:hover{ color: var(--wp--preset--color--gold-light); }
.cnr-header .wp-block-navigation .wp-block-navigation-item__content{ padding:0.3em 0; }

/* ---------- Hero ---------- */
.cnr-hero{ position:relative; overflow:hidden; min-height:88svh; display:flex; align-items:center; background-size:cover !important; background-position:center 26% !important; }
.cnr-hero::after{ content:""; position:absolute; inset:0; z-index:0; background:linear-gradient(180deg,rgba(22,39,62,0.82) 0%,rgba(15,26,43,0.92) 75%); pointer-events:none; }
.cnr-hero::before{ content:""; position:absolute; z-index:1; width:46vw; height:46vw; border-radius:50%; filter:blur(70px); opacity:0.5; background:rgba(195,162,94,0.22); top:-14%; right:-8%; pointer-events:none; }
.cnr-hero > *{ position:relative; z-index:2; }
.cnr-hero-h1{ font-size: clamp(2.75rem,6.5vw,5rem); line-height:1.03; max-width:15ch; }

/* Interior page hero (shorter) */
.cnr-page-hero{ position:relative; overflow:hidden; }
.cnr-page-hero::before{ content:""; position:absolute; width:34vw; height:34vw; border-radius:50%; filter:blur(70px); opacity:0.5; background:rgba(195,162,94,0.20); top:-20%; right:4%; pointer-events:none; }
.cnr-page-hero > *{ position:relative; z-index:2; }

/* Hero stat row */
.cnr-stats{ border-top:1px solid rgba(255,255,255,0.14); }
.cnr-stat .cnr-stat-num{ font-family: var(--wp--preset--font-family--playfair-display); font-size: clamp(1.8rem,3vw,2.6rem); color: var(--wp--preset--color--gold-light); line-height:1; }
.cnr-stat .cnr-stat-lbl{ font-size:0.8rem; letter-spacing:0.06em; color:rgba(255,255,255,0.6); margin-top:0.4em; }

/* ---------- Trust strip ---------- */
.cnr-trust{ border-block:1px solid var(--cnr-line); }
.cnr-trust .cnr-trust-name{ font-family: var(--wp--preset--font-family--playfair-display); font-size:1.15rem; color: var(--wp--preset--color--navy); opacity:0.55; transition:opacity 0.4s var(--cnr-ease); }
.cnr-trust .cnr-trust-name:hover{ opacity:1; }
.cnr-trust .cnr-trust-label{ font-size:0.78rem; letter-spacing:0.16em; text-transform:uppercase; color: var(--wp--preset--color--muted); font-weight:600; }

/* ---------- Cards / bento ---------- */
.cnr-bento{ display:grid; grid-template-columns:repeat(6,1fr); gap:1.5rem; }
.cnr-bento > *{ grid-column:span 2; margin:0 !important; }
.cnr-bento > .is-wide{ grid-column:span 3; }
.cnr-card{ position:relative; overflow:hidden; background: var(--wp--preset--color--surface); border:1px solid var(--cnr-line); border-radius:12px; padding:clamp(1.6rem,3vw,2.4rem); transition:transform 0.4s var(--cnr-ease),box-shadow 0.4s var(--cnr-ease),border-color 0.4s var(--cnr-ease); height:100%; }
.cnr-card::before{ content:""; position:absolute; inset:0 0 auto 0; height:3px; background:linear-gradient(90deg,var(--wp--preset--color--gold),var(--wp--preset--color--gold-light)); transform:scaleX(0); transform-origin:left; transition:transform 0.5s var(--cnr-ease); }
.cnr-card:hover{ transform:translateY(-6px); box-shadow:0 12px 24px rgba(15,26,43,0.10),0 24px 64px rgba(15,26,43,0.14); border-color:transparent; }
.cnr-card:hover::before{ transform:scaleX(1); }
.cnr-card.on-navy{ background:rgba(255,255,255,0.03); border-color:rgba(255,255,255,0.12); }
.cnr-card-icon{ width:56px; height:56px; display:grid; place-items:center; border-radius:12px; background:linear-gradient(145deg,rgba(29,47,75,0.06),rgba(195,162,94,0.14)); color: var(--wp--preset--color--navy); transition:all 0.4s var(--cnr-ease); }
.cnr-card-icon svg{ width:26px; height:26px; }
.cnr-card:hover .cnr-card-icon{ background: var(--wp--preset--color--navy); color: var(--wp--preset--color--gold-light); transform:rotate(-6deg) scale(1.05); }

/* ---------- Process ---------- */
.cnr-process .cnr-process-item{ display:grid; grid-template-columns:auto 1fr; gap:clamp(1.5rem,4vw,3.5rem); padding-block:clamp(1.6rem,4vw,2.6rem); border-top:1px solid rgba(255,255,255,0.16); align-items:start; margin:0 !important; }
.cnr-process .cnr-process-item:last-child{ border-bottom:1px solid rgba(255,255,255,0.16); }
.cnr-process-num{ font-family: var(--wp--preset--font-family--playfair-display); font-size:clamp(2.5rem,5vw,4rem); color: var(--wp--preset--color--gold); line-height:1; opacity:0.9; }

/* ---------- Work cards (Cover blocks) ---------- */
.cnr-work-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(1.5rem,3vw,2.5rem); }
.cnr-work-card{ position:relative; overflow:hidden; border-radius:12px; aspect-ratio:4/3; display:flex; align-items:flex-end; background-color: var(--wp--preset--color--navy-deep); margin:0 !important; transition:transform 0.5s var(--cnr-ease),box-shadow 0.5s var(--cnr-ease); }
.cnr-work-img{ position:absolute !important; inset:0; margin:0 !important; z-index:0; }
.cnr-work-img img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.8s var(--cnr-ease); }
.cnr-work-card:hover .cnr-work-img img{ transform:scale(1.06); }
.cnr-work-card::after{ content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(180deg,rgba(15,26,43,0.10) 0%,rgba(15,26,43,0.55) 55%,rgba(15,26,43,0.92) 100%); }
.cnr-work-card > .wp-block-group{ position:relative; z-index:2; width:100%; padding:clamp(1.4rem,3vw,2.2rem); }
.cnr-work-card:hover{ transform:translateY(-4px); box-shadow:0 18px 40px rgba(15,26,43,0.28); }
.cnr-work-card h3{ color:#fff; margin:0.35rem 0 0.5rem; }
.cnr-work-card p{ color:rgba(255,255,255,0.78); }
.cnr-work-tag{ font-size:0.72rem; letter-spacing:0.16em; text-transform:uppercase; color: var(--wp--preset--color--gold-light) !important; font-weight:600; margin:0; }
.cnr-work-result{ color:rgba(255,255,255,0.9) !important; font-weight:600; }
.cnr-work-result strong{ color: var(--wp--preset--color--gold-light); font-family: var(--wp--preset--font-family--playfair-display); font-size:1.15em; }
.cnr-featured-card{ aspect-ratio:4/3; }
.cnr-pills{ display:flex; flex-wrap:wrap; gap:0.5rem; margin-bottom:0.4rem; }
.cnr-pill{ display:inline-block; font-size:0.78rem; font-weight:500; padding:0.45em 0.95em; border-radius:100px; border:1px solid rgba(29,47,75,0.20); color: var(--wp--preset--color--text-soft); background:#fff; }
.cnr-caps{ display:flex; flex-wrap:wrap; gap:0.55rem; justify-content:center; margin-top:1.8rem; }
.cnr-caps .cnr-pill{ font-size:0.82rem; padding:0.5em 1.05em; transition:all .3s var(--cnr-ease); }
.cnr-caps .cnr-pill:hover{ border-color:var(--wp--preset--color--gold); color:var(--wp--preset--color--navy); }
.cnr-fmetrics{ display:flex; flex-wrap:wrap; gap:clamp(1.5rem,4vw,2.5rem); margin-top:1.8rem; }
.cnr-fmetric-num{ font-family: var(--wp--preset--font-family--playfair-display); font-size:clamp(1.8rem,3vw,2.4rem); color: var(--wp--preset--color--gold-dark); line-height:1; }
.cnr-fmetric-lbl{ font-size:0.85rem; color: var(--wp--preset--color--muted); margin-top:0.3rem; }

/* Testimonial photographic wash */
.cnr-testimonial{ position:relative; overflow:hidden; }
.cnr-testimonial::before{ content:""; position:absolute; inset:0; background-image:var(--cnr-wash,none); background-size:cover; background-position:center; opacity:0.10; -webkit-mask-image:radial-gradient(ellipse 70% 80% at 50% 45%,#000,transparent 78%); mask-image:radial-gradient(ellipse 70% 80% at 50% 45%,#000,transparent 78%); pointer-events:none; }
.cnr-testimonial > *{ position:relative; z-index:1; }

/* ---------- Metrics ---------- */
.cnr-metrics{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(1.5rem,3vw,2.5rem); text-align:center; }
.cnr-metric .cnr-metric-num{ font-family: var(--wp--preset--font-family--playfair-display); font-size:clamp(2.4rem,5vw,3.6rem); color: var(--wp--preset--color--gold-light); line-height:1; }
.cnr-metric .cnr-metric-lbl{ margin-top:0.5rem; font-size:0.9rem; color:rgba(255,255,255,0.65); }

/* ---------- Testimonial ---------- */
.cnr-quote{ font-family: var(--wp--preset--font-family--playfair-display); font-size:clamp(1.5rem,3.2vw,2.3rem); line-height:1.34; color:#fff; font-weight:500; border:none; padding:0; }
.cnr-quote-mark{ font-family: var(--wp--preset--font-family--playfair-display); font-size:4rem; line-height:0.5; color: var(--wp--preset--color--gold); }
.cnr-avatar{ width:52px; height:52px; border-radius:50%; background:linear-gradient(145deg,var(--wp--preset--color--gold),var(--wp--preset--color--gold-dark)); display:grid; place-items:center; color: var(--wp--preset--color--navy-deep); font-family: var(--wp--preset--font-family--playfair-display); font-size:1.2rem; font-weight:700; flex-shrink:0; }

/* ---------- CTA band ---------- */
.cnr-cta{ position:relative; overflow:hidden; background:radial-gradient(60% 120% at 80% 0%,rgba(195,162,94,0.18),transparent 60%),var(--wp--preset--color--navy); border-radius:clamp(16px,3vw,28px); }

/* ---------- Service detail rows ---------- */
.cnr-svc-row{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,6vw,5rem); align-items:center; }
.cnr-svc-row.flip .cnr-svc-media{ order:2; }
.cnr-breadcrumb{ font-size:0.82rem; letter-spacing:0.04em; color:rgba(255,255,255,0.5); margin-bottom:1.3rem; }
.cnr-breadcrumb a{ color:rgba(255,255,255,0.5); }
.cnr-breadcrumb a:hover{ color:var(--wp--preset--color--gold-light); }
.cnr-eng-card{ background:rgba(255,255,255,0.03); border:1px solid rgba(255,255,255,0.12); border-radius:12px; padding:clamp(1.6rem,3vw,2.2rem); height:100%; margin:0 !important; }
.cnr-eng-card h3{ color:#fff; margin:0.3rem 0 0.6rem; }
.cnr-svc-media img{ border-radius:12px; box-shadow:0 12px 24px rgba(15,26,43,0.10),0 24px 64px rgba(15,26,43,0.14); width:100%; }
.cnr-svc-num{ font-family: var(--wp--preset--font-family--playfair-display); font-size:1.05rem; color: var(--wp--preset--color--gold-dark); }
.cnr-features{ list-style:none; margin:1.4rem 0 1.8rem; padding:0; display:grid; gap:0.8rem; }
.cnr-features li{ position:relative; padding-left:2rem; color: var(--wp--preset--color--text-soft); }
.cnr-features li::before{ content:"✓"; position:absolute; left:0; top:0; color: var(--wp--preset--color--gold-dark); font-weight:700; }

/* ---------- Values ---------- */
.cnr-value-word{ font-family: var(--wp--preset--font-family--playfair-display); font-size:clamp(1.6rem,3vw,2.2rem); color:#fff; }
.cnr-value-anti{ color: var(--wp--preset--color--gold-light); }

/* ---------- FAQ (details) ---------- */
.cnr-faq details{ border-bottom:1px solid var(--cnr-line); }
.cnr-faq summary{ cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:1.4rem 0; font-family: var(--wp--preset--font-family--playfair-display); font-size:clamp(1.1rem,2vw,1.35rem); color: var(--wp--preset--color--navy); font-weight:600; }
.cnr-faq summary::-webkit-details-marker{ display:none; }
.cnr-faq summary::after{ content:"+"; color: var(--wp--preset--color--gold-dark); font-size:1.5rem; transition:transform 0.3s var(--cnr-ease); }
.cnr-faq details[open] summary::after{ transform:rotate(45deg); }
.cnr-faq .cnr-faq-a{ padding-bottom:1.4rem; max-width:68ch; color: var(--wp--preset--color--text-soft); }

/* ---------- Contact form ---------- */
.cnr-form-grid{ display:grid; grid-template-columns:1.3fr 0.7fr; gap:clamp(2rem,5vw,4rem); align-items:start; }
.cnr-form .wp-block-column, .cnr-form p{ }
.cnr-form input, .cnr-form textarea, .cnr-form select{ width:100%; font-family: var(--wp--preset--font-family--inter); font-size:1rem; color: var(--wp--preset--color--ink); padding:0.9em 1.05em; border:1px solid var(--cnr-line-strong); border-radius:4px; background:#fff; }
.cnr-form textarea{ min-height:140px; resize:vertical; }
.cnr-form input:focus, .cnr-form textarea:focus, .cnr-form select:focus{ outline:none; border-color: var(--wp--preset--color--gold); box-shadow:0 0 0 3px rgba(195,162,94,0.18); }
.cnr-form label{ display:block; font-weight:600; font-size:0.88rem; margin-bottom:0.5rem; color: var(--wp--preset--color--navy); }
.cnr-contact-detail{ display:flex; gap:1rem; padding-block:1.3rem; border-bottom:1px solid var(--cnr-line); }
.cnr-contact-ic{ width:44px; height:44px; border-radius:10px; background:rgba(29,47,75,0.06); color: var(--wp--preset--color--navy); display:grid; place-items:center; flex-shrink:0; }
.cnr-contact-ic svg{ width:20px; height:20px; }
.cnr-contact-detail h4{ font-family: var(--wp--preset--font-family--inter); font-size:0.78rem; letter-spacing:0.12em; text-transform:uppercase; color: var(--wp--preset--color--muted); margin:0 0 0.3rem; }
.cnr-contact-detail a,.cnr-contact-detail p{ color: var(--wp--preset--color--navy); font-weight:500; margin:0; }
.cnr-field{ margin-bottom:1.3rem; }
.cnr-field-row{ display:grid; grid-template-columns:1fr 1fr; gap:0 1.4rem; }
.cnr-hp{ position:absolute !important; left:-9999px; width:1px; height:1px; overflow:hidden; }
.cnr-chips{ display:flex; flex-wrap:wrap; gap:0.55rem; }
.cnr-chips label{ cursor:pointer; font-size:0.9rem; font-weight:500; padding:0.55em 1.05em; border-radius:100px; border:1px solid var(--cnr-line-strong); background:#fff; margin:0; color: var(--wp--preset--color--text-soft); transition:all 0.25s var(--cnr-ease); }
.cnr-chips input{ position:absolute; opacity:0; width:0; height:0; }
.cnr-chips label:hover{ border-color: var(--wp--preset--color--gold); }
.cnr-chips label:has(input:checked){ background: var(--wp--preset--color--navy); color:#fff; border-color: var(--wp--preset--color--navy); }
.cnr-submit{ width:100%; border:none; cursor:pointer; background: var(--wp--preset--color--gold); color: var(--wp--preset--color--navy-deep); font-family: var(--wp--preset--font-family--inter); font-weight:600; font-size:1rem; padding:1.05em 1.9em; border-radius:100px; transition:background 0.3s var(--cnr-ease); }
.cnr-submit:hover{ background: var(--wp--preset--color--gold-light); }
.cnr-fineprint{ font-size:0.82rem; color: var(--wp--preset--color--muted); text-align:center; margin-top:1rem; }
.cnr-promise-card{ margin-top:1.5rem; background: var(--wp--preset--color--navy-deep); border-radius:12px; padding:1.6rem; }
.cnr-promise-card p{ color:rgba(255,255,255,0.85); }
.cnr-promise-card .cnr-eyebrow{ color: var(--wp--preset--color--gold-light); }
.cnr-promise-card .cnr-eyebrow::before{ background: var(--wp--preset--color--gold-light); }

/* ---------- Footer ---------- */
.cnr-footer .wp-block-site-logo img{ width:200px; height:auto; margin-bottom:1rem; }
.cnr-footer a{ color:rgba(255,255,255,0.62); }
.cnr-footer a:hover{ color: var(--wp--preset--color--gold-light); }
.cnr-footer .cnr-foot-h{ color:#fff; font-family: var(--wp--preset--font-family--inter); font-size:0.78rem; letter-spacing:0.16em; text-transform:uppercase; }
.cnr-social a{ width:40px; height:40px; border-radius:50%; border:1px solid rgba(255,255,255,0.16); display:grid; place-items:center; color:rgba(255,255,255,0.7); transition:all 0.4s var(--cnr-ease); }
.cnr-social a:hover{ background: var(--wp--preset--color--gold); color: var(--wp--preset--color--navy-deep); border-color: var(--wp--preset--color--gold); transform:translateY(-3px); }
.cnr-social svg{ width:18px; height:18px; }

/* ---------- Responsive ---------- */
@media (max-width:1024px){ .cnr-bento{ grid-template-columns:repeat(2,1fr); } .cnr-bento > *, .cnr-bento > .is-wide{ grid-column:span 1; } }
@media (max-width:860px){ .cnr-work-grid{ grid-template-columns:1fr; } .cnr-metrics{ grid-template-columns:repeat(2,1fr); } .cnr-form-grid{ grid-template-columns:1fr; } .cnr-svc-row{ grid-template-columns:1fr; gap:2rem; } .cnr-svc-row.flip .cnr-svc-media{ order:0; } }
@media (max-width:600px){ .cnr-bento{ grid-template-columns:1fr; } .cnr-metrics{ grid-template-columns:1fr 1fr; } .cnr-process .cnr-process-item{ grid-template-columns:1fr; gap:0.5rem; } }

@media (prefers-reduced-motion: reduce){ *,*::before,*::after{ transition-duration:0.001ms !important; } }

/* ---------- Dark-section corrections ---------- */
.has-navy-deep-background-color :is(h1,h2,h3,h4),.has-navy-background-color :is(h1,h2,h3,h4),.has-navy-abyss-background-color :is(h1,h2,h3,h4){ color:#fff; }
.has-navy-deep-background-color p:not(.cnr-lead):not(.cnr-eyebrow):not([class*=stat]):not([class*=metric]),.has-navy-background-color p:not(.cnr-lead):not(.cnr-eyebrow):not([class*=stat]):not([class*=metric]),.has-navy-abyss-background-color .cnr-value-anti{ color:rgba(255,255,255,0.72); }
/* Left-align hero column instead of centering the constrained group */
.cnr-hero .cnr-hero-inner,.cnr-page-hero .cnr-page-hero-inner{ margin-left:0 !important; margin-right:auto !important; max-width:900px !important; }
.cnr-hero-inner > *,.cnr-page-hero-inner > *{ margin-left:0 !important; margin-right:auto !important; }
/* Outline button on dark grounds */
.wp-block-button.is-style-outline .wp-block-button__link{ background:transparent; border:1px solid rgba(255,255,255,0.35); color:#fff; padding:1.05em 1.9em; }
.wp-block-button.is-style-outline .wp-block-button__link:hover{ background:#fff; color:var(--wp--preset--color--navy); border-color:#fff; }

/* Remove default block gap between header and main so the hero sits flush */
.wp-site-blocks > main{ margin-block-start:0 !important; }

/* ---------- Hero entrance animation (pure CSS; always resolves to visible) ---------- */
@keyframes cnrUp{ from{ opacity:0; transform:translateY(26px); } to{ opacity:1; transform:none; } }
.wp-site-blocks .cnr-hero .cnr-eyebrow{ animation:cnrUp .7s var(--cnr-ease) both; }
.wp-site-blocks .cnr-hero .cnr-hero-h1{ animation:cnrUp .8s .10s var(--cnr-ease) both; }
.wp-site-blocks .cnr-hero .cnr-lead{ animation:cnrUp .8s .24s var(--cnr-ease) both; }
.wp-site-blocks .cnr-hero .wp-block-buttons{ animation:cnrUp .8s .38s var(--cnr-ease) both; }
.wp-site-blocks .cnr-hero .cnr-stats{ animation:cnrUp .8s .52s var(--cnr-ease) both; }
/* Interior page-hero: same staggered entrance for the text under the header */
.wp-site-blocks .cnr-page-hero .cnr-breadcrumb{ animation:cnrUp .7s var(--cnr-ease) both; }
.wp-site-blocks .cnr-page-hero .cnr-eyebrow{ animation:cnrUp .7s .08s var(--cnr-ease) both; }
.wp-site-blocks .cnr-page-hero .cnr-hero-h1{ animation:cnrUp .8s .18s var(--cnr-ease) both; }
.wp-site-blocks .cnr-page-hero .cnr-lead{ animation:cnrUp .8s .32s var(--cnr-ease) both; }
@media (prefers-reduced-motion: reduce){ .wp-site-blocks .cnr-hero [class],.wp-site-blocks .cnr-page-hero [class]{ animation:none !important; } }

/* ---------- Scroll reveal (JS-gated via .cnr-js so no-JS shows everything) ---------- */
.cnr-js .cnr-reveal{ opacity:0; transform:translateY(28px); }
.cnr-js .cnr-reveal.cnr-vis{ opacity:1; transform:none; transition:opacity .7s var(--cnr-ease),transform .7s var(--cnr-ease); }
@media (prefers-reduced-motion: reduce){ .cnr-js .cnr-reveal{ opacity:1 !important; transform:none !important; transition:none !important; } }

/* ---------- Scroll-to-top button ---------- */
.cnr-totop{ position:fixed; right:clamp(1rem,3vw,2rem); bottom:clamp(1rem,3vw,2rem); z-index:90; width:46px; height:46px; border-radius:50%; border:none; cursor:pointer; background:var(--wp--preset--color--navy); color:#fff; display:grid; place-items:center; opacity:0; visibility:hidden; transform:translateY(12px); transition:opacity .4s var(--cnr-ease),transform .4s var(--cnr-ease),background .3s var(--cnr-ease),color .3s var(--cnr-ease); box-shadow:0 8px 24px rgba(15,26,43,0.28); }
.cnr-totop.cnr-show{ opacity:1; visibility:visible; transform:none; }
.cnr-totop:hover{ background:var(--wp--preset--color--gold); color:var(--wp--preset--color--navy-deep); transform:translateY(-3px); }
.cnr-totop svg{ width:20px; height:20px; }

/* ---------- Hero animated gridlines ---------- */
.cnr-hero-fx{ position:absolute; inset:0; z-index:1; pointer-events:none; overflow:hidden; }
.cnr-hero-grid{ position:absolute; inset:-2px; background-image:linear-gradient(rgba(195,162,94,0.11) 1px,transparent 1px),linear-gradient(90deg,rgba(195,162,94,0.11) 1px,transparent 1px); background-size:62px 62px; -webkit-mask-image:radial-gradient(ellipse 78% 66% at 50% 42%,#000 22%,transparent 78%); mask-image:radial-gradient(ellipse 78% 66% at 50% 42%,#000 22%,transparent 78%); animation:cnrGridDrift 26s linear infinite; }
@keyframes cnrGridDrift{ from{ background-position:0 0; } to{ background-position:62px 62px; } }

/* ---------- Hero scroll cue ---------- */
.cnr-scroll-cue{ position:absolute; left:50%; bottom:1.5rem; transform:translateX(-50%); z-index:3; display:flex; flex-direction:column; align-items:center; gap:0.55em; font-family:var(--wp--preset--font-family--inter); font-size:0.66rem; letter-spacing:0.22em; text-transform:uppercase; color:rgba(255,255,255,0.55); background:none; border:none; cursor:pointer; padding:0; }
.cnr-scroll-cue:hover{ color:var(--wp--preset--color--gold-light); }
.cnr-cue-line{ width:1px; height:44px; background:linear-gradient(var(--wp--preset--color--gold-light),transparent); position:relative; overflow:hidden; }
.cnr-cue-line::after{ content:""; position:absolute; top:0; left:0; width:100%; height:40%; background:var(--wp--preset--color--gold-light); animation:cnrCue 2.2s cubic-bezier(0.65,0,0.35,1) infinite; }
@keyframes cnrCue{ 0%{ transform:translateY(-100%); } 100%{ transform:translateY(320%); } }
@media (max-width:600px){ .cnr-scroll-cue{ display:none; } }
@media (prefers-reduced-motion: reduce){ .cnr-hero-grid,.cnr-cue-line::after{ animation:none !important; } }

/* ---------- Blog / Journal ---------- */
.cnr-post-grid{ gap:clamp(1.5rem,3vw,2.2rem) !important; }
.cnr-post-card{ background:var(--wp--preset--color--surface); border:1px solid var(--cnr-line); border-radius:12px; overflow:hidden; display:flex; flex-direction:column; height:100%; margin:0 !important; transition:transform .4s var(--cnr-ease),box-shadow .4s var(--cnr-ease); }
.cnr-post-card:hover{ transform:translateY(-5px); box-shadow:0 14px 34px rgba(15,26,43,0.13); }
.cnr-post-thumb{ margin:0 !important; }
.cnr-post-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.cnr-post-body{ padding:clamp(1.3rem,2.5vw,1.7rem); display:flex; flex-direction:column; gap:0.55rem; flex:1; }
.cnr-post-cat,.cnr-post-cat a{ font-size:0.72rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--wp--preset--color--gold-dark) !important; font-weight:600; text-decoration:none; }
.cnr-post-card h3{ font-size:1.3rem; line-height:1.2; margin:0; }
.cnr-post-card h3 a{ color:var(--wp--preset--color--navy); text-decoration:none; }
.cnr-post-card h3 a:hover{ color:var(--wp--preset--color--gold-dark); }
.cnr-post-card .wp-block-post-excerpt,.cnr-post-card .wp-block-post-excerpt p{ margin:0; color:var(--wp--preset--color--text-soft); font-size:0.95rem; }
.cnr-post-date{ font-size:0.82rem; color:var(--wp--preset--color--muted); margin-top:auto; padding-top:0.4rem; }
.cnr-pagination{ gap:0.4rem; }
.cnr-pagination .page-numbers{ padding:0.4em 0.85em; border-radius:6px; color:var(--wp--preset--color--navy); text-decoration:none; }
.cnr-pagination .page-numbers.current{ background:var(--wp--preset--color--navy); color:#fff; }
.cnr-pagination a.page-numbers:hover{ color:var(--wp--preset--color--gold-dark); }
/* Single post */
.cnr-single-hero .cnr-single-meta,.cnr-single-hero .cnr-single-meta a,.cnr-single-hero .wp-block-post-author-name{ color:rgba(255,255,255,0.72); font-size:0.9rem; }
.cnr-single-hero .cnr-meta-sep{ margin:0; color:rgba(255,255,255,0.4); }
.cnr-single-media img{ width:100%; border-radius:12px; object-fit:cover; }
.cnr-single-content{ font-size:1.08rem; line-height:1.75; }
.cnr-single-content p{ color:var(--wp--preset--color--text-soft); }
.cnr-single-content h2{ margin-top:2rem; }
.cnr-single-content h3{ margin-top:1.5rem; }
.cnr-single-content img{ border-radius:12px; }
.cnr-single-content blockquote{ border-left:3px solid var(--wp--preset--color--gold); padding-left:1.2rem; font-family:var(--wp--preset--font-family--playfair-display); font-size:1.3rem; color:var(--wp--preset--color--navy); font-style:italic; }
