/* ============================================================================
   homepage — owned by inc/sections.php (homepage agent)
   Loaded after main.css, so equal-specificity rules here win.
   Tokens only: --cv-navy-*, --cv-steel-*, --cv-slate-600, --cv-accent, …

   NOTE ON SPECIFICITY: Astra's inline CSS styles copy as `.entry-content p`,
   `.entry-content ol` … (0,1,1). A single class (0,1,0) loses to that, so every
   rule below that sets margins on a p/ul/ol/li is written with two classes.
   ========================================================================== */

/* ------------------------------------------------------------------ hero */

/* the hero now carries a search box and quick links, so it needs more room */
.cv-hero{min-height:clamp(520px,64vh,700px)}
.cv-hero .cv-hero__inner{max-width:820px}
.cv-hero .cv-hero__sub{margin:0 0 1.75rem}

.cv-hero .cv-quick{margin-top:1.75rem;max-width:640px}
.cv-quick__form{display:flex;align-items:center;gap:.55rem;background:#fff;
  border:1px solid rgba(255,255,255,.55);border-radius:var(--cv-r-ctl);
  padding:.3rem .3rem .3rem .9rem;box-shadow:0 12px 32px rgba(11,29,44,.35)}
.cv-quick__form>svg{flex:none;color:var(--cv-slate-600)}
.cv-quick__form input[type=search]{flex:1;min-width:0;border:0;outline:0;background:transparent;
  font:inherit;font-size:.95rem;line-height:1.4;padding:.62rem 0;color:var(--cv-ink)}
.cv-quick__form input[type=search]::placeholder{color:var(--cv-slate-600);opacity:.85}
.cv-quick__form .cv-btn{flex:none;padding:.72rem 1.35rem;font-size:.95rem}

