/* Padrini design tokens + fonts — extracted from Padrini-Html/block-catalog.html.
   Consumed by server-rendered block partials (Pages/Shared/Blocks/*). */
@import url('https://fonts.googleapis.com/css2?family=Inter+Tight:wght@400;500;600;700;800&family=Inter:wght@400;500;600&family=Fraunces:ital,opsz,wght@0,9..144,300;0,9..144,400;1,9..144,300&display=swap');

:root{
  --ink-900:#0A0A0A; --ink-800:#161616; --ink-700:#1F1F1F; --ink-600:#3A3A3A;
  --ink-500:#6E6E73; --ink-400:#86868B; --ink-300:#B8B8BD; --ink-200:#D2D2D7;
  --ink-100:#E8E8ED; --ink-050:#F5F5F7; --paper:#FBFBFD; --white:#FFFFFF;
  --bronze-600:#8C6A3F; --bronze-500:#B68A52; --bronze-300:#D9BE94;
  --bronze-100:#F0E6D6; --bronze-050:#FAF5EC;
  --teal-700:#114B4B; --teal-600:#1A6B6B; --teal-300:#93C7C2; --teal-100:#DDEDEC;
  --sand-500:#C9B79A; --sand-100:#EFE7DA;
  --line-1:var(--ink-200); --line-2:var(--ink-100); --line-soft:#ECECEC;
  --accent:var(--bronze-600);
  --font-display:'Inter Tight','Helvetica Neue',Helvetica,Arial,sans-serif;
  --font-text:'Inter','Helvetica Neue',Helvetica,Arial,sans-serif;
  --font-serif:'Fraunces','Times New Roman',Georgia,serif;
  --shadow-2:0 4px 16px rgba(0,0,0,0.06),0 1px 2px rgba(0,0,0,0.04);
  --ease-out:cubic-bezier(0.22,1,0.36,1);
  --max-w-page:1280px;
  --heading-lg:clamp(36px,4vw,56px);
}

/* Page background = paper (#FBFBFD), matching the reference body. Tailwind preflight sets
   it to #FFF, which makes the transparent hero read as a different shade than the paper
   marquee/sections — this removes that seam. padrini.css loads after tw.min.css so it wins. */
html,body{background:var(--paper);}

/* Every block partial wraps its content in .padrini-block > .padrini-inner. */
.padrini-block{font-family:var(--font-text);color:var(--ink-900);}
.padrini-block .padrini-inner{max-width:var(--max-w-page);margin:0 auto;padding:32px;}
.padrini-text .padrini-prose{font-size:18px;line-height:1.6;color:var(--ink-700);}
.padrini-text .padrini-prose :where(h1,h2,h3){font-family:var(--font-display);color:var(--ink-900);}
.padrini-text .padrini-prose h1{font-size:var(--heading-lg);line-height:1.04;letter-spacing:-.03em;font-weight:700;margin:0 0 24px;}
.padrini-text .padrini-prose h2{font-size:clamp(19px,2.2vw,23px);line-height:1.3;font-weight:600;margin:32px 0 12px;}
.padrini-text .padrini-prose h3{font-size:clamp(17px,1.8vw,20px);line-height:1.3;font-weight:600;margin:24px 0 10px;}
.padrini-text .padrini-prose :where(h2,h3):first-child{margin-top:0;}
@media (max-width:760px){
  .padrini-text .padrini-prose h1{font-size:clamp(28px,8vw,40px);}
}

/* Text alignment from the richtext editor. Quill 1.x stores alignment as classes (ql-align-*),
   not inline styles — the editor's own stylesheet backs them, but the public site must too or
   every aligned paragraph renders left. Applies to all blocks (any rt() field has the align tool).
   Left is the default (no class), so un-aligned content is unaffected. */
.ql-align-center{text-align:center;}
.ql-align-right{text-align:right;}
.ql-align-justify{text-align:justify;}

/* Inline links authored in the richtext editor render as bare <a> (no class); structural card
   links all carry a class, so :not([class]) targets only editor links. Blue + underline so it
   reads as clickable. */
.padrini-block a:not([class]){color:#2563eb;text-decoration:underline;text-underline-offset:2px;}
.padrini-block a:not([class]):hover{color:#1d4ed8;}

/* Shared eyebrow label — bronze uppercase kicker above section headings. */
.padrini-eyebrow{font-family:var(--font-display);font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--bronze-600);margin-bottom:14px;}

/* Hero block — two layouts: image-right (home) and image-below (service/about). */
.padrini-hero{padding:0;background:var(--paper);}
.padrini-hero .padrini-hero-inner{max-width:var(--max-w-page);margin:0 auto;padding:64px 32px 120px;}
.padrini-hero-title{font-family:var(--font-display);font-size:clamp(56px,7.4vw,112px);line-height:.98;letter-spacing:-.035em;font-weight:700;color:var(--ink-900);margin:0;text-wrap:balance;}
.padrini-hero-title em,.padrini-hero-title i,.padrini-hero-title .accent{font-family:var(--font-serif);font-style:italic;font-weight:300;color:var(--bronze-600);}
.padrini-hero-body{font-family:var(--font-text);font-size:19px;line-height:1.55;color:var(--ink-700);margin-top:48px;max-width:580px;}
.padrini-hero-body--secondary{font-size:16px;line-height:1.65;color:var(--ink-500);margin-top:22px;}
.padrini-hero-actions{margin-top:56px;display:flex;gap:16px;align-items:center;flex-wrap:wrap;}
.padrini-hero-btn{font-family:var(--font-text);font-size:14px;font-weight:600;text-decoration:none;padding:14px 26px;letter-spacing:.01em;}
.padrini-hero-btn--primary{color:var(--white);background:var(--ink-900);}
.padrini-hero-btn--primary:hover{background:var(--ink-700);}
.padrini-hero-btn--ghost{color:var(--ink-900);font-weight:500;padding:14px 4px;border-bottom:1px solid var(--ink-900);}
.padrini-hero-btn--ghost:hover{color:var(--ink-600);border-color:var(--ink-600);}
/* <picture> is display:inline by default; force it to fill the media box so the img's width:100%
   resolves against the container (not the image's intrinsic 1600px) in every browser engine. */
.padrini-hero-media picture{display:block;width:100%;}
.padrini-hero-media img{display:block;width:100%;max-width:100%;height:auto;object-fit:cover;}
/* image-right: two-column with the media beside the copy */
.padrini-hero--right .padrini-hero-inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:center;}
/* Match reference: hero h1 carries a 32px top margin when it is the first element (no eyebrow). */
.padrini-hero--right .padrini-hero-copy > .padrini-hero-title:first-child{margin-top:32px;}
.padrini-hero--right .padrini-hero-media img{aspect-ratio:4/5;object-fit:contain;mix-blend-mode:multiply;}
/* image-below: full-width copy then full-width media */
/* Service-page hero (image-below). Reference: section 40/0/96 + text-inner 24/32/56, then a
   content-width banner. Title full-width; body | buttons in a 2-col align-end row. */
