/* Casbah of Algiers — site design system
   Loaded by mu-plugin casbah-design.php. Edit here, not in Divi. */

:root{
  --cb-ground:#E8EBE7;
  --cb-ground-2:#F3F5F1;
  --cb-ink:#15202A;
  --cb-ink-soft:#4C5A62;
  --cb-line:#C9CFC9;
  --cb-brass:#9E7130;
  --cb-brass-lit:#B98F42;
  --cb-cobalt:#1B4C79;
  --cb-deep:#0A1116;
  --cb-deep-2:#101A21;
  --cb-deep-ink:#DBE2DF;
  --cb-deep-soft:#8B9AA1;
  --cb-display:"Prata",Georgia,"Times New Roman",serif;
  --cb-body:"Archivo","Helvetica Neue",Arial,sans-serif;
  --cb-arabic:"Amiri","Times New Roman",serif;
  --cb-t-hero:clamp(2.9rem,8.5vw,6.6rem);
  --cb-t-h2:clamp(1.9rem,4.6vw,3.4rem);
  --cb-t-h3:clamp(1.15rem,2vw,1.45rem);
  --cb-t-body:clamp(1rem,.4vw + .92rem,1.1rem);
  --cb-gut:clamp(1rem,4vw,4.5rem);
  --cb-max:1260px;
}

/* ---------- page shell ---------- */
body.cb-home{background:var(--cb-ground);color:var(--cb-ink);font-family:var(--cb-body);font-size:var(--cb-t-body);line-height:1.65;-webkit-font-smoothing:antialiased}
body.cb-home #page-container{overflow-x:hidden}
body.cb-home h1,body.cb-home h2,body.cb-home h3,body.cb-home h4{font-family:var(--cb-display);font-weight:400;line-height:1.06;text-wrap:balance}
body.cb-home p{margin:0 0 1em}
body.cb-home p:last-child{margin-bottom:0}
body.cb-home .et_pb_section{padding:0}
body.cb-home .et_pb_row{width:100%;max-width:var(--cb-max);margin-inline:auto;padding-inline:var(--cb-gut);padding-block:0}
body.cb-home .et_pb_module{margin-bottom:0}

/* ---------- header ---------- */
#main-header,#main-header.et-fixed-header{
  background:rgba(232,235,231,.88)!important;backdrop-filter:blur(10px);
  box-shadow:none!important;border-bottom:1px solid var(--cb-line);
}
#top-menu li a{
  font-family:var(--cb-body);font-size:.79rem!important;letter-spacing:.13em;text-transform:uppercase;
  font-weight:500;color:var(--cb-ink-soft)!important;padding-bottom:.4rem;border-bottom:1px solid transparent;
}
#top-menu li a:hover{color:var(--cb-ink)!important;opacity:1;border-bottom-color:var(--cb-brass)}
#top-menu li.current-menu-item>a{color:var(--cb-ink)!important}
#main-header .sub-menu{background:var(--cb-ground-2)!important;border-top:2px solid var(--cb-brass)!important}
.mobile_menu_bar:before{color:var(--cb-brass)!important}

/* ---------- shared pieces ---------- */
.cb-eyebrow .et_pb_text_inner,.cb-eyebrow p{
  font-size:.72rem!important;letter-spacing:.22em;text-transform:uppercase;
  font-weight:600;color:var(--cb-brass);display:flex;align-items:center;gap:.7rem;margin:0;
}
.cb-eyebrow .et_pb_text_inner::after,.cb-eyebrow p::after{content:"";flex:1;height:1px;background:var(--cb-line);max-width:9rem}
.cb-lede .et_pb_text_inner{max-width:62ch;color:var(--cb-ink-soft);font-size:clamp(1.02rem,1.2vw,1.16rem)}
.cb-h2 h2{font-size:var(--cb-t-h2);margin:.9rem 0 0}
.cb-head{display:grid;gap:0}
.cb-sec{padding-block:clamp(3.5rem,9vw,7.5rem)!important}
.cb-sec-tight{padding-block:clamp(2.6rem,6vw,4.5rem)!important}
.cb-gap-sm{margin-top:1.2rem!important}
.cb-gap-md{margin-top:2rem!important}

/* reveal: visible by default, hidden only when the script is present */
.cb-js .cb-rv{opacity:0;transform:translateY(22px)}
.cb-js .cb-rv.cb-in{opacity:1;transform:none;transition:opacity .9s cubic-bezier(.2,.6,.2,1),transform .9s cubic-bezier(.2,.6,.2,1)}

/* ---------- hero ---------- */
.cb-hero{position:relative;isolation:isolate;background-color:var(--cb-deep)!important;overflow:hidden}
.cb-hero::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(10,17,22,.82) 0%,rgba(10,17,22,.45) 38%,rgba(10,17,22,.88) 100%)}
.cb-hero>.et_pb_row,.cb-hero .et_pb_row{position:relative;z-index:1}
.cb-hero-row{padding-block:clamp(4rem,13vw,9rem) clamp(3rem,7vw,5rem)!important}
.cb-ar .et_pb_text_inner{font-family:var(--cb-arabic);font-size:clamp(1.5rem,3.4vw,2.4rem);color:var(--cb-brass-lit);line-height:1.2}
.cb-h1 h1{font-size:var(--cb-t-hero);color:#fff;letter-spacing:-.015em;max-width:14ch;margin:.4rem 0 0;
  animation:cb-rise 1.1s cubic-bezier(.16,.84,.3,1) both}