.cv-quick .cv-quick__label{margin:1.1rem 0 .55rem;font-size:.76rem;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;color:#B9C6D2}

.cv-quick .cv-chipnav,.cv-catfeat .cv-chipnav{display:flex;flex-wrap:wrap;gap:.5rem;
  list-style:none;margin:0;padding:0}
.cv-chipnav>li{margin:0;padding:0;list-style:none}
.cv-chiplink{display:inline-flex;align-items:center;gap:.45rem;padding:.5rem .9rem;
  border:1px solid rgba(255,255,255,.3);border-radius:999px;background:rgba(255,255,255,.09);
  color:#fff;font-size:.92rem;font-weight:600;line-height:1.2;white-space:nowrap;
  text-decoration:none!important;transition:background .15s,border-color .15s}
.cv-chiplink:hover,.cv-chiplink:focus-visible{background:var(--cv-accent);border-color:var(--cv-accent);color:#fff}
.cv-chiplink>span{font-size:.76rem;font-weight:700;color:#0B1D2C;background:rgba(255,255,255,.88);
  border-radius:999px;padding:.1rem .45rem;line-height:1.35}

.cv-hero .cv-hero__note{display:flex;align-items:flex-start;gap:.55rem;margin:1.75rem 0 0;
  color:#C8D4E0;font-size:.92rem;line-height:1.5;max-width:60ch}
.cv-hero__note svg{flex:none;margin-top:.25rem;color:var(--cv-accent)}
.cv-hero__note strong{color:#fff}

@media(max-width:760px){
  /* the 90° gradient in main.css assumes a left-hand text column; on narrow
     screens the copy runs full width and needs an even scrim */
  .cv-hero::after{background:linear-gradient(180deg,rgba(11,29,44,.82) 0%,rgba(11,29,44,.93) 100%)}
}

@media(max-width:600px){
  .cv-hero{min-height:0}
  .cv-hero .cv-hero__inner{padding-block:3rem 3.25rem}
  .cv-quick__form{flex-wrap:wrap;padding:.5rem;gap:.5rem}
  .cv-quick__form>svg{margin-left:.35rem}
  .cv-quick__form input[type=search]{flex:1 1 60%}
  .cv-quick__form .cv-btn{flex:1 1 100%}
  .cv-chiplink{font-size:.86rem;padding:.45rem .75rem}
}

/* -------------------------------------------------- featured category tile */

.cv-catfeat{position:relative;overflow:hidden;border-radius:var(--cv-r-card);
  background:var(--cv-navy-900);margin-bottom:22px;display:flex;align-items:center;
  min-height:clamp(300px,30vw,380px)}
.cv-catfeat .cv-catfeat__img{position:absolute;inset:0;width:100%;height:100%;
  max-width:100%;object-fit:cover;display:block;margin:0}
.cv-catfeat::after{content:"";position:absolute;inset:0;
  background:linear-gradient(100deg,rgba(11,29,44,.96) 0%,rgba(11,29,44,.9) 42%,rgba(11,29,44,.3) 100%)}
.cv-catfeat__body{position:relative;z-index:1;padding:clamp(1.6rem,3.5vw,2.75rem);max-width:640px}
.cv-catfeat__eyebrow{display:block;font-size:.76rem;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;color:var(--cv-accent);margin-bottom:.6rem}
.cv-catfeat h3{color:#fff;font-size:clamp(1.6rem,1.3rem + 1.1vw,2.25rem);margin:0 0 .6rem}
.cv-catfeat p{color:#C8D4E0;margin:0 0 .9rem;font-size:.98rem;max-width:56ch}
.cv-catfeat p.cv-catfeat__meta{display:flex;flex-wrap:wrap;align-items:baseline;
  gap:.4rem .7rem;margin:0 0 1.1rem;color:#fff}
.cv-catfeat__meta strong{font-size:1.05rem;font-weight:700}
.cv-catfeat__meta>span{color:var(--cv-accent);font-weight:700;font-size:1.05rem}
.cv-catfeat__meta>span::before{content:"·";color:#7C8FA1;margin-right:.55rem;font-weight:400}
.cv-catfeat .cv-catfeat__cta{margin-top:1.25rem}

@media(max-width:760px){
  .cv-catfeat{min-height:0}
  .cv-catfeat::after{background:linear-gradient(180deg,rgba(11,29,44,.9) 0%,rgba(11,29,44,.95) 100%)}
}

/* ------------------------------------------------------- category tiles */

.cv-cat .cv-cat__p{display:block;color:var(--cv-accent);font-weight:700;margin-top:.1rem}

/* --------------------------------------------------------- product row */

/* six deliberate cards in three columns read better than a thin four-up row */
@media(min-width:1100px){
  .cv-section .products.cv-featgrid{grid-template-columns:repeat(3,1fr);gap:26px}
}

/* ------------------------------------------------- delivery & cost facts */

.cv-wrap .cv-facts{display:grid;align-items:stretch;gap:1.25rem;margin:0;padding:0}
@media(min-width:880px){.cv-wrap .cv-facts{grid-template-columns:repeat(3,1fr);gap:1.5rem}}
.cv-fact{background:#fff;border:1px solid var(--cv-steel-200);border-top:3px solid var(--cv-accent);
  border-radius:var(--cv-r-card);padding:1.75rem 1.5rem;box-shadow:var(--cv-sh-1)}
.cv-fact .cv-fact__ico{display:inline-flex;align-items:center;justify-content:center;
  width:44px;height:44px;border-radius:var(--cv-r-ctl);background:var(--cv-steel-100);
  color:var(--cv-navy-800);margin:0 0 1rem}
.cv-fact h3{font-size:1rem;font-weight:600;margin:0 0 .35rem;color:var(--cv-slate-600);
  letter-spacing:0;text-transform:none}
.cv-fact p.cv-fact__v{font-size:clamp(1.6rem,1.35rem + 1vw,2.1rem);font-weight:700;
  line-height:1.15;letter-spacing:-.02em;color:var(--cv-navy-900);margin:0 0 .6rem}
.cv-fact p.cv-fact__d{margin:0;color:var(--cv-slate-600);font-size:.93rem;line-height:1.6}

.cv-wrap p.cv-note{margin:1.75rem 0 0;font-size:.92rem;color:var(--cv-slate-600);max-width:78ch}
.cv-note a{color:var(--cv-navy-700);font-weight:600}
.cv-note a:hover{color:var(--cv-accent-dk)}

/* --------------------------------------------------------------- process */

.cv-wrap ol.cv-steps{list-style:none;margin:0;padding:0;display:grid;
  align-items:stretch;gap:1.1rem}
@media(min-width:560px) and (max-width:899px){.cv-wrap ol.cv-steps{grid-template-columns:repeat(2,1fr);gap:1.25rem}}
@media(min-width:900px){.cv-wrap ol.cv-steps{grid-template-columns:repeat(4,1fr);gap:1.5rem}}
.cv-steps>li.cv-step{position:relative;margin:0;list-style:none;background:#fff;
  border:1px solid var(--cv-steel-200);border-radius:var(--cv-r-card);
  padding:1.6rem 1.4rem 1.75rem;box-shadow:var(--cv-sh-1)}
.cv-step .cv-step__n{display:inline-flex;align-items:center;justify-content:center;
  width:42px;height:42px;border-radius:50%;background:var(--cv-navy-900);color:#fff;
  font-weight:700;font-size:1.05rem;line-height:1;margin:0 0 1rem}
.cv-step:first-child .cv-step__n{background:var(--cv-accent)}
.cv-step h3{font-size:1.08rem;font-weight:600;margin:0 0 .45rem}
.cv-step p{margin:0;color:var(--cv-slate-600);font-size:.93rem;line-height:1.6}
@media(min-width:900px){
  .cv-steps>li.cv-step:not(:last-child)::after{content:"";position:absolute;
    top:calc(1.6rem + 20px);left:100%;width:1.5rem;height:2px;background:var(--cv-steel-200)}
}

/* ------------------------------------------------- about / own production */

.cv-split>div>.cv-section__eyebrow{margin-bottom:.65rem}
.cv-split ul.cv-checks{list-style:none;margin:1.5rem 0 0;padding:0;display:grid;gap:.7rem}
.cv-checks>li{display:flex;gap:.65rem;align-items:flex-start;margin:0;padding:0;
  list-style:none;color:var(--cv-ink);font-size:.96rem;line-height:1.5}
.cv-checks svg{flex:none;margin-top:.2rem;color:var(--cv-success)}
.cv-split p.cv-about__actions{display:flex;flex-wrap:wrap;gap:.75rem;margin:1.75rem 0 0}

/* ------------------------------------------------------------------- CTA */

.cv-cta ul.cv-contact{list-style:none;margin:1.5rem 0 0;padding:0;display:grid;gap:.6rem;max-width:620px}
@media(min-width:600px){.cv-cta ul.cv-contact{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem 1.75rem}}
.cv-contact>li{display:flex;gap:.6rem;align-items:center;margin:0;padding:0;list-style:none;
  color:#C8D4E0;font-size:.94rem;min-width:0}
.cv-contact svg{flex:none;color:var(--cv-accent)}
.cv-contact a{color:#fff;text-decoration:none;font-weight:600;overflow-wrap:anywhere}
.cv-contact a:hover{color:var(--cv-accent)}
.cv-cta .cv-cta__inner{align-items:start}
.cv-cta .cv-cta__actions{align-self:center}
@media(min-width:860px){.cv-cta .cv-cta__actions{flex-direction:column;align-items:stretch;min-width:250px}}

/* --------------------------------------------------------- shared polish */

/* keep display headings off one-word last lines */
.cv-split h2,.cv-cta h2,.cv-catfeat h3,.cv-section__head h2{text-wrap:balance}

/* ------------------------------------------------------------ safeguards */

/* Do NOT put overflow-x:clip on .cv-hero — main.css paints the hero photo and
   its gradient at negative z-index, and a clip context stops those layers from
   painting above the section's own navy background. */
.cv-catfeat__meta,.cv-chipnav,.cv-facts,.cv-steps,.cv-contact,.cv-checks{min-width:0}
.cv-split img{max-width:100%;height:auto}