.padrini-hero--below .padrini-hero-inner{padding-bottom:96px;}
.padrini-hero--below .padrini-hero-media{margin:56px -32px 0;}
.padrini-hero--below .padrini-hero-media img{aspect-ratio:2500/941;background:#efece4;}
.padrini-hero--below .padrini-hero-copy{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:64px;align-items:end;}
.padrini-hero--below .padrini-eyebrow{grid-column:1 / -1;}
.padrini-hero--below .padrini-hero-title{grid-column:1 / -1;max-width:980px;margin:0;font-size:clamp(56px,7.2vw,108px);}
.padrini-hero--below .padrini-hero-body{grid-column:1;margin:40px 0 0;max-width:560px;}
/* Wholesale hero body is hand-tuned wider in the reference (620 vs the service default 560). */
.page-wholesale .padrini-hero--below .padrini-hero-body{max-width:620px;}
.padrini-hero--below .padrini-hero-actions{grid-column:2;margin:40px 0 0;align-self:end;justify-self:start;}
/* Mobile: collapse the image-below hero's 2-col copy grid so the body isn't squeezed into the
   left half (and shrink the title). Applies to wholesale / private-label / global / about heroes. */
@media (max-width:760px){
    .padrini-hero--below .padrini-hero-copy{grid-template-columns:1fr;column-gap:0;}
    .padrini-hero--below .padrini-hero-title{grid-column:1 / -1;max-width:none;font-size:clamp(40px,11vw,72px);}
    .padrini-hero--below .padrini-hero-body{grid-column:1 / -1;max-width:none;margin-top:28px;}
    .padrini-hero--below .padrini-hero-actions{grid-column:1 / -1;margin-top:32px;}
}
/* Banner-only hero (no copy): tight 24/56 padding, content-width photo (reference Hero()). */
.padrini-hero--banner-only .padrini-hero-inner{max-width:none;padding:24px 32px 56px;}
.padrini-hero--banner-only .padrini-hero-media{margin:0 auto;max-width:var(--max-w-page);}
.padrini-hero--banner-only .padrini-hero-media img{aspect-ratio:2500/916;}
/* About hero body is hand-tuned in the reference: display 22 / weight 600 / ink-900 with a
   serif-italic accent (vs the service hero's text 19 / weight 400). Scoped via body.page-about. */
.page-about .padrini-hero--below .padrini-hero-body{font-family:var(--font-display);font-size:22px;line-height:1.3;font-weight:600;letter-spacing:-.015em;color:var(--ink-900);max-width:720px;}
.page-about .padrini-hero-body em,.page-about .padrini-hero-body i{font-family:var(--font-serif);font-style:italic;font-weight:300;color:var(--bronze-600);}
/* Global-sourcing hero body: bold display lead + a separated text paragraph (reference). */
.page-global-sourcing .padrini-hero--below .padrini-hero-body{font-family:var(--font-display);font-size:22px;line-height:1.35;font-weight:600;letter-spacing:-.015em;color:var(--ink-900);max-width:600px;}
.page-global-sourcing .padrini-hero--below .padrini-hero-body--secondary{font-family:var(--font-text);font-size:19px;line-height:1.55;font-weight:400;color:var(--ink-700);margin-top:22px;max-width:600px;}
@media (max-width:880px){
    .padrini-hero--right .padrini-hero-inner{grid-template-columns:1fr;gap:32px;padding-bottom:48px;}
}
/* Mobile: the wide image-below hero banner becomes a 1:1 square. Uses the editor's dedicated
   mobile image when supplied (swapped in via <picture><source> in _Hero.cshtml); otherwise the
   desktop image is center-cropped/zoomed to the square. Placed after the base + banner-only rules
   so it wins the source-order tie against .padrini-hero--banner-only's wide aspect-ratio. */
@media (max-width:760px){
    /* Inset the square within the page's side padding (drop the desktop full-bleed) so it has
       left/right breathing room and aligns with the copy instead of dominating edge-to-edge. */
    .padrini-hero--below .padrini-hero-media{margin-left:0;margin-right:0;}
    .padrini-hero--below .padrini-hero-media img{aspect-ratio:1/1;object-fit:cover;}
}

/* Capabilities block */
.padrini-capabilities{background:var(--paper);border-top:1px solid var(--line-2);}
/* Service-page approach heading is hand-tuned larger on 3 of 4 pages (private-label keeps the
   smaller 40-76 default + its border-top); the other three use 52-96 and no section border. */
.page-product-management .padrini-cap-heading,
.page-retail-marketing .padrini-cap-heading,
.page-global-sourcing .padrini-cap-heading{font-size:clamp(52px,6.4vw,96px);line-height:.98;letter-spacing:-.035em;}
.page-product-management .padrini-capabilities,
.page-retail-marketing .padrini-capabilities,
.page-global-sourcing .padrini-capabilities{border-top:none;}
/* Reference uses a 60px approach-section top on these three pages (vs the shared 120px that
   private-label keeps). PM/retail follow a banner-only hero; global-sourcing has a full hero
   but the reference still specifies 60px there, so all three share the value. */
.page-product-management .padrini-capabilities .padrini-cap-inner,
.page-retail-marketing .padrini-capabilities .padrini-cap-inner,
.page-global-sourcing .padrini-capabilities .padrini-cap-inner{padding-top:60px;}
/* Reference puts 32px padding on the section + max-width:1280 (no padding) on the inner,
   so content is a full 1280 wide. We keep padding on the inner (mobile override depends on it)
   and widen max-width by 2x32 so desktop content is 1280 and behaves identically at every width. */
.padrini-capabilities .padrini-cap-inner{max-width:calc(var(--max-w-page) + 64px);margin:0 auto;padding:120px 32px;}
.padrini-cap-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;margin-bottom:80px;}
/* Match reference: heading carries a 28px top margin when it's the first element (no eyebrow). */
.padrini-cap-head-left > .padrini-cap-heading:first-child{margin-top:28px;}
.padrini-cap-heading{font-family:var(--font-display);font-size:clamp(40px,5vw,76px);line-height:1;letter-spacing:-.03em;font-weight:700;color:var(--ink-900);margin:0;text-wrap:balance;overflow-wrap:break-word;word-break:break-word;}
.padrini-cap-heading em,.padrini-cap-heading i{font-family:var(--font-serif);font-style:italic;font-weight:300;color:var(--bronze-600);}
.padrini-cap-head-left{display:flex;flex-direction:column;}
.padrini-cap-head-right{display:flex;flex-direction:column;gap:24px;justify-content:flex-end;}
.padrini-cap-intro{font-family:var(--font-text);font-size:18px;line-height:1.6;color:var(--ink-500);margin:0;max-width:460px;}
.padrini-cap-rows{border-top:1px solid var(--ink-300);}
.padrini-cap-rows--padded{padding:0 clamp(24px,4vw,64px) 32px;}
.padrini-cap-row{border-bottom:1px solid var(--ink-200);padding:40px 24px;margin:0 -24px;display:grid;grid-template-columns:90px minmax(0,4fr) minmax(0,5fr);gap:32px;align-items:start;transition:background .24s var(--ease-out);}
.padrini-cap-row:hover{background:var(--ink-050);}
.padrini-cap-row:last-child{border-bottom:none;}
.padrini-cap-num{font-family:var(--font-display);font-size:14px;font-weight:600;letter-spacing:.16em;color:var(--bronze-600);padding-top:3px;}
.padrini-cap-chevron{width:32px;height:32px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;display:block;}
.padrini-cap-chevron--sm{width:18px;height:18px;stroke-width:2;}
.padrini-cap-title{font-family:var(--font-display);font-size:clamp(28px,2.6vw,38px);line-height:1.05;letter-spacing:-.02em;font-weight:600;color:var(--ink-900);margin:0;}
.padrini-cap-desc{font-family:var(--font-text);font-size:16px;line-height:1.55;color:var(--ink-500);margin:14px 0 0;max-width:460px;}
/* Service approach rows (title + desc, no bullets): equal 6fr/6fr columns so titles fit on one
   line + wider desc (reference). Targeted via :has so the home page's bullet rows are untouched. */
.padrini-cap-row:has(> .padrini-cap-desc){grid-template-columns:90px minmax(0,1fr) minmax(0,1fr);}
.padrini-cap-row:has(> .padrini-cap-desc) .padrini-cap-title{font-size:clamp(26px,2.4vw,36px);}
.padrini-cap-row:has(> .padrini-cap-desc) .padrini-cap-desc{font-size:17px;line-height:1.6;max-width:520px;}
/* Result = the final numbered row (reference: 90px/1fr grid, full-width ink-050 band, top
   divider, number aligned with the rows above). */
.padrini-cap-result{display:grid;grid-template-columns:90px minmax(0,1fr);gap:32px;align-items:start;padding:64px 24px;margin:0 -24px;background:var(--ink-050);border-top:1px solid var(--ink-200);}
.padrini-cap-result-num{font-family:var(--font-display);font-size:14px;font-weight:600;letter-spacing:.16em;color:var(--bronze-600);align-self:center;}
.padrini-cap-result-label{font-family:var(--font-display);font-size:13px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--bronze-600);margin-bottom:18px;}
.padrini-cap-result-heading{font-family:var(--font-display);font-size:clamp(30px,3vw,46px);line-height:1.08;letter-spacing:-.025em;font-weight:600;color:var(--ink-900);margin:0;max-width:920px;text-wrap:balance;}
.padrini-cap-result-heading em,.padrini-cap-result-heading i{font-family:var(--font-serif);font-style:italic;font-weight:300;color:var(--bronze-600);}
@media (max-width:880px){.padrini-cap-head{grid-template-columns:1fr;gap:20px;margin-bottom:36px;}.padrini-cap-row{grid-template-columns:1fr;gap:14px;padding:30px 0;margin:0;}.padrini-cap-row:has(> .padrini-cap-desc){grid-template-columns:1fr;}.padrini-cap-num{display:none;}.padrini-cap-bullets{padding-top:6px;}.padrini-cap-result{grid-template-columns:1fr;gap:14px;padding:36px 0;margin:0;}.padrini-cap-result-num{display:none;}}
@media (max-width:760px){.padrini-capabilities .padrini-cap-inner{padding-top:48px;padding-bottom:48px;}.padrini-cap-head-left > .padrini-cap-heading:first-child{margin-top:16px;}.padrini-cap-subheading{margin-top:12px;}.padrini-cap-head-right{gap:12px;}}