@keyframes cb-rise{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
.cb-stand .et_pb_text_inner{max-width:46ch;font-size:clamp(1.02rem,1.4vw,1.22rem);color:#D5DCDA;margin-top:1.6rem}
.cb-hero-foot{display:flex;flex-wrap:wrap;gap:1.2rem 2.4rem;align-items:center;margin-top:clamp(2.2rem,5vw,3.6rem)!important}
.cb-cta .et_pb_button{
  border:1px solid var(--cb-brass-lit)!important;background:transparent!important;color:#fff!important;
  padding:.85rem 1.5rem!important;font-family:var(--cb-body)!important;font-size:.78rem!important;
  letter-spacing:.17em!important;text-transform:uppercase;font-weight:600!important;border-radius:0!important;
  transition:background .35s ease,color .35s ease;
}
.cb-cta .et_pb_button:hover{background:var(--cb-brass-lit)!important;color:#0A1116!important}
.cb-cta .et_pb_button:after,.cb-cta .et_pb_button:before{display:none!important}
.cb-seal .et_pb_text_inner{color:#C3CCCA;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;line-height:1.5;
  padding-left:2.9rem;position:relative;min-height:34px;display:flex;align-items:center}
.cb-seal .et_pb_text_inner::before{
  content:"";position:absolute;left:0;top:50%;width:34px;height:34px;margin-top:-17px;
  background:no-repeat center/contain url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cg fill='none' stroke='%23B98F42' stroke-width='1.2'%3E%3Crect x='8' y='8' width='24' height='24'/%3E%3Crect x='8' y='8' width='24' height='24' transform='rotate(45 20 20)'/%3E%3C/g%3E%3C/svg%3E");
  animation:cb-spin 70s linear infinite;
}
@keyframes cb-spin{to{transform:rotate(360deg)}}

/* ---------- climbing city ---------- */
.cb-climb-row{margin-top:clamp(2.4rem,5vw,4rem)!important;align-items:flex-start;column-gap:clamp(1rem,2.4vw,2rem)}
.cb-climb-col .et_pb_module{margin-bottom:0}
.cb-climb-col:nth-child(2){margin-top:clamp(1.5rem,4vw,3.5rem)}
.cb-climb-col:nth-child(3){margin-top:clamp(3rem,8vw,7rem)}
.cb-shot{overflow:hidden;background:var(--cb-ground-2)}
.cb-shot img{width:100%;aspect-ratio:4/5;object-fit:cover;display:block;transition:transform 1.1s cubic-bezier(.2,.6,.2,1)}
.cb-climb-col:hover .cb-shot img{transform:scale(1.05)}
.cb-climb-h h3{font-size:var(--cb-t-h3);margin:.9rem 0 .35rem}
.cb-climb-t .et_pb_text_inner{font-size:.92rem;color:var(--cb-ink-soft)}
@media(max-width:980px){
  .cb-climb-col:nth-child(2),.cb-climb-col:nth-child(3){margin-top:2rem}
  .cb-shot img{aspect-ratio:3/2}
}

/* ---------- figures band ---------- */
.cb-figs{position:relative;isolation:isolate;background-color:var(--cb-deep)!important;overflow:hidden}
.cb-figs::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:linear-gradient(90deg,rgba(10,17,22,.94),rgba(10,17,22,.55))}
.cb-figs .et_pb_row{position:relative;z-index:1}
.cb-figs .cb-eyebrow .et_pb_text_inner{color:var(--cb-brass-lit)}
.cb-figs .cb-eyebrow .et_pb_text_inner::after{background:#2A3740}
.cb-figs-row{margin-top:2.4rem!important;column-gap:clamp(1.6rem,3.4vw,3rem);row-gap:2.4rem}
.cb-fig .et_pb_text_inner{color:#A9B6B9}
.cb-fig .cb-n{display:block;font-family:var(--cb-display);font-size:clamp(2.4rem,5.4vw,4rem);line-height:1;
  color:var(--cb-brass-lit);font-variant-numeric:tabular-nums}
.cb-fig .cb-k{display:block;margin-top:.6rem;font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;
  color:#fff;font-weight:600}
.cb-fig .cb-s{display:block;margin-top:.4rem;font-size:.93rem;max-width:28ch}

/* ---------- timeline ---------- */
.cb-tl-row{column-gap:clamp(2rem,5vw,4.5rem);align-items:flex-start}
.cb-tl-img img{width:100%;aspect-ratio:3/4;object-fit:cover;display:block}
.cb-tl-list .et_pb_text_inner{margin-top:2rem}
.cb-tl-list ol{list-style:none;margin:0;padding:0;border-top:1px solid var(--cb-line)}
.cb-tl-list li{display:grid;grid-template-columns:7.5rem 1fr;gap:1.4rem;padding-block:1.15rem;
  border-bottom:1px solid var(--cb-line);align-items:baseline;color:var(--cb-ink-soft)}
.cb-tl-list li>span:first-child{font-family:var(--cb-display);font-size:1.12rem;color:var(--cb-brass);
  font-variant-numeric:tabular-nums;white-space:nowrap}
.cb-tl-list b{color:var(--cb-ink);font-weight:500}
@media(max-width:980px){
  .cb-tl-img img{aspect-ratio:16/10}
  .cb-tl-list li{grid-template-columns:1fr;gap:.25rem}
}

/* ---------- doors ---------- */
.cb-doors-row{margin-top:clamp(2.4rem,5vw,3.6rem)!important;column-gap:1px;row-gap:1px;background:var(--cb-line);
  border:1px solid var(--cb-line);max-width:var(--cb-max);padding-inline:0!important}
.cb-doors-row+.cb-doors-row{margin-top:1px!important;border-top:0}
.cb-door-col{background:var(--cb-ground);padding:clamp(1.3rem,2.4vw,1.9rem)!important;transition:background .4s ease}
.cb-door-col:hover{background:var(--cb-ground-2)}
.cb-door-col .cb-shot img{aspect-ratio:16/10}
.cb-door-col:hover .cb-shot img{transform:scale(1.06)}
.cb-door-h h3{font-size:1.28rem;margin:.9rem 0 .4rem}
.cb-door-t .et_pb_text_inner{color:var(--cb-ink-soft);font-size:.95rem}
.cb-door-t a{display:inline-block;margin-top:.8rem;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--cb-brass)!important;font-weight:600;text-decoration:none}
.cb-door-t a:hover{color:var(--cb-ink)!important}
@media(max-width:980px){.cb-doors-row{padding-inline:0!important}}

/* ---------- water ---------- */
.cb-water{background:var(--cb-ground-2)!important;border-top:1px solid var(--cb-line);border-bottom:1px solid var(--cb-line)}
.cb-water-row{column-gap:clamp(2rem,5vw,4.5rem);align-items:center}
.cb-water-img img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.cb-counts .et_pb_text_inner{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:2.2rem;
  border-top:1px solid var(--cb-line);border-bottom:1px solid var(--cb-line);padding-block:1.4rem}
.cb-counts span.cb-c{display:block;font-family:var(--cb-display);font-size:clamp(1.7rem,3.4vw,2.5rem);line-height:1;
  color:var(--cb-cobalt);font-variant-numeric:tabular-nums}
.cb-counts span.cb-y{display:block;margin-top:.3rem;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--cb-ink-soft);font-weight:600}
.cb-pull .et_pb_text_inner{font-family:var(--cb-display);font-size:clamp(1.15rem,2vw,1.5rem);line-height:1.4;
  margin-top:2rem;padding-left:1.3rem;border-left:2px solid var(--cb-brass)}
.cb-pull cite{display:block;font-family:var(--cb-body);font-style:normal;font-size:.8rem;letter-spacing:.13em;
  text-transform:uppercase;color:var(--cb-ink-soft);margin-top:.9rem;font-weight:600}

/* ---------- archive ---------- */
.cb-archive{background:var(--cb-deep)!important;color:var(--cb-deep-ink);position:relative;overflow:hidden}
.cb-archive h2,.cb-archive h3{color:#fff}
.cb-archive .cb-lede .et_pb_text_inner{color:var(--cb-deep-soft)}
.cb-archive .cb-eyebrow .et_pb_text_inner{color:var(--cb-brass-lit)}
.cb-archive .cb-eyebrow .et_pb_text_inner::after{background:#2A3740}
.cb-archive::before{content:"";position:absolute;width:340px;height:340px;top:-90px;right:-70px;opacity:.07;
  background:no-repeat center/contain url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cg fill='none' stroke='%23B98F42' stroke-width='1'%3E%3Crect x='20' y='20' width='60' height='60'/%3E%3Crect x='20' y='20' width='60' height='60' transform='rotate(45 50 50)'/%3E%3C/g%3E%3C/svg%3E");
  animation:cb-spin 120s linear infinite;pointer-events:none}
.cb-archive .et_pb_row{position:relative;z-index:1}
.cb-mosaic .et_pb_text_inner{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(.6rem,1.4vw,1.1rem);
  margin-top:clamp(2.4rem,5vw,3.6rem)}
.cb-tile{position:relative;overflow:hidden;background:var(--cb-deep-2);display:block;text-decoration:none;color:inherit}
.cb-tile img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3;display:block;
  filter:grayscale(.25) contrast(1.04);transition:transform 1.2s cubic-bezier(.2,.6,.2,1),filter .6s ease}
.cb-tile:hover img{transform:scale(1.06);filter:grayscale(0) contrast(1)}
.cb-tile .cb-cap{position:absolute;left:0;right:0;bottom:0;padding:.9rem;font-size:.78rem;line-height:1.4;
  background:linear-gradient(transparent,rgba(10,17,22,.92));color:#E6ECEA}
.cb-tile .cb-cap em{display:block;font-style:normal;color:var(--cb-brass-lit);font-size:.68rem;letter-spacing:.14em;
  text-transform:uppercase;font-weight:600;margin-bottom:.2rem}
.cb-tile.cb-w2{grid-column:span 2}
.cb-tile.cb-h2 img{aspect-ratio:4/6}
@media(max-width:860px){.cb-mosaic .et_pb_text_inner{grid-template-columns:repeat(2,1fr)}.cb-tile.cb-w2{grid-column:span 2}}

/* ---------- page footer block ---------- */
.cb-foot{background:var(--cb-ground)!important;border-top:1px solid var(--cb-line)}
.cb-foot-row{column-gap:2.2rem;row-gap:2.2rem;align-items:flex-start}
.cb-foot h4,.cb-foot .cb-fh .et_pb_text_inner{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--cb-brass);font-weight:600;margin:0 0 .9rem}
.cb-foot .cb-fmark .et_pb_text_inner{font-family:var(--cb-display);font-size:1.45rem;margin-bottom:.7rem;color:var(--cb-ink)}
.cb-foot .et_pb_text_inner{color:var(--cb-ink-soft);font-size:.93rem}
.cb-foot ul{list-style:none;margin:0;padding:0}
.cb-foot li{margin-bottom:.45rem}
.cb-foot a{color:var(--cb-ink-soft)!important;text-decoration:none}
.cb-foot a:hover{color:var(--cb-ink)!important;text-decoration:underline;text-underline-offset:3px}
.cb-foot-base .et_pb_text_inner{margin-top:2.6rem;padding-top:1.3rem;border-top:1px solid var(--cb-line);
  display:flex;flex-wrap:wrap;gap:.8rem 2rem;justify-content:space-between;font-size:.82rem}

/* ---------- responsive stacking ---------- */
@media(max-width:980px){
  body.cb-home .et_pb_row{flex-direction:column}
  body.cb-home .et_pb_column{width:100%!important;max-width:100%!important}
  .cb-doors-row{row-gap:1px}
}

@media (prefers-reduced-motion:reduce){
  body.cb-home *,body.cb-home *::before,body.cb-home *::after{animation:none!important;transition:none!important}
  .cb-js .cb-rv{opacity:1!important;transform:none!important}
}

/* ============================================================
   Corrections against the live Divi 5.13 DOM
   ============================================================ */

/* Divi renders the button as the anchor itself */
a.cb-cta.et_pb_button{
  border:1px solid var(--cb-brass-lit)!important;background:transparent!important;color:#fff!important;
  padding:.85rem 1.5rem!important;font-family:var(--cb-body)!important;font-size:.78rem!important;
  letter-spacing:.17em!important;text-transform:uppercase!important;font-weight:600!important;
  border-radius:0!important;transition:background .35s ease,color .35s ease;
}
a.cb-cta.et_pb_button:hover{background:var(--cb-brass-lit)!important;color:#0A1116!important}
a.cb-cta.et_pb_button:after,a.cb-cta.et_pb_button:before{display:none!important;content:none!important}

/* Text-module grids live on the paragraph, not the inner wrapper */
.cb-counts .et_pb_text_inner{border:0;padding:0;margin:0;display:block}
.cb-counts .et_pb_text_inner>p{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:2rem 0 0;
  border-top:1px solid var(--cb-line);border-bottom:1px solid var(--cb-line);padding-block:1.4rem}
.cb-counts .et_pb_text_inner>p>span{display:block}

.cb-mosaic .et_pb_text_inner{display:block}
.cb-mosaic .et_pb_text_inner>p{
  display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(.6rem,1.4vw,1.1rem);
  margin:clamp(2rem,4vw,3rem) 0 0}
@media(max-width:860px){.cb-mosaic .et_pb_text_inner>p{grid-template-columns:repeat(2,1fr)}}

/* Images must fill their module */
body.cb-home .et_pb_image .et_pb_image_wrap{display:block;width:100%}
body.cb-home .et_pb_image img{width:100%;display:block}
.cb-shot .et_pb_image_wrap,.cb-tl-img .et_pb_image_wrap,.cb-water-img .et_pb_image_wrap{overflow:hidden}
.cb-shot img{aspect-ratio:4/5;object-fit:cover}
.cb-door-col .cb-shot img{aspect-ratio:16/10}
.cb-tl-img img{aspect-ratio:3/4;object-fit:cover}
.cb-water-img img{aspect-ratio:4/3;object-fit:cover}

/* Deterministic column widths, since Divi's own flex widths leave a gutter strip */
body.cb-home .et_pb_row{display:flex;flex-wrap:wrap}
body.cb-home .et_pb_column{display:flex;flex-direction:column;row-gap:0!important}
.cb-climb-row,.cb-doors-row{--g:24px;gap:var(--g)}
.cb-climb-col,.cb-door-col{flex:0 0 calc((100% - 2*var(--g))/3)!important;width:auto!important;max-width:none!important}
.cb-figs-row{--g:32px;gap:var(--g)}
.cb-fig-col{flex:0 0 calc((100% - 3*var(--g))/4)!important;width:auto!important;max-width:none!important}
.cb-tl-row{--g:clamp(2rem,4vw,3.5rem);gap:var(--g);align-items:flex-start}
.cb-tl-img-col{flex:0 0 38%!important;width:auto!important;max-width:none!important;position:sticky;top:6rem}
.cb-tl-body-col{flex:1 1 0!important;width:auto!important;max-width:none!important}
.cb-water-row{--g:clamp(2rem,4vw,3.5rem);gap:var(--g);align-items:center}
.cb-water-body{flex:0 0 54%!important;width:auto!important;max-width:none!important}
.cb-water-img-col{flex:1 1 0!important;width:auto!important;max-width:none!important}
.cb-hero-foot{--g:40px;gap:var(--g);align-items:center}
.cb-hero-cta,.cb-hero-seal{flex:0 0 auto!important;width:auto!important;max-width:none!important}
.cb-foot-row{--g:40px;gap:var(--g)}
.cb-foot-brand{flex:0 0 40%!important;width:auto!important;max-width:none!important}
.cb-foot-nav{flex:1 1 0!important;width:auto!important;max-width:none!important}

/* The doors read as bordered cards, not a hairline grid with a leftover strip */
.cb-doors-row{background:none!important;border:0!important;padding-inline:var(--cb-gut)!important;margin-top:clamp(2rem,4vw,3rem)!important}
.cb-doors-row+.cb-doors-row{margin-top:var(--g)!important}
.cb-door-col{border:1px solid var(--cb-line);background:var(--cb-ground)}

/* Rhythm inside a column: Divi's own gaps are too loose for this design */
.cb-eyebrow{margin-bottom:1rem!important}
.cb-h2{margin-bottom:0!important}
.cb-lede{margin-top:1.3rem!important}
.cb-climb-h,.cb-door-h{margin-top:1rem!important;margin-bottom:.35rem!important}
.cb-ar{margin-bottom:.2rem!important}
.cb-stand{margin-top:1.4rem!important}
.cb-tl-list{margin-top:2rem!important}
.cb-fig{margin:0!important}
.cb-fmark{margin-bottom:.6rem!important}
.cb-foot-base-row{margin-top:0!important}

/* Section rhythm */
.cb-sec{padding-block:clamp(3.5rem,8vw,6.5rem)!important}
.cb-hero>.et_pb_row.cb-hero-foot{padding-top:0!important}

/* Stack cleanly on tablet and phone */
@media(max-width:980px){
  body.cb-home .et_pb_row{flex-direction:column}
  .cb-climb-col,.cb-door-col,.cb-fig-col,.cb-tl-img-col,.cb-tl-body-col,
  .cb-water-body,.cb-water-img-col,.cb-foot-brand,.cb-foot-nav,
  .cb-hero-cta,.cb-hero-seal{flex:0 0 auto!important;width:100%!important;max-width:100%!important}
  .cb-tl-img-col{position:static}
  .cb-climb-col:nth-child(2),.cb-climb-col:nth-child(3){margin-top:0}
  .cb-shot img,.cb-tl-img img{aspect-ratio:3/2}
  .cb-figs-row,.cb-climb-row,.cb-doors-row,.cb-tl-row,.cb-water-row,.cb-foot-row{gap:2rem}
  .cb-hero-foot{align-items:flex-start;gap:1.4rem}
}
@media(max-width:600px){
  .cb-counts .et_pb_text_inner>p{grid-template-columns:1fr;gap:1.2rem}
}

/* The page carries its own footer, so the theme footer is redundant here */
body.cb-home #main-footer{display:none!important}

/* Footer baseline sits on the paragraph, like the other text-module grids */
.cb-foot-base .et_pb_text_inner{margin:0;padding:0;border:0}
.cb-foot-base .et_pb_text_inner>p{
  margin:2.6rem 0 0;padding-top:1.3rem;border-top:1px solid var(--cb-line);
  display:flex;flex-wrap:wrap;gap:.8rem 2rem;justify-content:space-between;font-size:.82rem}
.cb-foot-base .et_pb_text_inner>p>span{display:block}

/* ============================================================
   Identity — the khatam seal plus a live Prata wordmark.
   Site-wide, so every page carries the same masthead.
   ============================================================ */
#main-header .logo_container{width:auto}
#main-header .logo_container a{display:flex;align-items:center;gap:.62rem;text-decoration:none;position:static}
#main-header .logo_helper{display:none}
#main-header #logo{
  width:auto!important;max-width:none!important;height:34px!important;max-height:34px!important;
  margin:0!important;position:static!important;transform:none!important;
}
#main-header .logo_container a::after{
  content:"Casbah of Algiers";
  font-family:"Prata",Georgia,"Times New Roman",serif;
  font-size:1.04rem;line-height:1;letter-spacing:.01em;color:var(--cb-ink);white-space:nowrap;
}
#main-header.et-fixed-header #logo{height:28px!important;max-height:28px!important}
#main-header.et-fixed-header .logo_container a::after{font-size:.95rem}
@media(max-width:520px){
  #main-header .logo_container a::after{font-size:.88rem}
  #main-header #logo{height:28px!important;max-height:28px!important}
}
@media(max-width:380px){#main-header .logo_container a::after{display:none}}

/* Divi's own active-link colour is more specific than the rule above */
#main-header #top-menu li.current-menu-item>a,
#main-header #top-menu li.current_page_item>a,
#main-header #top-menu li.current-menu-ancestor>a,
#et-top-navigation #top-menu li.current-menu-item>a{
  color:var(--cb-ink)!important;border-bottom-color:var(--cb-brass)
}
#main-header #top-menu li a{opacity:1}

/* ============================================================
   Article pages (History and the rest, as they are rewritten)
   ============================================================ */
body.cb-page .et_pb_section{padding:0}
body.cb-page .et_pb_row{width:100%;max-width:var(--cb-max);margin-inline:auto;padding-inline:var(--cb-gut);padding-block:0;display:flex;flex-wrap:wrap}
body.cb-page .et_pb_column{display:flex;flex-direction:column;row-gap:0!important}
body.cb-page .et_pb_module{margin-bottom:0}
body.cb-page{background:var(--cb-ground);color:var(--cb-ink);font-family:var(--cb-body);font-size:var(--cb-t-body);line-height:1.65}
body.cb-page h1,body.cb-page h2,body.cb-page h3{font-family:var(--cb-display);font-weight:400;line-height:1.08;text-wrap:balance}
body.cb-page p{margin:0 0 1.15em}
body.cb-page p:last-child{margin-bottom:0}
body.cb-page #main-footer{display:none!important}
body.cb-page .et_pb_image .et_pb_image_wrap{display:block;width:100%}
body.cb-page .et_pb_image img{width:100%;display:block}

/* shorter hero for an article */
.cb-page-hero{min-height:0}
.cb-page-hero .cb-hero-row{padding-block:clamp(3rem,9vw,6rem) clamp(2.4rem,5vw,4rem)!important}
.cb-h1-sm h1{font-size:clamp(2.2rem,6vw,4.3rem)!important;max-width:20ch}
.cb-eyebrow-light .et_pb_text_inner{color:var(--cb-brass-lit)}
.cb-eyebrow-light .et_pb_text_inner::after{background:#2A3740}

/* reading column */
.cb-prose-col{max-width:none}
.cb-prose .et_pb_text_inner{max-width:68ch}
.cb-prose .et_pb_text_inner a{color:var(--cb-cobalt);text-decoration:underline;text-underline-offset:3px}
.cb-lede-big .et_pb_text_inner{
  max-width:62ch;font-family:var(--cb-display);font-size:clamp(1.2rem,2.1vw,1.6rem);line-height:1.45;color:var(--cb-ink)}
.cb-h2-art h2{font-size:clamp(1.6rem,3.4vw,2.5rem);margin:0}
.cb-h2-art{margin-top:clamp(2.4rem,5vw,3.6rem)!important;margin-bottom:1.2rem!important}
.cb-prose{margin-bottom:0!important}
.cb-rule{margin-top:clamp(2rem,4vw,3rem)!important;border-top:1px solid var(--cb-line);padding-top:clamp(2rem,4vw,3rem)!important}

/* inline figures */
.cb-fig-img{margin-top:clamp(2rem,4vw,3rem)!important}
.cb-fig-img img{aspect-ratio:16/9;object-fit:cover}
.cb-figcap .et_pb_text_inner{
  margin-top:.7rem;font-size:.85rem;color:var(--cb-ink-soft);max-width:60ch;
  padding-left:.9rem;border-left:2px solid var(--cb-brass)}

/* key dates band */
.cb-keydates{background:var(--cb-ground-2)!important;border-top:1px solid var(--cb-line);border-bottom:1px solid var(--cb-line)}
.cb-keydates-row{--g:clamp(2rem,4vw,3.5rem);gap:var(--g);align-items:flex-start}
.cb-keydates-head{flex:0 0 32%!important;width:auto!important;max-width:none!important}
.cb-keydates-body{flex:1 1 0!important;width:auto!important;max-width:none!important}

/* sources */
.cb-sources{background:var(--cb-deep)!important;color:var(--cb-deep-ink)}
.cb-sources h2{color:#fff}
.cb-sources .cb-eyebrow .et_pb_text_inner{color:var(--cb-brass-lit)}
.cb-sources .cb-eyebrow .et_pb_text_inner::after{background:#2A3740}
.cb-srclist .et_pb_text_inner{color:var(--cb-deep-soft);font-size:.92rem;margin-top:1.6rem}
.cb-srclist ol{margin:0;padding-left:1.3rem;display:grid;gap:.7rem}
.cb-srclist a{color:var(--cb-brass-lit)!important;text-decoration:none;border-bottom:1px solid rgba(185,143,66,.35)}
.cb-srclist a:hover{color:#fff!important}

@media(max-width:980px){
  body.cb-page .et_pb_row{flex-direction:column}
  body.cb-page .et_pb_column{width:100%!important;max-width:100%!important}
  .cb-keydates-head,.cb-keydates-body{flex:0 0 auto!important;width:100%!important}
}

/* Article column: one centred measure, so prose and figures share an edge */
.cb-prose-row{max-width:960px!important}
.cb-prose-col{max-width:820px;margin-inline:auto}
.cb-prose .et_pb_text_inner{max-width:none}
.cb-lede-big .et_pb_text_inner{max-width:none}
.cb-fig-img img{aspect-ratio:3/2;object-fit:cover}
.cb-figcap .et_pb_text_inner{max-width:none}

/* ============================================================
   Dropdown menus: the brass underline belongs to top-level items
   only. On sub-menu links it drew a full-width rule across the panel.
   ============================================================ */
#main-header #top-menu li a,
#main-header #top-menu li.current-menu-item>a,
#main-header #top-menu li.current_page_item>a,
#main-header #top-menu li.current-menu-ancestor>a{
  border-bottom:0 none!important;
}
#main-header #top-menu>li>a{
  border-bottom:1px solid transparent!important;padding-bottom:.4rem;
}
#main-header #top-menu>li>a:hover,
#main-header #top-menu>li.current-menu-item>a,
#main-header #top-menu>li.current_page_item>a,
#main-header #top-menu>li.current-menu-ancestor>a{
  border-bottom-color:var(--cb-brass)!important;color:var(--cb-ink)!important;
}

#main-header .sub-menu{
  width:auto!important;min-width:15rem;max-width:20rem;
  background:var(--cb-ground-2)!important;
  border:1px solid var(--cb-line)!important;border-top:2px solid var(--cb-brass)!important;
  box-shadow:0 12px 28px rgba(21,32,42,.10);
  padding:.35rem 0!important;
}
#main-header .sub-menu li{padding:0!important}
#main-header .sub-menu li a{
  display:block;width:auto!important;
  padding:.55rem 1.15rem!important;
  font-size:.74rem!important;letter-spacing:.11em;line-height:1.4;
  color:var(--cb-ink-soft)!important;white-space:normal;
}
#main-header .sub-menu li a:hover{
  background:var(--cb-ground)!important;color:var(--cb-ink)!important;
}
#main-header .sub-menu li.current-menu-item>a{
  color:var(--cb-ink)!important;box-shadow:inset 3px 0 0 var(--cb-brass);
}
#main-header .sub-menu .sub-menu{margin-top:-.35rem}

