/* One closing composition for every page. Isolated from legacy chapter styles. */
.global-consultation {
  --closing-edge: clamp(24px, 3.3vw, 64px);
  --closing-paper: #e8e5dc;
  --closing-ink: #1c3347;
  --closing-muted: #aebfbd;
  position: relative;
  box-sizing: border-box;
  font-family: Geist, sans-serif;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.5;
}
.global-consultation {
  z-index: 3;
  isolation: isolate;
  min-height: 0;
  margin: 0;
  padding: clamp(72px, 7.8vw, 126px) var(--closing-edge) clamp(72px, 7vw, 108px);
  background: var(--closing-paper);
  color: var(--closing-ink);
  border-top: 1px solid #1c33471c;
  text-align: left;
  overflow: clip;
}
.global-consultation .closing-heading,
.global-consultation .closing-conversation {max-width: 1480px; margin-inline: auto;}
.global-consultation h2 {
  margin: 0;
  font: 500 clamp(70px, 8.9vw, 142px)/.99 'Hubot Wide', Geist, sans-serif;
  letter-spacing: -.064em;
  word-spacing: .025em;
  color: var(--closing-ink);
  text-wrap: initial;
}
.global-consultation .closing-line {display: block;}
.global-consultation .closing-line + .closing-line {margin-left: 16.5%;}
.global-consultation .closing-line > span {display: inline-block;}
.global-consultation .closing-conversation {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 8%;
  align-items: start;
  padding-left: min(16.5%, 244px);
  margin-top: 46px;
}
.global-consultation .closing-conversation > p {
  margin: 0;
  max-width: 440px;
  font: 400 17px/1.7 Geist, sans-serif;
  color: #4f6163;
  text-wrap: pretty;
}
.global-consultation .closing-actions {justify-self: end; max-width: 100%;}
.global-consultation .closing-primary {
  display: flex;
  align-items: center;
  gap: 34px;
  width: fit-content;
  max-width: 100%;
  min-height: 68px;
  padding: 9px 10px 9px 26px;
  border-radius: 4px 4px 28px 4px;
  background: var(--closing-ink);
  color: var(--closing-paper);
  font: 400 15px/1.4 Geist, sans-serif;
  text-decoration: none;
  transition: background .35s;
}
.global-consultation .closing-primary > span:first-child {white-space: nowrap;}
.global-consultation .closing-direction {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  flex: 0 0 48px;
  border-radius: 50%;
  background: #e8e5dc12;
  transition: background .4s, color .4s;
}
.global-consultation .closing-direction svg {width: 28px; height: 28px; overflow: hidden;}
.global-consultation svg, .global-footer svg {fill: none; stroke: currentColor; stroke-width: 1.4;}
.closing-direction g {transition: transform .55s cubic-bezier(.22,1,.36,1);}
.closing-direction g + g {transform: translateX(-36px);}
.global-consultation .closing-phone {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  min-height: 44px;
  margin-top: 14px;
  font: 400 13px/1.5 Geist, sans-serif;
  color: var(--closing-ink);
  text-decoration: none;
}
.closing-phone > span {color: #5b6c6e;}
.global-consultation a, .global-footer a {-webkit-tap-highlight-color: transparent;}
.global-consultation a:focus-visible, .global-footer a:focus-visible {outline: none; box-shadow: none; text-decoration: underline; text-underline-offset: 6px;}
.global-consultation .closing-primary:focus-visible > span:first-child {text-decoration: underline; text-underline-offset: 6px;}

@media (hover: hover) and (pointer: fine) {
  .closing-primary:hover {background: #304b50;}
  .closing-primary:hover .closing-direction {background: var(--closing-paper); color: var(--closing-ink);}
  .closing-primary:hover .closing-direction g:first-child {transform: translateX(36px);}
  .closing-primary:hover .closing-direction g + g {transform: translateX(0);}
  .global-consultation .closing-phone:hover {text-decoration: underline; text-underline-offset: 5px;}
}
@media (min-width: 1800px) {
  .global-consultation .closing-conversation {box-sizing: border-box;}
}
@media (max-width: 1050px) {
  .global-consultation h2 {font-size: clamp(66px, 10.1vw, 106px);}
  .global-consultation .closing-conversation {padding-left: 16.5%; grid-template-columns: 1fr; gap: 30px;}
  .global-consultation .closing-actions {justify-self: start;}
}
@media (max-width: 600px) {
  .global-consultation {padding-block: 60px;}
  .global-consultation h2 {font-size: clamp(48px, 12.5vw, 75px); line-height: 1.04; letter-spacing: -.066em;}
  .global-consultation .closing-line + .closing-line {margin-left: 10%;}
  .global-consultation .closing-conversation {padding-left: 0; margin-top: 30px; gap: 26px;}
  .global-consultation .closing-conversation > p {font-size: 16px; max-width: 390px;}
  .global-consultation .closing-actions {width: 100%;}
  .global-consultation .closing-primary {justify-content: space-between; width: 100%; padding-left: 21px; gap: 18px; min-height: 66px;}
  .global-consultation .closing-phone {font-size: 12px; gap: 10px;}
}
@media (prefers-reduced-motion: reduce) {
  .global-consultation *, .global-footer * {animation: none!important; transition: none!important;}
}
.ambient-paused .global-consultation *, .ambient-paused .global-footer * {animation: none!important; transition: none!important;}

/* Homepage closing: mineral invitation above a revealed slate directory. */
.homepage #content { position: relative; z-index: 2; }
.homepage .global-consultation {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(320px, .75fr);
  align-items: center;
  gap: clamp(40px, 6vw, 100px);
  padding: clamp(80px, 8vw, 130px) max(5vw, calc((100vw - 1480px) / 2));
  background: #c8bba4;
  border: 0;
  min-height: 570px;
  box-shadow: 0 28px 55px -24px #071c25a6;
  overflow: visible;
}
.homepage .global-consultation .closing-heading { margin: 0; }
.homepage .global-consultation h2 {
  font-size: clamp(64px, 7.2vw, 112px);
  line-height: 1.02;
  letter-spacing: -.04em;
}
.homepage .global-consultation .closing-line + .closing-line { margin-left: 0; }
.homepage .global-consultation .closing-conversation {
  display: block;
  width: 100%;
  margin: 0;
  padding: clamp(32px, 3vw, 48px);
  background: #1c3347;
  color: #e8e5dc;
  clip-path: polygon(24px 0,100% 0,100% calc(100% - 24px),calc(100% - 24px) 100%,0 100%,0 24px);
}
.homepage .global-consultation .closing-conversation > p {
  color: #e8e5dc;
  font-size: clamp(18px, 1.5vw, 22px);
  line-height: 1.55;
  max-width: 30ch;
}
.homepage .global-consultation .closing-actions { margin-top: 32px; width: 100%; justify-self: start; }
.homepage .global-consultation .closing-phone { color: #e8e5dc; flex-wrap: wrap; justify-content: flex-start; gap: 4px 16px; margin-top: 22px; }
.homepage .closing-phone > span { color: #a9bfcb; }
  z-index: 1;
  background: #142a31;
  padding: 64px max(5vw, calc((100vw - 1480px) / 2)) 22px;
}
@media (max-width: 1100px) {
  .homepage .global-consultation { grid-template-columns: 1fr 1fr; gap: 32px; min-height: 480px; }
  .homepage .global-consultation h2 { font-size: clamp(54px, 7.2vw, 80px); }
}
@media (max-width: 680px) {
  .homepage .global-consultation { grid-template-columns: 1fr; gap: 36px; padding: 64px 24px; min-height: 0; }
  .homepage .global-consultation h2 { font-size: clamp(52px, 13vw, 76px); }
  .homepage .global-consultation .closing-conversation { padding: 32px 28px; }
  .homepage .global-consultation .closing-conversation > p { font-size: 18px; }
}

/* Desktop CTA study: photograph and invitation share one edge. */
@media (min-width: 1101px) {
  .homepage .global-consultation {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    grid-template-rows: auto 360px;
    column-gap: 24px;
    row-gap: 44px;
    padding-block: 88px 104px;
    background: #d6ddd3;
    min-height: 0;
  }
  .homepage .global-consultation .closing-heading { grid-column: 1 / -1; grid-row: 1; }
  .homepage .global-consultation h2 { font-size: clamp(64px, 5.6vw, 88px); }
  .homepage .global-consultation .closing-line { display: inline; }
  .homepage .global-consultation .closing-line + .closing-line { margin-left: .1em; }
  .homepage .global-consultation .closing-photo { display: block; grid-column: 1 / 10; grid-row: 2; height: 100%; filter: drop-shadow(0 20px 24px #142a3126); }
  .homepage .closing-photo-rim { height: 100%; padding: 8px; background: #7d9690; clip-path: polygon(30px 0,100% 0,100% calc(100% - 30px),calc(100% - 30px) 100%,0 100%,0 30px); }
  .homepage .closing-photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 45%; clip-path: polygon(26px 0,100% 0,100% calc(100% - 26px),calc(100% - 26px) 100%,0 100%,0 26px); }
  .homepage .global-consultation .closing-conversation { grid-column: 8 / -1; grid-row: 2; align-self: end; position: relative; margin-bottom: -32px; padding: 36px 40px; background: #e8e5dc; color: #1c3347; clip-path: polygon(0 0,100% 0,100% calc(100% - 24px),calc(100% - 24px) 100%,0 100%); box-shadow: 0 20px 40px -20px #142a3140; }
  .homepage .global-consultation .closing-conversation > p { font-size: 20px; color: #1c3347; max-width: 28ch; }
  .homepage .global-consultation .closing-actions { margin-top: 24px; }
  .homepage .global-consultation .closing-phone { color: #1c3347; margin-top: 16px; font-size: 13px; }
  .homepage .global-consultation .closing-phone > span { color: #4f6163; }
}
.closing-photo { display: none; }


/* Footer: the editorial system's hairline grid on flat navy. One footer for the homepage and every inner page. */
.global-footer{--ink:#183343;--navy:#101d2c;--chalk:#edeae1;--mist:#a9bfcb;--mute:#8a9ba4;--rule-dark:#edeae12b;--ease:cubic-bezier(.22,1,.36,1);position:relative;z-index:1;box-sizing:border-box;margin:0;padding:clamp(56px,6vw,88px) var(--edge) max(22px,env(safe-area-inset-bottom));background:var(--navy);color:var(--chalk);font:400 15px/1.5 Geist,sans-serif;letter-spacing:0;overflow:clip}
.global-footer *{box-sizing:border-box}
.global-footer a{color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent}
.global-footer address{font-style:normal}
.global-footer svg{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.ft{display:flex;flex-direction:column;max-width:none;margin:0}
/* Kicker row: a stamp on a hairline, with the assurance set against the right edge. */
.global-footer .ft-stamp{display:flex;justify-content:space-between;align-items:baseline;gap:24px;margin:0;padding:18px 0 22px;border-top:1px solid var(--rule-dark);font:500 11px/1.6 Geist,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--chalk)}
.global-footer .ft-stamp span:last-child{color:var(--mist);text-align:right}
/* Four columns separated by hairlines, as in the stat grid. */
.ft-grid{display:grid;grid-template-columns:1fr 1.2fr .85fr 1fr;gap:0;border-top:1px solid var(--rule-dark);border-bottom:1px solid var(--rule-dark)}
.ft-col{min-width:0;padding:32px 28px 36px 28px;border-right:1px solid var(--rule-dark)}
.ft-col:first-child{padding-left:0}
.ft-col:last-child{border-right:0;padding-right:0}
.global-footer .ft-label{display:block;width:fit-content;margin:0 0 22px;font:500 11px/1.6 Geist,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--mist)}
.global-footer a.ft-label:hover,.global-footer a.ft-label[aria-current=page]{color:var(--chalk)}
.ft-logo{display:block;width:160px}
.ft-logo img{display:block;width:100%;height:auto}
.global-footer .ft-tag{margin:28px 0 0;font:500 clamp(20px,1.6vw,26px)/1.2 'Hubot Wide',Geist,sans-serif;letter-spacing:-.035em;color:var(--chalk)}
.ft-phone{display:block;width:fit-content;margin:-6px 0 0;font:500 clamp(28px,2.4vw,40px)/1.1 'Hubot Wide',Geist,sans-serif;letter-spacing:-.03em;white-space:nowrap;color:var(--chalk);font-variant-numeric:tabular-nums}
/* Touch: invisible hit areas so short links reach 40px without changing the layout. */
.global-footer a.ft-label,.ft-phone{position:relative}.global-footer a.ft-label:after{content:'';position:absolute;inset:-12px -6px}.ft-phone:after{content:'';position:absolute;inset:-6px -6px}
.ft-sites{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:34px;padding-top:18px;border-top:1px solid var(--rule-dark)}
.ft-sites a{display:block;min-width:0}
.ft-site{display:block;margin:0 0 6px;font:400 13px/1.5 Geist,sans-serif;color:var(--chalk)}
.ft-sites address{font:400 13px/1.6 Geist,sans-serif;color:var(--mist)}
.ft-nav ul{list-style:none;margin:0;padding:0}
.ft-nav li{border-bottom:1px solid var(--rule-dark)}
.ft-nav li:last-child{border-bottom:0}
.ft-nav li a{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:40px;padding:8px 0;font:400 15px/1.4 Geist,sans-serif;color:var(--chalk);transition:padding-left .35s cubic-bezier(.22,1,.36,1),color .25s}
.ft-nav li a:after{content:'';width:14px;height:14px;flex:none;background:currentColor;clip-path:polygon(0 45%,60% 45%,38% 20%,52% 6%,100% 50%,52% 94%,38% 80%,60% 55%,0 55%);opacity:0;transform:translateX(-8px);transition:opacity .3s,transform .35s cubic-bezier(.22,1,.36,1)}
.ft-nav li a[aria-current=page]{color:var(--mist)}
/* The wordmark, given room: a hairline above it and a clear top margin. */
.ft-word{display:block;width:100%;margin-top:clamp(40px,4.4vw,72px);padding-top:0;border-top:0}
.ft-word span{display:block;width:100%;aspect-ratio:132.09 / 17.53;mask:url('/mineral-hero/footer-calcium.svg') center / contain no-repeat;-webkit-mask:url('/mineral-hero/footer-calcium.svg') center / contain no-repeat;background:linear-gradient(180deg,#3b5567 0%,#7493a7 58%,#a9bfcb 100%);transition:filter .4s}
.ft-colophon{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:clamp(24px,2.4vw,34px);padding-top:16px;border-top:1px solid var(--rule-dark);font:500 11px/1.6 Geist,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}
.ft-colophon a{display:flex;align-items:center;gap:16px;min-height:44px;color:var(--chalk);transition:color .25s}
.ft-colophon a svg{width:44px;height:44px;padding:12px;box-sizing:border-box;background:var(--chalk);color:var(--navy);fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;clip-path:polygon(0 7px,7px 0,calc(100% - 3px) 0,100% 3px,calc(100% - 3px) calc(100% - 7px),calc(100% - 9px) 100%,5px 100%,0 calc(100% - 5px));transition:transform .35s cubic-bezier(.22,1,.36,1),background .25s}
.global-footer a:focus-visible{outline:none;box-shadow:none;text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
.global-footer .ft-logo:focus-visible,.global-footer .ft-word:focus-visible{outline:1px solid var(--mist);outline-offset:8px;text-decoration:none}
@media(hover:hover) and (pointer:fine){
  .ft-sites a:hover .ft-site{color:#fff;padding-left:10px}.ft-sites .ft-site{transition:padding-left .35s cubic-bezier(.22,1,.36,1),color .25s}.ft-phone{transition:color .25s,letter-spacing .35s}.ft-phone:hover{color:#fff;letter-spacing:.01em}
  .ft-nav li a:hover{padding-left:12px;color:#fff}
  .ft-nav li a:hover:after{opacity:1;transform:none}
  .ft-colophon a:hover{color:var(--chalk)}
  .ft-colophon a:hover svg{transform:translateY(-3px);background:#fff}
  .ft-word:hover span{filter:brightness(1.08)}
}
/* Desktop: the page slides up off the footer (reveal). The footer keeps its natural height so nothing is clipped above the fold. */
@media(min-width:1101px) and (min-height:840px) and (prefers-reduced-motion:no-preference){
  .global-footer{position:sticky;bottom:0}
  .global-footer:focus-within{position:relative}
}
/* Tablet: two columns, two rows. */
@media(max-width:1100px){
  .ft-grid{grid-template-columns:1fr 1fr}
  .ft-col:nth-child(2){border-right:0;padding-right:0}
  .ft-col:nth-child(-n+2){border-bottom:1px solid var(--rule-dark)}
  .ft-col:nth-child(3){padding-left:0;border-right:1px solid var(--rule-dark)}
}
/* Phone: one column, every block on its own hairline. */
@media(max-width:640px){
  .global-footer{padding-top:64px}
  .global-footer .ft-stamp{flex-direction:column;align-items:flex-start;gap:6px;padding:16px 0 18px}
  .global-footer .ft-stamp span:last-child{text-align:left}
  .ft-grid{grid-template-columns:1fr;gap:0}
  .ft-col,.ft-col:nth-child(3){padding:26px 0 30px;border-right:0;border-bottom:1px solid var(--rule-dark)}
  .ft-col:last-child{border-bottom:0}
  .ft-logo{width:140px}
  .global-footer .ft-tag{margin-top:22px;font-size:22px}
  .ft-phone{font-size:clamp(28px,8.5vw,36px)}
  .ft-sites{gap:18px;margin-top:28px}
  .global-footer .ft-label{margin-bottom:16px}
  .ft-nav li a{min-height:44px;padding:10px 0;font-size:15px}
  .ft-word{margin-top:48px;padding-top:28px}
  .ft-colophon{margin-top:24px;flex-wrap:wrap;gap:4px 20px;font-size:11px}
}
@media(prefers-reduced-motion:reduce){.global-footer *{transition:none!important}}