/* CrossLink block */
.padrini-crosslink{background:var(--ink-900);color:var(--white);}
.padrini-crosslink .padrini-cl-inner{max-width:var(--max-w-page);margin:0 auto;padding:120px 32px;}
.padrini-cl-heading{font-family:var(--font-display);font-size:clamp(40px,5vw,72px);line-height:1.02;letter-spacing:-.03em;font-weight:700;color:var(--white);margin:0 0 56px;max-width:900px;text-wrap:balance;}
.padrini-cl-heading em,.padrini-cl-heading i{font-family:var(--font-serif);font-style:italic;font-weight:300;color:var(--bronze-300);}
.padrini-cl-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid rgba(255,255,255,.18);}
.padrini-cl-card{display:flex;flex-direction:column;justify-content:space-between;gap:24px;min-height:220px;padding:36px 28px 32px;text-decoration:none;color:inherit;border-right:1px solid rgba(255,255,255,.18);border-bottom:1px solid rgba(255,255,255,.18);transition:background .24s var(--ease-out);}
.padrini-cl-card:last-child{border-right:none;}
.padrini-cl-card:hover{background:rgba(217,190,148,.06);}
.padrini-cl-card--current{opacity:.5;}
.padrini-cl-num{font-family:var(--font-display);font-size:13px;font-weight:600;letter-spacing:.16em;color:var(--bronze-300);margin-bottom:18px;}
.padrini-cl-title{font-family:var(--font-display);font-size:22px;line-height:1.18;letter-spacing:-.015em;font-weight:600;color:var(--white);margin:0;}
.padrini-cl-sub{font-family:var(--font-text);font-size:14px;line-height:1.5;color:rgba(255,255,255,.55);margin:10px 0 0;}
.padrini-cl-action{font-family:var(--font-text);font-size:13px;font-weight:600;color:var(--white);display:flex;align-items:center;gap:10px;}
.padrini-cl-arrow{font-size:16px;}
@media (max-width:880px){.padrini-cl-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.padrini-cl-grid{grid-template-columns:1fr;}.padrini-cl-card{min-height:0;padding:28px 0;border-right:none;}}

/* CTA block */
.padrini-cta{background:var(--paper);border-top:1px solid var(--line-2);}
.padrini-cta .padrini-cta-inner{max-width:var(--max-w-page);margin:0 auto;padding:140px 32px;text-align:center;}
.padrini-cta-heading{font-family:var(--font-display);font-size:clamp(56px,8vw,132px);line-height:.96;letter-spacing:-.04em;font-weight:700;color:var(--ink-900);margin:0 auto;max-width:1100px;text-wrap:balance;}
.padrini-cta-heading em,.padrini-cta-heading i{font-family:var(--font-serif);font-style:italic;font-weight:300;color:var(--bronze-600);}
.padrini-cta-subline{font-family:var(--font-text);font-size:22px;line-height:1.45;color:var(--ink-700);margin:28px auto 0;max-width:580px;}
.padrini-cta-actions{margin-top:48px;display:flex;justify-content:center;gap:14px;flex-wrap:wrap;}
.padrini-cta-btn{font-family:var(--font-text);font-size:15px;font-weight:600;text-decoration:none;padding:18px 28px;display:inline-flex;align-items:center;gap:12px;}
.padrini-cta-btn--primary{color:var(--white);background:var(--ink-900);}
.padrini-cta-btn--ghost{color:var(--ink-900);background:transparent;border:1px solid var(--ink-900);font-weight:500;}

/* PortfolioGrid block */
.padrini-portfolio{background:var(--paper);}
.padrini-portfolio .padrini-portfolio-inner{max-width:calc(var(--max-w-page) + 64px);margin:0 auto;padding:120px 32px;}
/* Portfolio page: the grid follows the intro directly (no section title), so it uses a tight
   40px top (reference) instead of the shared block's 120px. */
.page-portfolio .padrini-portfolio .padrini-portfolio-inner{padding-top:40px;}
.padrini-portfolio-head{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;flex-wrap:wrap;margin-bottom:64px;}
.padrini-portfolio-title{font-family:var(--font-display);font-size:clamp(40px,5vw,76px);line-height:1;letter-spacing:-.03em;font-weight:700;color:var(--ink-900);margin:0;text-wrap:balance;}
.padrini-portfolio-title em,.padrini-portfolio-title i{font-family:var(--font-serif);font-style:italic;font-weight:300;color:var(--bronze-600);}
.padrini-portfolio-all{font-family:var(--font-text);font-size:14px;font-weight:500;color:var(--ink-900);text-decoration:none;padding:14px 4px;border-bottom:1px solid var(--ink-900);white-space:nowrap;}
.padrini-portfolio-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;}
.padrini-portfolio-card{text-decoration:none;color:inherit;display:block;}
/* Slider mode (service pages): horizontal scroll-snap track, 3 cards per view + arrow nav.
   With exactly 3 cards there is no overflow, so it renders identically to the static grid. */
.padrini-portfolio-head-actions{display:flex;align-items:center;gap:24px;}
.padrini-portfolio-nav{display:none;gap:8px;}
.padrini-portfolio-navbtn{width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--ink-300);background:transparent;color:var(--ink-900);font-size:16px;cursor:pointer;transition:border-color .2s var(--ease-out),background .2s var(--ease-out);}
.padrini-portfolio-navbtn:hover{border-color:var(--ink-900);background:var(--ink-050);}
.padrini-portfolio--slider .padrini-portfolio-grid{display:flex;gap:32px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none;}
.padrini-portfolio--slider .padrini-portfolio-grid::-webkit-scrollbar{display:none;}
.padrini-portfolio--slider .padrini-portfolio-card{flex:0 0 calc((100% - 64px) / 3);scroll-snap-align:start;}
.padrini-portfolio-thumb{position:relative;background:#efece4;aspect-ratio:1/1;overflow:hidden;}
.padrini-portfolio-thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease-out);}
/* Subtle image zoom on hover — desktop (mouse) only, so it never sticks on touch devices. */
@media (hover:hover){.padrini-portfolio-card:hover .padrini-portfolio-thumb img{transform:scale(1.05);}}
.padrini-portfolio-meta{display:flex;justify-content:space-between;align-items:baseline;margin-top:16px;gap:16px;}
.padrini-portfolio-brand{font-family:var(--font-display);font-size:17px;font-weight:600;color:var(--ink-900);}
.padrini-portfolio-tag{font-family:var(--font-text);font-size:13px;color:var(--ink-500);margin-top:2px;}
.padrini-portfolio-flag{display:inline-block;width:14px;height:auto;margin-right:6px;vertical-align:-1px;border-radius:2px;}
.padrini-portfolio-arrow{font-family:var(--font-text);font-size:18px;color:var(--ink-300);}
/* Index badge (reference: light translucent chip, dark text). Hidden by default; shown on the
   portfolio page only — the shared grid on other pages doesn't carry numbers. */
.padrini-portfolio-badge{display:none;position:absolute;top:14px;left:14px;font-family:var(--font-display);font-size:11px;font-weight:600;letter-spacing:.18em;color:rgba(10,10,10,.55);background:rgba(251,251,253,.78);backdrop-filter:saturate(180%) blur(8px);-webkit-backdrop-filter:saturate(180%) blur(8px);padding:6px 10px;z-index:2;pointer-events:none;}
.page-portfolio .padrini-portfolio-badge{display:block;}
.padrini-portfolio-overlay{position:absolute;inset:auto 0 0 0;padding:40px 20px 20px;background:linear-gradient(to top,rgba(0,0,0,.72) 0%,rgba(0,0,0,0) 100%);font-family:var(--font-text);font-size:13px;font-weight:500;letter-spacing:.02em;color:#fff;opacity:0;transition:opacity .25s ease;z-index:1;pointer-events:none;}
.padrini-portfolio-card:hover .padrini-portfolio-overlay{opacity:1;}
@media (max-width:880px){.padrini-portfolio-grid{grid-template-columns:1fr 1fr;}.padrini-portfolio--slider .padrini-portfolio-card{flex:0 0 calc((100% - 24px) / 2);}.padrini-portfolio--slider .padrini-portfolio-grid{gap:24px;}}
@media (max-width:560px){.padrini-portfolio--slider .padrini-portfolio-card{flex:0 0 82%;}}

/* ProjectSlider block */
.padrini-pslider{background:var(--paper);}
.padrini-pslider .padrini-pslider-inner{max-width:calc(var(--max-w-page) + 64px);margin:0 auto;padding:120px 32px;}
.padrini-pslider-head{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;margin-bottom:64px;flex-wrap:wrap;}
.padrini-pslider-title{font-family:var(--font-display);font-size:clamp(40px,5vw,76px);line-height:1;letter-spacing:-.03em;font-weight:700;color:var(--ink-900);margin:28px 0 0;text-wrap:balance;max-width:880px;}
.padrini-pslider-title em,.padrini-pslider-title i{font-family:var(--font-serif);font-style:italic;font-weight:300;color:var(--bronze-600);}
.padrini-pslider-caption{font-family:var(--font-text);font-size:16px;line-height:1.6;color:var(--ink-500);margin:0;max-width:360px;}
.padrini-pslide{display:none;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:80px;align-items:center;}
.padrini-pslide.is-active{display:grid;}
.padrini-pslide-media{aspect-ratio:1/1;background:#efece4;overflow:hidden;}
.padrini-pslide-media img{width:100%;height:100%;object-fit:cover;display:block;}
.padrini-pslide-title{font-family:var(--font-display);font-size:clamp(36px,3.6vw,56px);line-height:1.04;letter-spacing:-.028em;font-weight:700;color:var(--ink-900);margin:20px 0 0;text-wrap:balance;}
.padrini-pslide-title em,.padrini-pslide-title i{font-family:var(--font-serif);font-style:italic;font-weight:300;color:var(--bronze-600);}
.padrini-pslide-tag{font-family:var(--font-text);font-size:14px;color:var(--ink-500);font-weight:500;margin-top:14px;}
.padrini-pslide-intro{font-family:var(--font-text);font-size:17px;line-height:1.65;color:var(--ink-700);margin:32px 0 0;max-width:480px;}
.padrini-pslide-meta{margin:40px 0 0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);row-gap:18px;column-gap:24px;border-top:1px solid var(--ink-200);padding-top:22px;}
.padrini-pslide-meta dt{font-family:var(--font-text);font-size:10px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-400);margin-bottom:4px;}
.padrini-pslide-meta dd{margin:0;font-family:var(--font-display);font-size:15px;font-weight:600;color:var(--ink-900);}
.padrini-pslide-actions{margin-top:48px;display:flex;align-items:center;gap:24px;flex-wrap:wrap;}
.padrini-pslide-cta{font-family:var(--font-text);font-size:14px;font-weight:600;color:var(--white);background:var(--ink-900);padding:16px 26px;text-decoration:none;letter-spacing:.01em;}
.padrini-pslide-cta:hover{background:var(--ink-700);}
.padrini-pslider-nav{display:flex;align-items:center;gap:8px;}
.padrini-pslider-nav button{width:48px;height:48px;border:1px solid var(--ink-300);background:transparent;color:var(--ink-700);font-size:16px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .2s var(--ease-out);}
.padrini-pslider-nav button:hover{border-color:var(--ink-900);color:var(--ink-900);}
.padrini-pslider-nav .padrini-pslider-next{border-color:var(--ink-900);background:var(--ink-900);color:var(--white);}
.padrini-pslider-nav .padrini-pslider-next:hover{background:var(--ink-700);border-color:var(--ink-700);color:var(--white);}
.padrini-pslider-nav button:disabled{opacity:.4;cursor:not-allowed;}
@media (max-width:880px){.padrini-pslide.is-active{grid-template-columns:1fr;gap:32px;}}

