/* ============================================================
   CATEGORY PAGES — "Editorial" layout
   Same tokens as the homepage (see style.css), different
   structure: stacked masthead, ledger rows, capability strip,
   dark enquiry band.
   ============================================================ */
.cat-mast{ background:var(--emerald); }
.cat-mast-top{ position:relative; padding:6rem 4rem 4.5rem; display:grid; grid-template-columns:1fr 1fr; column-gap:4rem; row-gap:2.5rem; max-width:1500px; margin:0 auto; }
.cat-mast-meta{ grid-column:1 / -1; display:flex; justify-content:space-between; align-items:flex-end; border-bottom:1px solid rgba(198,161,91,0.3); padding-bottom:1.25rem; }
.cat-mast-meta .eyebrow{ font-family:var(--sans); font-size:calc(0.58rem * var(--madar-fs-small, 1)); letter-spacing:0.3em; color:var(--gold); text-transform:uppercase; }
.cat-num{ font-family:var(--serif); font-style:italic; font-size:calc(1.5rem * var(--madar-fs, 1)); color:var(--gold); line-height:1; }
.cat-mast h1{ grid-column:1 / -1; font-family:var(--serif); font-weight:500; font-size:7rem; line-height:0.95; letter-spacing:-0.02em; color:var(--ivory); }
.cat-mast h1 em{ color:var(--gold); font-style:italic; }
.cat-mast-top p{ grid-column:2; font-family:var(--sans); font-size:calc(0.95rem * var(--madar-fs, 1)); line-height:1.9; color:rgba(245,240,230,0.7); max-width:32rem; }
.cat-mast-img{ position:relative; height:46vh; min-height:300px; overflow:hidden; background:var(--dark-emerald); }
.cat-mast-img .caption{ position:absolute; z-index:2; bottom:2rem; left:4rem; font-family:var(--sans); font-size:calc(0.58rem * var(--madar-fs-small, 1)); letter-spacing:0.22em; text-transform:uppercase; color:rgba(255,255,255,0.75); background:rgba(0,0,0,0.3); padding:0.5rem 1rem; }

.cat-offer{ padding:8rem 4rem; }
.cat-offer.ivory{ background:var(--ivory); }
.cat-offer.sand{ background:var(--sand); }
.cat-offer-in{ max-width:1400px; margin:0 auto; display:grid; grid-template-columns:5fr 7fr; gap:7rem; align-items:start; }
.cat-offer-side{ position:sticky; top:7rem; }
.cat-offer-side h2{ font-family:var(--serif); font-weight:400; font-size:calc(3rem * var(--madar-fs-head, 1)); line-height:1.08; color:var(--emerald); margin-bottom:1.75rem; }
.cat-offer-side p{ font-family:var(--sans); font-size:calc(0.9rem * var(--madar-fs, 1)); line-height:1.9; color:var(--charcoal); opacity:0.7; }
.cat-rows{ list-style:none; margin:0; padding:0; border-top:1px solid var(--charcoal); }
.cat-rows li{ display:grid; grid-template-columns:4.5rem minmax(0,1fr); padding:2rem 0; border-bottom:1px solid rgba(27,27,27,0.25); }
.cat-rows .n{ font-family:var(--serif); font-style:italic; font-size:calc(1rem * var(--madar-fs, 1)); color:var(--brown); padding-top:0.3rem; }
.cat-rows .t{ font-family:var(--serif); font-size:calc(1.6rem * var(--madar-fs, 1)); color:var(--emerald); line-height:1.2; margin-bottom:0.5rem; }
.cat-rows p{ font-family:var(--sans); font-size:calc(0.85rem * var(--madar-fs, 1)); line-height:1.85; color:var(--charcoal); opacity:0.65; max-width:34rem; }