/* Restore the active marker on the top-level item, which the reset above
   out-specified. Class selectors here match the reset, and come later. */
#main-header #top-menu>li.current-menu-item>a,
#main-header #top-menu>li.current_page_item>a,
#main-header #top-menu>li.current-menu-ancestor>a,
#main-header #top-menu>li>a:hover{
  border-bottom:1px solid var(--cb-brass)!important;color:var(--cb-ink)!important;
}

/* ============================================================
   Gallery: filters, grid, lightbox
   ============================================================ */
.cb-filters .et_pb_text_inner{
  display:flex;flex-wrap:wrap;gap:.5rem;margin-top:clamp(1.8rem,3.5vw,2.6rem);
  padding-bottom:1.4rem;border-bottom:1px solid var(--cb-line)}
.cb-filters button{
  font-family:var(--cb-body);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;
  color:var(--cb-ink-soft);background:none;border:1px solid var(--cb-line);border-radius:0;
  padding:.6rem 1rem;cursor:pointer;transition:background .3s ease,color .3s ease,border-color .3s ease}
.cb-filters button span{opacity:.5;margin-left:.45rem;font-variant-numeric:tabular-nums}
.cb-filters button:hover{border-color:var(--cb-brass);color:var(--cb-ink)}
.cb-filters button.is-on{background:var(--cb-ink);border-color:var(--cb-ink);color:var(--cb-ground)}
.cb-filters button.is-on span{opacity:.6}
.cb-filters button:focus-visible{outline:2px solid var(--cb-brass);outline-offset:2px}