/* ---- Pillars block (Phase 4a) — editorial bordered grid (matches wholesale.html) ---- */
.padrini-pillars{background:var(--paper);}
.padrini-pillars-inner{max-width:var(--max-w-page);margin:0 auto;padding:24px 32px 120px;}
.padrini-pillars-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--ink-300);}
.padrini-pillar-card{display:flex;flex-direction:column;justify-content:space-between;gap:56px;min-height:220px;padding:40px 24px 36px;border-right:1px solid var(--ink-200);}
.padrini-pillar-card:last-child{border-right:none;}
.padrini-pillar-num{font-family:var(--font-display);font-size:14px;font-weight:600;letter-spacing:.16em;color:var(--bronze-600);}
.padrini-pillar-title{font-family:var(--font-display);font-size:clamp(22px,2.1vw,30px);line-height:1.1;letter-spacing:-.018em;font-weight:600;color:var(--ink-900);margin:0;text-wrap:balance;}
@media (max-width:880px){.padrini-pillars-grid{grid-template-columns:1fr 1fr;}.padrini-pillar-card:nth-child(2n){border-right:none;}.padrini-pillar-card{min-height:180px;gap:40px;}}
@media (max-width:560px){.padrini-pillars-grid{grid-template-columns:1fr;}.padrini-pillar-card{border-right:none;border-bottom:1px solid var(--ink-200);min-height:0;gap:12px;padding:24px 0;}.padrini-pillar-card:last-child{border-bottom:none;}.padrini-pillars-inner{padding:24px 20px 72px;}}

/* ---- PrivateLabelInvite block (Phase 4a) — editorial cross-link grid (matches wholesale.html) ---- */
.padrini-pli{background:var(--paper);border-top:1px solid var(--line-2);}
.padrini-pli-inner{max-width:calc(var(--max-w-page) + 64px);margin:0 auto;padding:120px 32px;}
.padrini-pli-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:end;margin-bottom:56px;}
.padrini-pli-heading{font-family:var(--font-display);font-size:clamp(40px,5vw,72px);line-height:1.02;letter-spacing:-.03em;font-weight:700;color:var(--ink-900);margin:0;text-wrap:balance;}
.padrini-pli-heading em,.padrini-pli-heading i{font-family:var(--font-serif);font-style:italic;font-weight:300;color:var(--bronze-600);}
.padrini-pli-intro{font-family:var(--font-text);font-size:18px;line-height:1.6;color:var(--ink-500);margin:0;max-width:480px;}
.padrini-pli-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--ink-300);}
.padrini-pli-card{display:flex;flex-direction:column;justify-content:space-between;gap:24px;min-height:220px;padding:36px 28px 32px;border-right:1px solid var(--ink-200);border-bottom:1px solid var(--ink-200);text-decoration:none;color:inherit;transition:background .24s var(--ease-out);}
.padrini-pli-card:last-child{border-right:none;}
a.padrini-pli-card:hover{background:rgba(140,106,63,0.04);}
.padrini-pli-num{font-family:var(--font-display);font-size:13px;font-weight:600;letter-spacing:.16em;color:var(--bronze-600);margin-bottom:18px;}
.padrini-pli-title{font-family:var(--font-display);font-size:22px;line-height:1.18;letter-spacing:-.015em;font-weight:600;color:var(--ink-900);margin:0;}
.padrini-pli-sub{font-family:var(--font-text);font-size:14px;line-height:1.5;color:var(--ink-500);margin:10px 0 0;}
.padrini-pli-action{font-family:var(--font-text);font-size:13px;font-weight:600;color:var(--ink-900);display:flex;align-items:center;gap:10px;transition:transform .24s var(--ease-out);}
a.padrini-pli-card:hover .padrini-pli-action{transform:translateX(4px);}
@media (max-width:880px){.padrini-pli-head{grid-template-columns:1fr;gap:20px;}.padrini-pli-grid{grid-template-columns:1fr 1fr;}.padrini-pli-card:nth-child(2n){border-right:none;}.padrini-pli-card{min-height:180px;}}
@media (max-width:560px){.padrini-pli-grid{grid-template-columns:1fr;}.padrini-pli-card{border-right:none;min-height:0;}.padrini-pli-inner{padding:72px 20px;}}

/* ---- PortfolioIntro block (Phase 4b) ---- */
.padrini-pintro{background:var(--paper);}
.padrini-pintro-inner { max-width: var(--max-w-page, 1280px); margin: 0 auto; padding: 64px 32px 24px; }
.padrini-pintro-eyebrow { display:flex; align-items:center; gap:12px; font-family:var(--font-text); text-transform: uppercase; letter-spacing: .22em; font-size: 11px; font-weight:600; color: var(--bronze-600); margin-bottom: 28px; }
.padrini-pintro-eyebrow::before { content:""; width:24px; height:1px; background:var(--bronze-600); }
.padrini-pintro-grid { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); gap:80px; align-items:flex-end; }
.padrini-pintro-heading { font-family: var(--font-display); font-size: clamp(38px, 4.6vw, 72px); line-height: 1.02; letter-spacing:-.03em; font-weight:700; color:var(--ink-900); margin: 0; max-width:1100px; text-wrap:balance; }
.padrini-pintro-heading em,.padrini-pintro-heading i { font-family:var(--font-serif); font-style:italic; font-weight:300; color:var(--bronze-600); }
.padrini-pintro-body { font-family:var(--font-text); color: var(--ink-700); max-width: 460px; margin: 0; font-size: 19px; line-height:1.5; font-weight:400; }
@media (max-width:760px){ .padrini-pintro-grid{grid-template-columns:1fr;gap:24px;align-items:start;} }