.cat-facts{ background:var(--dark-emerald); padding:7rem 4rem; }
.cat-facts-head{ max-width:1400px; margin:0 auto 4rem; }
.cat-facts-head h2{ font-family:var(--serif); font-weight:400; font-size:calc(2.75rem * var(--madar-fs-head, 1)); line-height:1.1; color:var(--ivory); }
.cat-facts-grid{ max-width:1400px; margin:0 auto; display:grid; gap:0; border-top:1px solid rgba(198,161,91,0.35); }
.cat-fact{ padding:2.5rem 2rem 0 0; }
.cat-fact + .cat-fact{ padding-left:2rem; border-left:1px solid rgba(198,161,91,0.2); }
.cat-fact .w{ font-family:var(--serif); font-style:italic; font-size:calc(2.4rem * var(--madar-fs-head, 1)); color:var(--gold); line-height:1.1; margin-bottom:1rem; }
.cat-fact p{ font-family:var(--sans); font-size:calc(0.82rem * var(--madar-fs, 1)); line-height:1.85; color:rgba(245,240,230,0.6); }

.cat-more{ background:var(--ivory); padding:5rem 4rem 6rem; }
.cat-more-head{ max-width:1400px; margin:0 auto 2rem; font-family:var(--sans); font-size:calc(0.58rem * var(--madar-fs-small, 1)); letter-spacing:0.3em; text-transform:uppercase; color:var(--gold); }
.cat-more-grid{ max-width:1400px; margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.cat-more-item{ display:flex; align-items:baseline; gap:1.25rem; padding:1.75rem 0; border-top:2px solid var(--sand); text-decoration:none; color:var(--emerald); transition:border-color .2s; }
.cat-more-item:hover{ border-top-color:var(--gold); }
.cat-more-item .n{ font-family:var(--serif); font-style:italic; color:var(--brown); }
.cat-more-item .t{ font-family:var(--serif); font-size:calc(1.5rem * var(--madar-fs, 1)); flex:1; }
.cat-more-item .arr{ color:var(--gold); }

.cat-cta{ background:var(--charcoal); padding:6rem 4rem; display:grid; grid-template-columns:1.4fr 1fr; gap:4rem; align-items:center; }
.cat-cta h2{ font-family:var(--serif); font-weight:400; font-size:calc(3.5rem * var(--madar-fs-head, 1)); line-height:1.05; color:var(--ivory); }
.cat-cta h2 em{ color:var(--gold); }
.cat-cta-side .cat-btn{ display:inline-block; font-family:var(--sans); font-size:calc(0.65rem * var(--madar-fs-small, 1)); letter-spacing:0.22em; text-transform:uppercase; color:var(--charcoal); background:var(--gold); padding:1rem 2.25rem; text-decoration:none; margin-bottom:2rem; }
.cat-cta-side .co{ font-family:var(--sans); font-size:calc(1rem * var(--madar-fs, 1)); color:var(--ivory); margin-bottom:0.35rem; }
.cat-cta-side .sc{ font-family:var(--sans); font-size:calc(0.8rem * var(--madar-fs, 1)); color:rgba(245,240,230,0.5); line-height:1.7; }

@media (max-width:1100px){
  .cat-mast-top{ padding:4rem 1.75rem 3rem; grid-template-columns:minmax(0,1fr); }
  .cat-mast h1{ font-size:calc(3.5rem * var(--madar-fs-head, 1)); }
  .cat-mast-top p{ grid-column:1; }
  .cat-mast-img .caption{ left:1.75rem; }
  .cat-offer, .cat-facts, .cat-more, .cat-cta{ padding:4rem 1.75rem; }
  .cat-offer-in{ grid-template-columns:minmax(0,1fr); gap:3rem; }
  .cat-offer-side{ position:static; }
  .cat-offer-side h2, .cat-facts-head h2{ font-size:calc(2.1rem * var(--madar-fs-head, 1)); }
  .cat-facts-grid{ grid-template-columns:1fr 1fr !important; row-gap:2rem; }
  .cat-fact:nth-child(odd){ padding-left:0; border-left:0; }
  .cat-more-grid{ grid-template-columns:minmax(0,1fr); gap:0; }
  .cat-cta{ grid-template-columns:minmax(0,1fr); gap:2.5rem; }
  .cat-cta h2{ font-size:calc(2.4rem * var(--madar-fs-head, 1)); }
}
@media (max-width:640px){ .cat-facts-grid{ grid-template-columns:1fr !important; } .cat-fact + .cat-fact{ padding-left:0; border-left:0; } }

/* ---------- Home page: links from sections to category pages ---------- */
.media-link{ position:absolute; inset:0; z-index:1; display:block; }
.sector-media .media-img, .quad-media .media-img{ transition:transform .6s ease; }
.sector-media:hover .media-img, .quad-media:hover .media-img{ transform:scale(1.04); }
.more-link{ display:inline-block; margin-top:2rem; font-family:var(--sans); font-size:calc(0.62rem * var(--madar-fs-small, 1)); letter-spacing:0.22em; text-transform:uppercase; text-decoration:none; color:var(--gold); border-bottom:1px solid rgba(198,161,91,0.5); padding-bottom:0.35rem; }
.more-link:hover{ border-bottom-color:var(--gold); }
.sector-text.ivory-bg .more-link, .sector-text.sand-bg .more-link{ color:var(--brown); border-bottom-color:rgba(140,111,74,0.5); }

/* 404 page */
.madar-404{ background:var(--ivory); padding:8rem 4rem; }
.madar-404-in{ max-width:820px; margin:0 auto; }
.madar-404 .eyebrow{ font-family:var(--serif); font-style:italic; font-size:calc(1.6rem * var(--madar-fs-head, 1)); color:var(--gold); }
.madar-404 h1{ font-family:var(--serif); font-weight:400; font-size:calc(3.5rem * var(--madar-fs-head, 1)); line-height:1.05; color:var(--emerald); margin:0.5rem 0 1.5rem; }
.madar-404 p{ font-family:var(--sans); font-size:calc(0.95rem * var(--madar-fs, 1)); line-height:1.9; color:var(--charcoal); opacity:0.75; margin-bottom:2rem; }
.madar-404 ul{ list-style:none; margin:0; padding:0; border-top:1px solid rgba(27,27,27,0.2); }
.madar-404 li{ border-bottom:1px solid rgba(27,27,27,0.2); }
.madar-404 li a{ display:block; padding:1rem 0; font-family:var(--sans); font-size:calc(0.95rem * var(--madar-fs, 1)); color:var(--emerald); text-decoration:none; }
.madar-404 li a:hover{ color:var(--brown); }
@media (max-width:640px){ .madar-404{ padding:5rem 1.25rem; } .madar-404 h1{ font-size:calc(2.4rem * var(--madar-fs-head, 1)); } }

/* Category opener photo: height, focus and zoom are set per page in the editor */
.cat-mast-img .media-img{ object-position:var(--focus, 50% 50%); transform:scale(var(--zoom, 1)); transform-origin:var(--focus, 50% 50%); }
.cat-mast-img.h-tall{ height:72vh; min-height:420px; max-height:860px; }
.cat-mast-img.h-standard{ height:36vh; min-height:300px; }
.cat-mast-img.h-xl{ height:92vh; min-height:520px; }
.cat-mast-img.h-whole{ height:auto; min-height:0; }
.cat-mast-img.h-whole .media-img{ position:static; width:100%; height:auto; transform:none; }
@media (max-width:1100px){
  .cat-mast-img.h-tall{ height:52vh; min-height:300px; }
  .cat-mast-img.h-xl{ height:70vh; min-height:360px; }
}
@media (max-width:640px){
  .cat-mast-img.h-tall, .cat-mast-img.h-standard{ height:auto; min-height:0; aspect-ratio:4 / 3; }
  .cat-mast-img.h-xl{ height:auto; min-height:0; aspect-ratio:3 / 4; }
}