.cb-grid .et_pb_text_inner{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));
  gap:clamp(.5rem,1.2vw,.9rem);margin-top:clamp(1.6rem,3vw,2.4rem)}
.cb-gi{display:block;position:relative;overflow:hidden;background:var(--cb-ground-2);cursor:zoom-in}
.cb-gi img{
  width:100%;height:100%;display:block;aspect-ratio:4/3;object-fit:cover;
  transition:transform 1s cubic-bezier(.2,.6,.2,1),filter .5s ease;filter:grayscale(.12)}
.cb-gi:hover img,.cb-gi:focus-visible img{transform:scale(1.05);filter:grayscale(0)}
.cb-gi:focus-visible{outline:2px solid var(--cb-brass);outline-offset:2px}
.cb-gi.cb-wide{grid-column:span 2}
.cb-gi::after{
  content:attr(data-cap);position:absolute;inset:auto 0 0 0;padding:.8rem;
  font-size:.76rem;line-height:1.35;color:#E6ECEA;
  background:linear-gradient(transparent,rgba(10,17,22,.9));
  opacity:0;transform:translateY(6px);transition:opacity .35s ease,transform .35s ease}
.cb-gi:hover::after,.cb-gi:focus-visible::after{opacity:1;transform:none}
@media(max-width:520px){
  .cb-grid .et_pb_text_inner{grid-template-columns:repeat(2,1fr)}
  .cb-gi.cb-wide{grid-column:span 2}
  .cb-gi::after{opacity:1;transform:none;font-size:.68rem;padding:.55rem}
}