/* ---- ContactDetails block (reference: 2-col head + bordered email/phone strip with icons) ---- */
.padrini-contact{background:var(--paper);border-top:1px solid var(--line-2);}
.padrini-contact .padrini-contact-inner{max-width:var(--max-w-page);margin:0 auto;padding:120px 32px;}
.padrini-contact-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:flex-end;margin-bottom:56px;}
.padrini-contact-heading{font-family:var(--font-display);font-size:clamp(40px,4.5vw,64px);line-height:1;letter-spacing:-.03em;font-weight:700;margin:0;color:var(--ink-900);text-wrap:balance;}
.padrini-contact-heading em{font-family:var(--font-serif);font-style:italic;font-weight:300;color:var(--bronze-600);}
.padrini-contact-intro{font-family:var(--font-text);font-size:17px;line-height:1.65;color:var(--ink-500);margin:0;max-width:440px;}
.padrini-contact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border-top:1px solid var(--ink-200);border-bottom:1px solid var(--ink-200);}
.padrini-contact-card{display:flex;flex-direction:column;gap:24px;padding:40px 32px 40px 0;text-decoration:none;color:inherit;}
.padrini-contact-card:first-child{border-right:1px solid var(--ink-200);}
.padrini-contact-card:last-child{padding:40px 0 40px 32px;}
/* Single card (only email OR only phone configured): span both columns, no dangling divider. */
.padrini-contact-card:only-child{grid-column:1 / -1;border-right:none;padding:40px 0;}
.padrini-contact-icon{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;border:1px solid var(--ink-200);background:var(--white);color:var(--ink-900);}
.padrini-contact-label{font-family:var(--font-text);text-transform:uppercase;letter-spacing:.22em;font-size:11px;font-weight:600;color:var(--ink-500);margin-bottom:16px;}
.padrini-contact-value{font-family:var(--font-display);font-size:26px;line-height:1.2;letter-spacing:-.02em;font-weight:600;color:var(--ink-900);word-break:break-word;}
.padrini-contact-desc{font-family:var(--font-text);font-size:14px;line-height:1.55;color:var(--ink-500);margin:14px 0 0;max-width:320px;}
@media (max-width:760px){.padrini-contact-head{grid-template-columns:1fr;gap:20px;}.padrini-contact-grid{grid-template-columns:1fr;}.padrini-contact-card,.padrini-contact-card:first-child,.padrini-contact-card:last-child{padding:32px 0;border-right:none;border-bottom:1px solid var(--ink-200);}.padrini-contact-card:last-child{border-bottom:none;}}

/* ---- FaqStrip block (reference: ink-050 band + bordered 3-col grid) ---- */
.padrini-faq{background:var(--ink-050);border-top:1px solid var(--line-2);}
.padrini-faq .padrini-faq-inner{max-width:var(--max-w-page);margin:0 auto;padding:120px 32px;}
.padrini-faq-label{font-family:var(--font-text);text-transform:uppercase;letter-spacing:.22em;font-size:11px;font-weight:600;color:var(--bronze-600);margin-bottom:28px;}
.padrini-faq-heading{font-family:var(--font-display);font-size:var(--heading-lg);line-height:1;letter-spacing:-.03em;font-weight:700;margin:0;color:var(--ink-900);max-width:720px;text-wrap:balance;}
.padrini-faq-heading em{font-family:var(--font-serif);font-style:italic;font-weight:300;color:var(--bronze-600);}
.padrini-faq-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-top:56px;border-top:1px solid var(--ink-300);}
.padrini-faq-item{padding:32px 28px 32px 0;border-right:1px solid var(--ink-200);}
.padrini-faq-item:not(:first-child){padding-left:28px;}
.padrini-faq-item:last-child{border-right:none;}
.padrini-faq-q{font-family:var(--font-display);font-size:20px;line-height:1.25;letter-spacing:-.015em;font-weight:600;color:var(--ink-900);margin:0 0 14px;}
.padrini-faq-a{font-family:var(--font-text);font-size:15px;line-height:1.65;color:var(--ink-500);margin:0;}
@media (max-width:760px){.padrini-faq-grid{grid-template-columns:1fr;}.padrini-faq-item,.padrini-faq-item:not(:first-child){padding:28px 0;border-right:none;border-bottom:1px solid var(--ink-200);}.padrini-faq-item:last-child{border-bottom:none;}}

/* ---- InquiryForm block (reference: 2-col copy/form, underline inputs, chips) ---- */
.padrini-inquiry{background:var(--white);}
.padrini-inquiry .padrini-inquiry-inner{max-width:var(--max-w-page);margin:0 auto;padding:140px 32px;}
.padrini-inquiry-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:80px;}
.padrini-inquiry-label{font-family:var(--font-text);text-transform:uppercase;letter-spacing:.22em;font-size:11px;font-weight:600;color:var(--bronze-600);margin-bottom:28px;}
.padrini-inquiry-heading{font-family:var(--font-display);font-size:clamp(40px,5vw,76px);line-height:.98;letter-spacing:-.035em;font-weight:700;margin:0;color:var(--ink-900);text-wrap:balance;}
.padrini-inquiry-heading em{font-family:var(--font-serif);font-style:italic;font-weight:300;color:var(--bronze-600);}
.padrini-inquiry-intro{font-family:var(--font-text);font-size:16px;line-height:1.65;color:var(--ink-500);margin:32px 0 0;max-width:420px;}
.padrini-inquiry-reach{margin-top:48px;padding:24px 0;border-top:1px solid var(--ink-200);font-family:var(--font-text);font-size:13px;line-height:1.6;color:var(--ink-500);}
.padrini-inquiry-reach a{color:var(--ink-900);text-decoration:none;font-weight:500;}
.padrini-inquiry-form{display:grid;gap:28px;}
.padrini-inquiry-fields{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.padrini-inquiry-field{display:block;}
.padrini-inquiry-field > span{display:block;font-family:var(--font-text);font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:var(--ink-500);margin-bottom:10px;}
.padrini-inquiry-field input,.padrini-inquiry-field textarea{width:100%;padding:12px 0;border:none;border-bottom:1px solid var(--ink-300);background:transparent;font-family:var(--font-display);font-size:18px;font-weight:500;color:var(--ink-900);letter-spacing:-.005em;outline:none;transition:border-color .18s var(--ease-out);}
.padrini-inquiry-field textarea{resize:vertical;line-height:1.55;padding:14px 0;}
.padrini-inquiry-field input:focus,.padrini-inquiry-field textarea:focus{border-color:var(--ink-900);}
.padrini-inquiry-message{margin:0;}
.padrini-inquiry-subjects{display:flex;flex-wrap:wrap;gap:8px;}
.padrini-inquiry-chip{font-family:var(--font-text);font-size:13px;font-weight:500;padding:10px 16px;border-radius:999px;border:1px solid var(--ink-200);background:transparent;color:var(--ink-700);cursor:pointer;letter-spacing:.01em;transition:all .18s var(--ease-out);}
.padrini-inquiry-chip:hover{border-color:var(--ink-900);}
.padrini-inquiry-chip.is-active{background:var(--ink-900);color:var(--white);border-color:var(--ink-900);}
.padrini-inquiry-foot{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;margin-top:8px;}
.padrini-inquiry-submit{font-family:var(--font-text);font-size:14px;font-weight:600;color:var(--white);background:var(--ink-900);border:none;padding:18px 32px;cursor:pointer;letter-spacing:.02em;display:inline-flex;align-items:center;gap:12px;}
.padrini-inquiry-submit:hover{background:var(--ink-700);}
.padrini-form-privacy{font-family:var(--font-text);font-size:12px;line-height:1.5;color:var(--ink-500);margin:0;max-width:380px;}
.padrini-form-privacy a{color:var(--ink-900);text-decoration:underline;}
@media (max-width:880px){.padrini-inquiry-grid{grid-template-columns:1fr;gap:48px;}}
@media (max-width:560px){.padrini-inquiry-fields{grid-template-columns:1fr;}}

/* ---- Contact page scoped tweaks (Pillars is shared with wholesale → keep its vertical card) ---- */
.page-contact .padrini-hero .padrini-eyebrow{display:flex;align-items:center;gap:12px;}
.page-contact .padrini-hero .padrini-eyebrow::before{content:"";width:24px;height:1px;background:var(--bronze-600);}
.page-contact .padrini-hero--below .padrini-hero-title{font-size:clamp(56px,8.4vw,144px);line-height:.94;letter-spacing:-.04em;max-width:none;}
.page-contact .padrini-hero--below .padrini-hero-inner{max-width:calc(var(--max-w-page) + 64px);padding-top:56px;padding-bottom:0;}
.page-contact .padrini-pillars-inner{max-width:calc(var(--max-w-page) + 64px);padding:64px 32px 96px;}
.page-contact .padrini-pillars-grid{grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--ink-200);}
.page-contact .padrini-pillar-card{flex-direction:row;justify-content:flex-start;align-items:center;gap:16px;min-height:0;padding:24px 24px 24px 0;border-right:1px solid var(--ink-200);}
.page-contact .padrini-pillar-card:not(:first-child){padding-left:24px;}
.page-contact .padrini-pillar-card:last-child{border-right:none;}
.page-contact .padrini-pillar-num{font-size:13px;min-width:24px;}
.page-contact .padrini-pillar-title{font-size:18px;font-weight:500;line-height:1.3;letter-spacing:-.005em;}
@media (max-width:760px){.page-contact .padrini-pillars-grid{grid-template-columns:1fr;}.page-contact .padrini-pillar-card,.page-contact .padrini-pillar-card:not(:first-child){padding:18px 0;border-right:none;border-bottom:1px solid var(--ink-200);}.page-contact .padrini-pillar-card:last-child{border-bottom:none;}}