.cb-lb{
  position:fixed;inset:0;z-index:100000;display:flex;align-items:center;justify-content:center;
  background:rgba(6,10,13,.95);padding:clamp(1rem,4vw,3rem)}
.cb-lb-fig{margin:0;max-width:min(1400px,92vw);display:flex;flex-direction:column;gap:.9rem}
.cb-lb-fig img{max-width:100%;max-height:78vh;width:auto;height:auto;display:block;margin-inline:auto}
.cb-lb-fig figcaption{
  color:#C3CCCA;font-size:.86rem;line-height:1.5;text-align:center;max-width:70ch;margin-inline:auto}
.cb-lb button{
  position:absolute;background:none;border:1px solid rgba(185,143,66,.5);color:#fff;cursor:pointer;
  font-family:var(--cb-body);transition:background .3s ease,color .3s ease}
.cb-lb button:hover{background:var(--cb-brass-lit);color:#0A1116}
.cb-lb button:focus-visible{outline:2px solid var(--cb-brass-lit);outline-offset:3px}
.cb-lb-x{top:clamp(.8rem,2vw,1.6rem);right:clamp(.8rem,2vw,1.6rem);
  font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600;padding:.6rem .95rem}
.cb-lb-p,.cb-lb-n{top:50%;margin-top:-1.5rem;width:3rem;height:3rem;font-size:1.5rem;line-height:1}
.cb-lb-p{left:clamp(.4rem,1.5vw,1.4rem)}
.cb-lb-n{right:clamp(.4rem,1.5vw,1.4rem)}
@media(max-width:600px){
  .cb-lb-p,.cb-lb-n{top:auto;bottom:clamp(.8rem,3vw,1.4rem);margin-top:0}
  .cb-lb-fig img{max-height:64vh}
}

.cb-note-block .et_pb_text_inner{
  margin-top:clamp(2.4rem,5vw,3.6rem);padding-top:1.4rem;border-top:1px solid var(--cb-line);
  font-size:.88rem;color:var(--cb-ink-soft);max-width:70ch}
.cb-note-block a{color:var(--cb-cobalt);text-decoration:underline;text-underline-offset:3px}

/* The hidden attribute must win. Both .cb-lb and .cb-gi set a display value,
   which overrides the browser default for [hidden]: the lightbox then sat
   invisible over the whole page and swallowed every click, and filtered-out
   tiles stayed on screen. */
body.cb-home [hidden],body.cb-page [hidden]{display:none!important}
.cb-lb[hidden],.cb-gi[hidden]{display:none!important}
.cb-lb[hidden]{pointer-events:none}

/* Don't depend on the theme's reset for this: rows set width:100% plus side
   padding, which overflows the viewport under content-box. */
body.cb-home,body.cb-page,
body.cb-home *,body.cb-home *::before,body.cb-home *::after,
body.cb-page *,body.cb-page *::before,body.cb-page *::after{box-sizing:border-box}

/* ============================================================
   Mobile menu panel, and a guard against the transparent-nav overlay
   ============================================================ */
#main-header #mobile_menu,#main-header .et_mobile_menu{
  background:var(--cb-ground-2)!important;
  border-top:2px solid var(--cb-brass)!important;
  border-left:1px solid var(--cb-line)!important;
  border-right:1px solid var(--cb-line)!important;
  border-bottom:1px solid var(--cb-line)!important;
  box-shadow:0 14px 30px rgba(21,32,42,.12);padding:.35rem 0!important}
#main-header .et_mobile_menu li a{
  border-bottom:0!important;padding:.7rem 1.15rem!important;
  font-family:var(--cb-body);font-size:.78rem!important;letter-spacing:.11em;text-transform:uppercase;
  font-weight:500;color:var(--cb-ink-soft)!important}
#main-header .et_mobile_menu li a:hover{background:var(--cb-ground)!important;color:var(--cb-ink)!important}
#main-header .et_mobile_menu li.current-menu-item>a{color:var(--cb-ink)!important;box-shadow:inset 3px 0 0 var(--cb-brass)}
#main-header .et_mobile_menu .sub-menu{border:0!important;box-shadow:none;padding:0!important;min-width:0;max-width:none}
#main-header .et_mobile_menu .sub-menu a{padding-left:2.1rem!important;font-size:.72rem!important}

/* If any page still renders Divi's transparent nav, the header overlays the
   first section. Give the hero enough clearance that the title never sits
   under the menu bar. */
body.et_transparent_nav.cb-home .cb-hero-row,
body.et_transparent_nav.cb-page .cb-hero-row{padding-top:7rem!important}
@media(min-width:981px){
  body.et_transparent_nav.cb-home .cb-hero-row{padding-top:clamp(4rem,13vw,9rem)!important}
  body.et_transparent_nav.cb-page .cb-hero-row{padding-top:clamp(3rem,9vw,6rem)!important}
}

/* ---------- terms band (Architecture) ---------- */
.cb-terms{background:var(--cb-ground-2)!important;
  border-top:1px solid var(--cb-line);border-bottom:1px solid var(--cb-line)}