/* ---- Marquee block (Phase 4d) ---- */
/* Reference uses var(--line-soft) for these borders but never defines it, so they're
   invalid/invisible there. We defined --line-soft, so drop the borders here to match. */
.padrini-marquee{overflow:hidden;padding:18px 0;background:var(--paper);}
.padrini-marquee-track{display:inline-flex;white-space:nowrap;will-change:transform;animation:padrini-marquee 60s linear infinite;}
.padrini-marquee-item{display:inline-flex;align-items:center;gap:24px;font-family:var(--font-text);font-size:13px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-600);padding:0 24px;}
.padrini-marquee-item::after{content:"";width:4px;height:4px;border-radius:999px;background:var(--bronze-500);opacity:.7;}
@keyframes padrini-marquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}
@media (prefers-reduced-motion: reduce){.padrini-marquee-track{animation:none;}}

/* ---- WholesaleTeaser block (Phase 4d) — dark section, photo in larger right column ---- */
.padrini-wteaser{background:var(--ink-900);color:var(--white);}
.padrini-wteaser .padrini-wteaser-inner{max-width:calc(var(--max-w-page) + 64px);margin:0 auto;padding:120px 32px;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:64px;align-items:center;}
.padrini-wteaser-heading{font-family:var(--font-display);font-size:clamp(40px,5vw,76px);line-height:1;letter-spacing:-.03em;font-weight:700;margin:28px 0 0;color:var(--white);text-wrap:balance;}
/* Eyebrow on the dark teaser: match the block's lighter bronze accent (bronze-600 is too dim on
   ink-900) and drop the heading's 28px top when the eyebrow already supplies the top space. */
.padrini-wteaser .padrini-eyebrow{color:var(--bronze-300);}
.padrini-wteaser .padrini-eyebrow + .padrini-wteaser-heading{margin-top:0;}
.padrini-wteaser-heading em{font-family:var(--font-serif);font-style:italic;font-weight:300;color:var(--bronze-300);}
.padrini-wteaser-body{color:rgba(255,255,255,.78);font-size:19px;line-height:1.55;margin-top:40px;max-width:480px;}
.padrini-wteaser-cats{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:56px;border-top:1px solid rgba(255,255,255,.18);padding-top:24px;}
.padrini-wteaser-cat-name{font-family:var(--font-display);font-size:18px;font-weight:600;letter-spacing:-.01em;color:var(--white);}
.padrini-wteaser-cat-items{color:rgba(255,255,255,.55);font-size:13px;line-height:1.4;margin-top:4px;}
.padrini-wteaser-media{aspect-ratio:1/1;background:#efece4;overflow:hidden;}
.padrini-wteaser-media img{width:100%;height:100%;object-fit:contain;display:block;}
@media (max-width:880px){.padrini-wteaser .padrini-wteaser-inner{grid-template-columns:1fr;gap:28px;padding:72px 20px;}}

/* ---- Capabilities sub-heading, body paragraphs & banner (Task 3) ---- */
.padrini-cap-body-row{margin:0 0 0;padding:32px 0 0;}
.padrini-cap-subheading{font-family:var(--font-display);font-size:clamp(22px,2vw,28px);line-height:1.2;letter-spacing:-.015em;font-weight:500;color:var(--ink-600);margin:20px 0 0;text-wrap:balance;max-width:520px;overflow-wrap:break-word;word-break:break-word;}
.padrini-cap-body-cols{display:grid;grid-template-columns:1fr 1fr;gap:32px;}
.padrini-cap-body{font-family:var(--font-text);font-size:18px;line-height:1.6;color:var(--ink-700);margin:0;}
.padrini-cap-body2{font-size:16px;line-height:1.65;color:var(--ink-500);}
/* Retail capabilities head-right: bold display lead on its own line + a separated body. */
.page-retail-marketing .padrini-cap-body{font-family:var(--font-display);font-size:22px;line-height:1.35;font-weight:600;letter-spacing:-.015em;color:var(--ink-900);max-width:460px;}
.page-retail-marketing .padrini-cap-body2{font-family:var(--font-text);font-size:17px;line-height:1.6;font-weight:400;color:var(--ink-500);margin-top:0;max-width:460px;}
/* Retail hero copy: on mobile the head stacks, so widen the heading→body gap (client: it should
   not sit directly under the hero title, and should exceed the tightened body→body2 gap above). */
@media (max-width:880px){.page-retail-marketing .padrini-cap-head{gap:48px;}}
/* Reference renders inline <strong> (e.g. "Padrini") at 600 weight + ink-900. */
.padrini-hero-body strong,.padrini-cap-body strong{font-weight:600;color:var(--ink-900);}
.padrini-cap-panel{background:#f6f5f5;margin-top:0;}
.padrini-cap-banner{position:relative;width:100%;aspect-ratio:2543/1027;overflow:hidden;background:#f6f5f5;}
.padrini-cap-banner-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:left center;display:block;}
.padrini-cap-banner-overlay{position:absolute;inset:0;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:48px;align-items:center;padding:0 clamp(24px,4vw,64px);}
.padrini-cap-banner-heading{font-family:var(--font-display);font-size:clamp(40px,5.2vw,84px);line-height:.98;letter-spacing:-.03em;font-weight:700;color:var(--ink-900);margin:0;text-wrap:balance;}
.padrini-cap-banner-heading em,.padrini-cap-banner-heading i{font-family:var(--font-serif);font-style:italic;font-weight:300;color:var(--bronze-600);}
.padrini-cap-banner-intro{font-family:var(--font-text);font-size:17px;line-height:1.6;color:var(--ink-600);margin:24px 0 0;max-width:480px;}
@media (max-width:880px){.padrini-cap-body-cols{grid-template-columns:1fr;gap:20px;}}

/* ---- Capabilities bullets (Phase 4d) — numbered list with dashed dividers ---- */
.padrini-cap-bullets{list-style:none;margin:0;padding:8px 0 0;display:grid;gap:12px;}
.padrini-cap-bullets li{display:grid;grid-template-columns:24px 1fr;gap:10px;align-items:center;font-family:var(--font-text);font-size:15px;line-height:1.5;color:var(--ink-700);padding-bottom:12px;border-bottom:1px dashed var(--line-1);}
.padrini-cap-bullets li:last-child{border-bottom:none;padding-bottom:0;}
.padrini-cap-bullet-num{font-family:var(--font-text);font-size:11px;letter-spacing:.16em;color:var(--ink-400);font-weight:600;}

/* ---- OurStory block (Phase 4e) ---- */
/* Reference: full-width section (border-top) with a 4fr/7fr two-column grid — left rail holds
   the eyebrow + heading, right column the paragraphs separated by a three-em-dash divider. */
.padrini-story{border-top:1px solid var(--line-2);}
.padrini-story .padrini-story-inner{max-width:calc(var(--max-w-page) + 64px);margin:0 auto;padding:140px 32px 120px;display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:80px;align-items:start;}
.padrini-story-eyebrow{font-family:var(--font-text);text-transform:uppercase;letter-spacing:.22em;font-size:11px;font-weight:600;color:var(--bronze-600);margin-bottom:24px;}
.padrini-story-heading{font-family:var(--font-display);font-size:var(--heading-lg);line-height:1.04;letter-spacing:-.03em;font-weight:700;margin:0;color:var(--ink-900);text-wrap:balance;}
.padrini-story-heading em{font-family:var(--font-serif);font-style:italic;font-weight:300;color:var(--bronze-600);}
.padrini-story-body{max-width:720px;color:var(--ink-700);}
.padrini-story-body p{font-size:17px;line-height:1.6;margin:0;}
.padrini-story-body p:first-child{font-size:19px;}
.padrini-story-body p + p::before{content:"\2E3B";display:block;font-family:var(--font-serif);font-size:22px;line-height:1;letter-spacing:.4em;color:var(--ink-300);margin:32px 0;}

/* ---- NumberStrip block (Phase 4e) ---- */
/* Reference: full dark section, bordered stat cells (min-height 260), big white figures. */
.padrini-numbers{background:var(--ink-900);color:var(--white);}
.padrini-numbers .padrini-numbers-inner{max-width:calc(var(--max-w-page) + 64px);margin:0 auto;padding:120px 32px;}
.padrini-numbers-eyebrow{font-family:var(--font-text);text-transform:uppercase;letter-spacing:.22em;font-size:11px;font-weight:600;color:var(--bronze-300);margin-bottom:48px;}
.padrini-numbers-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid rgba(255,255,255,.18);}
.padrini-number{padding:48px 28px 40px;border-right:1px solid rgba(255,255,255,.18);border-bottom:1px solid rgba(255,255,255,.18);display:flex;flex-direction:column;gap:16px;min-height:260px;}
.padrini-number:nth-child(4n){border-right:none;}
.padrini-number-figure{font-family:var(--font-display);font-size:clamp(56px,7vw,96px);line-height:.95;letter-spacing:-.04em;font-weight:700;color:var(--white);}
.padrini-number-label{font-family:var(--font-display);font-size:20px;line-height:1.25;letter-spacing:-.01em;font-weight:600;color:var(--white);margin-top:0;}
.padrini-number-sub{font-family:var(--font-text);font-size:13px;line-height:1.5;color:rgba(255,255,255,.55);margin-top:auto;}
@media (max-width:760px){.padrini-numbers-grid{grid-template-columns:1fr 1fr;}.padrini-number{border-right:none;}}

/* ---- ClosingNote block (Phase 4e) ---- */
.padrini-closing{background:var(--ink-050);}
.padrini-closing .padrini-closing-inner{max-width:880px;margin:0 auto;padding:140px 32px;text-align:center;}
.padrini-closing-eyebrow{font-family:var(--font-text);text-transform:uppercase;letter-spacing:.22em;font-size:11px;font-weight:600;color:var(--bronze-600);margin-bottom:40px;}
.padrini-closing-quote{font-family:var(--font-serif);font-style:italic;font-weight:300;font-size:clamp(30px,3.6vw,52px);line-height:1.2;letter-spacing:-.012em;color:var(--ink-900);margin:0 auto;max-width:880px;text-wrap:balance;border:none;padding:0;}
.padrini-closing-quote em{color:inherit;}

/* ---- Case Study: shared (Phase 5) ---- */
.padrini-case-eyebrow{font-family:var(--font-text);text-transform:uppercase;letter-spacing:.22em;font-size:11px;font-weight:600;color:var(--bronze-600);margin-bottom:28px;}
.padrini-case-eyebrow--light{color:var(--bronze-300);}
.padrini-case-eyebrow--dash{display:flex;align-items:center;gap:12px;}
.padrini-case-eyebrow--dash::before{content:"";width:24px;height:1px;background:currentColor;}

/* CaseHero */
.padrini-case-hero .padrini-case-hero-inner{max-width:var(--max-w-page);margin:0 auto;padding:56px 32px 80px;}
.padrini-case-hero-title{font-family:var(--font-display);font-size:clamp(56px,8.2vw,132px);line-height:.94;letter-spacing:-.04em;font-weight:700;margin:0;color:var(--ink-900);max-width:1180px;text-wrap:balance;}
.padrini-case-hero-title em{font-family:var(--font-serif);font-style:italic;font-weight:300;color:var(--bronze-600);}
.padrini-case-hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:80px;margin-top:56px;align-items:flex-end;}
.padrini-case-hero-lead{font-family:var(--font-text);font-size:22px;line-height:1.5;color:var(--ink-700);margin:0;max-width:560px;}
.padrini-case-hero-lead strong{font-weight:600;color:var(--ink-900);}
.padrini-case-hero-body{font-family:var(--font-text);font-size:16px;line-height:1.65;color:var(--ink-500);margin:0;max-width:460px;}
/* Quill wraps richtext in <p>; the lead/body wrappers are <div> so zero the inner <p> margins
   (keep spacing only between stacked paragraphs) so a single paragraph sits flush like before. */
.padrini-case-hero-lead>p,.padrini-case-hero-body>p{margin:0;}
.padrini-case-hero-lead>p+p,.padrini-case-hero-body>p+p{margin-top:1em;}
@media (max-width:880px){.padrini-case-hero-grid{grid-template-columns:1fr;gap:24px;}}

/* BrandFacts */
.padrini-case-facts .padrini-case-facts-grid{max-width:var(--max-w-page);margin:0 auto;padding:0 32px 96px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:80px;row-gap:0;border-top:1px solid var(--ink-200);}
.padrini-case-fact{display:grid;grid-template-columns:120px 1fr;gap:24px;align-items:baseline;padding:22px 0;border-bottom:1px solid var(--ink-200);}
.padrini-case-fact-label{font-family:var(--font-text);text-transform:uppercase;letter-spacing:.22em;font-size:11px;font-weight:600;color:var(--ink-500);}
.padrini-case-fact-value{font-family:var(--font-display);font-size:17px;font-weight:500;letter-spacing:-.005em;line-height:1.45;color:var(--ink-900);margin:0;}
@media (max-width:760px){.padrini-case-facts .padrini-case-facts-grid{grid-template-columns:1fr;column-gap:0;}}

/* Challenge */
.padrini-case-challenge{background:var(--ink-050);border-top:1px solid var(--line-2);}
.padrini-case-challenge .padrini-case-challenge-inner{max-width:var(--max-w-page);margin:0 auto;padding:120px 32px;display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:80px;align-items:flex-start;}
.padrini-case-challenge-heading{font-family:var(--font-display);font-size:var(--heading-lg);line-height:1;letter-spacing:-.03em;font-weight:700;margin:0;color:var(--ink-900);text-wrap:balance;}
.padrini-case-challenge-heading em{font-family:var(--font-serif);font-style:italic;font-weight:300;color:var(--bronze-600);}
.padrini-case-challenge-lead{font-family:var(--font-display);font-size:24px;line-height:1.35;letter-spacing:-.015em;font-weight:500;color:var(--ink-900);margin:0;max-width:620px;}
.padrini-case-challenge-text{font-family:var(--font-text);font-size:17px;line-height:1.7;color:var(--ink-700);margin:32px 0 0;max-width:620px;}
/* lead/text wrappers are <div>; zero the inner Quill <p> margins so a single paragraph sits flush. */
.padrini-case-challenge-lead>p,.padrini-case-challenge-text>p{margin:0;}
.padrini-case-challenge-lead>p+p,.padrini-case-challenge-text>p+p{margin-top:1em;}
@media (max-width:880px){.padrini-case-challenge .padrini-case-challenge-inner{grid-template-columns:1fr;gap:24px;}}

/* Approach */
.padrini-case-approach .padrini-case-approach-inner{max-width:var(--max-w-page);margin:0 auto;padding:72px 32px;}
.padrini-case-approach-heading{font-family:var(--font-display);font-size:clamp(28px,3.5vw,48px);line-height:1.05;margin:0;color:var(--ink-900);font-weight:700;}
.padrini-case-approach-heading em{font-family:var(--font-serif);font-style:italic;font-weight:300;color:var(--bronze-600);}
.padrini-case-approach-intro{color:var(--ink-500);margin:12px 0 0;max-width:56ch;}
.padrini-case-approach-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin-top:40px;border-top:1px solid var(--ink-300);}
.padrini-case-step{padding:36px 28px 0 0;border-right:1px solid var(--ink-200);}
.padrini-case-step:not(:first-child){padding-left:28px;}
.padrini-case-step:last-child{border-right:none;}
.padrini-case-step-num{font-family:var(--font-display);font-size:13px;font-weight:600;letter-spacing:.16em;color:var(--bronze-600);margin-bottom:18px;}
.padrini-case-step-title{font-family:var(--font-display);font-size:22px;line-height:1.18;letter-spacing:-.015em;font-weight:600;color:var(--ink-900);margin:0 0 10px;}
.padrini-case-step-desc{font-family:var(--font-text);color:var(--ink-500);font-size:15px;line-height:1.6;margin:0;}
@media (max-width:760px){.padrini-case-approach-steps{grid-template-columns:1fr;}.padrini-case-step,.padrini-case-step:not(:first-child){padding:24px 0;border-right:none;border-bottom:1px solid var(--ink-200);}.padrini-case-step:last-child{border-bottom:none;}}

/* Outcome (dark) */
.padrini-case-outcome{background:var(--ink-900);}
.padrini-case-outcome .padrini-case-outcome-inner{max-width:var(--max-w-page);margin:0 auto;padding:140px 32px;}
.padrini-case-outcome-heading{font-family:var(--font-display);font-size:clamp(40px,5vw,76px);line-height:1.04;letter-spacing:-.03em;font-weight:700;margin:0;color:var(--white);max-width:1100px;text-wrap:balance;}
.padrini-case-outcome-heading em{font-family:var(--font-serif);font-style:italic;font-weight:300;color:var(--bronze-300);}
.padrini-case-outcome-stats{margin-top:80px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px;border-top:1px solid rgba(255,255,255,.2);padding-top:40px;}
.padrini-case-stat-metric{font-family:var(--font-display);font-size:clamp(48px,5vw,72px);font-weight:600;letter-spacing:-.03em;line-height:1;color:var(--white);}
.padrini-case-stat-label{font-family:var(--font-text);color:rgba(255,255,255,.65);font-size:14px;line-height:1.55;margin-top:14px;max-width:280px;}
@media (max-width:760px){.padrini-case-outcome-stats{grid-template-columns:1fr;}}

/* BackToPortfolio */
.padrini-case-back .padrini-case-back-inner{max-width:var(--max-w-page);margin:0 auto;padding:48px 32px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid var(--line-1);}
.padrini-case-back-link{font-family:var(--font-text);font-size:15px;font-weight:600;color:var(--ink-900);text-decoration:none;}
.padrini-case-back-link:hover{color:var(--bronze-600);}
.padrini-case-back-meta{color:var(--ink-500);font-size:13px;}
@media (max-width:600px){.padrini-case-back .padrini-case-back-inner{flex-direction:column;align-items:flex-start;}}