.cb-terms-row{--g:clamp(1rem,2vw,1.6rem);gap:var(--g);
  margin-top:clamp(2rem,4vw,3rem)!important;align-items:stretch}
.cb-term-col{flex:0 0 calc((100% - 3*var(--g))/4)!important;width:auto!important;max-width:none!important;
  border:1px solid var(--cb-line);background:var(--cb-ground);
  padding:clamp(1.1rem,2vw,1.6rem)!important;transition:background .4s ease}
.cb-term-col:hover{background:#fff}
.cb-term-w{margin-bottom:.55rem!important}
.cb-term-w h3{font-family:var(--cb-arabic);font-size:clamp(1.3rem,2.6vw,1.7rem);
  line-height:1.2;margin:0;color:var(--cb-ink)}
.cb-term-w h3::after{content:"";display:block;width:2rem;height:1px;
  background:var(--cb-brass);margin-top:.7rem}
.cb-term-t .et_pb_text_inner{color:var(--cb-ink-soft);font-size:.93rem;line-height:1.6}
@media(max-width:980px){
  .cb-term-col{flex:0 0 calc((100% - var(--g))/2)!important}
}
@media(max-width:600px){
  .cb-term-col{flex:0 0 100%!important}
}

/* The cb-page breakpoint stacks every row into a single column. The terms
   band is four short cards, so it keeps two across on tablet instead. */
@media(max-width:980px){
  body.cb-page .cb-terms-row{flex-direction:row!important;flex-wrap:wrap!important}
  body.cb-page .cb-term-col{flex:0 0 calc((100% - var(--g))/2)!important;
    width:auto!important;max-width:none!important}
}
@media(max-width:600px){
  body.cb-page .cb-terms-row{flex-direction:column!important}
  body.cb-page .cb-term-col{flex:0 0 auto!important;width:100%!important}
}
body.cb-page .cb-term-w h3{font-family:var(--cb-display)}