/* ---- Case Study: Range gallery (Phase 5) ---- */
.padrini-case-range{background:var(--paper);border-top:1px solid var(--line-2);}
.padrini-case-range .padrini-case-range-inner{max-width:var(--max-w-page);margin:0 auto;padding:120px 32px;}
.padrini-case-range-head{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:80px;align-items:flex-end;}
.padrini-case-range-heading{font-family:var(--font-display);font-size:clamp(48px,6vw,96px);line-height:.98;letter-spacing:-.035em;font-weight:700;margin:0;color:var(--ink-900);text-wrap:balance;}
.padrini-case-range-heading em{font-family:var(--font-serif);font-style:italic;font-weight:300;color:var(--bronze-600);}
.padrini-case-range-intro{font-family:var(--font-text);font-size:17px;line-height:1.65;color:var(--ink-500);margin:0;max-width:440px;}
@media (max-width:880px){.padrini-case-range-head{grid-template-columns:1fr;gap:24px;align-items:start;}}
/* ---- Range: category jump-link pills (Task 6) ---- */
.padrini-range-jumps{display:flex;flex-wrap:wrap;gap:8px;margin-top:40px;}
.padrini-range-jump{font-family:var(--font-text);font-size:12px;font-weight:500;color:var(--ink-700);text-decoration:none;padding:8px 14px;border:1px solid var(--ink-200);border-radius:999px;letter-spacing:.01em;display:inline-flex;align-items:center;gap:6px;transition:border-color .15s,color .15s;}
.padrini-range-jump:hover{border-color:var(--ink-400);color:var(--ink-900);}
.padrini-range-jump-count{color:var(--ink-400);}
.padrini-case-cat{margin-top:64px;}
.padrini-case-cat-head{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;flex-wrap:wrap;padding-bottom:22px;margin-bottom:40px;border-bottom:1px solid var(--ink-200);}
.padrini-case-cat-eyebrow{font-family:var(--font-text);text-transform:uppercase;letter-spacing:.22em;font-size:11px;font-weight:600;color:var(--bronze-600);margin-bottom:14px;}
.padrini-case-cat-name{font-family:var(--font-display);font-size:clamp(32px,3.4vw,48px);line-height:1.05;letter-spacing:-.025em;font-weight:700;color:var(--ink-900);margin:0;}
.padrini-case-cat-meta{text-align:right;}
.padrini-case-cat-count{font-family:var(--font-display);line-height:1;color:var(--ink-900);white-space:nowrap;}
.padrini-case-cat-count-num{font-family:var(--font-display);font-size:36px;font-weight:600;letter-spacing:-.02em;}
.padrini-case-cat-count-unit{font-family:var(--font-text);font-size:13px;font-weight:500;color:var(--ink-500);margin-left:8px;letter-spacing:.02em;}
.padrini-case-cat-note{font-family:var(--font-text);font-size:13px;color:var(--ink-500);margin:6px 0 0;max-width:320px;}
.padrini-case-cat{scroll-margin-top:90px;}
.padrini-case-products{display:grid;grid-template-columns:repeat(var(--cols,4),minmax(0,1fr));column-gap:24px;row-gap:48px;}
.padrini-case-product-thumb{position:relative;background:var(--ink-050);border:1px solid var(--ink-200);overflow:hidden;aspect-ratio:4/5;display:flex;align-items:center;justify-content:center;}
.padrini-case-product-thumb::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 0%,rgba(255,255,255,.55),transparent 65%);pointer-events:none;}
.padrini-case-product-thumb img{position:relative;width:88%;height:88%;object-fit:contain;}
.padrini-case-product-name{font-family:var(--font-display);font-size:15px;font-weight:600;letter-spacing:-.005em;line-height:1.3;color:var(--ink-900);margin-top:14px;}
.padrini-case-product-spec{font-family:var(--font-text);color:var(--ink-500);font-size:12px;margin-top:4px;}
/* Range per-category slider (opt-in): the product row becomes a horizontal scroll track showing
   --cols cards per view, with prev/next arrows (shown by JS only when it overflows) + swipe/scroll. */
.padrini-case-cat-nav{display:none;justify-content:flex-end;gap:8px;margin-bottom:20px;}
.padrini-case-cat-navbtn{width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--ink-300);background:transparent;color:var(--ink-900);font-size:16px;cursor:pointer;transition:border-color .2s var(--ease-out),background .2s var(--ease-out);}
.padrini-case-cat-navbtn:hover{border-color:var(--ink-900);background:var(--ink-050);}
.padrini-case-products--slider{display:flex;column-gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none;}
.padrini-case-products--slider::-webkit-scrollbar{display:none;}
.padrini-case-products--slider .padrini-case-product{flex:0 0 calc((100% - (var(--cols,4) - 1) * 24px) / var(--cols,4));scroll-snap-align:start;}
/* Mobile: ignore the per-category --cols (would shrink tubes/bottles to slivers); use 2-up,
   reduce the oversized heading mins, and stack each category header left-aligned. */
@media (max-width:880px){
    .padrini-case-products{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:16px;row-gap:32px;}
    /* Slider on mobile: 2 cards per view regardless of --cols, so tubes stay legible while scrolling. */
    .padrini-case-products--slider .padrini-case-product{flex:0 0 calc((100% - 16px) / 2);}
}
@media (max-width:600px){
    .padrini-case-hero-title{font-size:clamp(38px,11vw,56px);}
    .padrini-case-range-heading{font-size:clamp(34px,10vw,52px);}
    .padrini-case-outcome-heading{font-size:clamp(30px,8vw,46px);}
    .padrini-case-challenge-heading{font-size:clamp(28px,8vw,40px);}
    .padrini-case-cat-name{font-size:clamp(26px,7vw,36px);}
    .padrini-case-cat-head{flex-direction:column;align-items:flex-start;gap:12px;padding-bottom:18px;margin-bottom:28px;}
    .padrini-case-cat-meta{text-align:left;}
    .padrini-case-hero-grid{gap:20px;}
}

/* --- Spec 2: mobile polish — stack remaining grids + tighten section spacing --- */
@media (max-width:760px){
    /* Stack grids that lacked a mobile rule (deck: capability/table fields pack badly on mobile) */
    .padrini-numbers-grid{grid-template-columns:1fr 1fr;gap:20px;}
    .padrini-case-facts .padrini-case-facts-grid{grid-template-columns:1fr;gap:18px;}
    .padrini-case-outcome-stats{grid-template-columns:1fr;gap:20px;}
    .padrini-case-approach-steps{grid-template-columns:1fr;gap:20px;}
    .padrini-story .padrini-story-inner{grid-template-columns:1fr;gap:32px;}
    /* Tighten section spacing on phones (deck: optimizovati razmake između sekcija) */
    .padrini-block .padrini-inner,
    .padrini-crosslink .padrini-cl-inner,
    .padrini-cta .padrini-cta-inner,
    .padrini-portfolio .padrini-portfolio-inner,
    .padrini-pslider .padrini-pslider-inner,
    .padrini-wteaser .padrini-wteaser-inner,
    .padrini-story .padrini-story-inner,
    .padrini-closing .padrini-closing-inner,
    .padrini-case-challenge .padrini-case-challenge-inner,
    .padrini-case-approach .padrini-case-approach-inner,
    .padrini-contact .padrini-contact-inner,
    .padrini-faq .padrini-faq-inner,
    .padrini-inquiry .padrini-inquiry-inner,
    .padrini-pli-inner,
    .padrini-numbers .padrini-numbers-inner,
    .padrini-case-outcome .padrini-case-outcome-inner,
    .padrini-case-range .padrini-case-range-inner{padding-left:32px;padding-right:32px;padding-top:72px;padding-bottom:72px;}
    /* Contact pillars follow the hero directly — tighten their oversized 64/96 block. */
    .page-contact .padrini-pillars-inner{padding-top:40px;padding-bottom:56px;}
    /* Our Capabilities banner: the overlaid heading clips on a narrow screen — stack it
       (image, then heading + intro below) instead of overlaying the wide editorial photo. */
    .padrini-cap-banner{aspect-ratio:auto;overflow:visible;background:transparent;padding-top:24px;}
    .padrini-cap-banner-img{position:static;width:100%;height:auto;}
    .padrini-cap-banner-overlay{position:static;display:block;padding:24px clamp(24px,4vw,64px) 28px;}
    .padrini-cap-banner-heading{font-size:clamp(34px,9vw,52px);}
    .padrini-cap-banner-intro{margin-top:12px;max-width:none;}
}
@media (max-width:480px){
    .padrini-numbers-grid{grid-template-columns:1fr;}
}

/* Legal pages (Privacy / Terms / Imprint) are CMS pages now — they render through the shared
   .padrini-text / .padrini-prose block styling, so no dedicated .padrini-legal rules are needed. */
