/* City Dog owns its layout. Shared files supply brand fonts, navigation and footer. */
:root{font-family:"Dog Schkola Sans",Arial,Helvetica,sans-serif;color:#241d36;background:#fff0b9}
*{box-sizing:border-box}body{margin:0;background:#fff0b9}html{scroll-behavior:smooth}a{color:inherit}a,button{touch-action:manipulation}a:focus-visible{outline:3px solid #79509f;outline-offset:4px}
.cd-page{--space:clamp(20px,3vw,40px);width:min(1200px,92%);margin:auto;padding:var(--space) 0;color:#241d36}
.cd-page h1,.cd-page h2,.cd-page h3,.cd-page p,.cd-page figure{margin:0}
.cd-page h1,.cd-page h2,.cd-page h3{letter-spacing:-.025em;text-wrap:balance}
.cd-page h1{font-size:clamp(44px,5.5vw,76px);font-weight:800;line-height:1.05}
.cd-page h2{font-size:clamp(23px,2.2vw,30px);font-weight:800;line-height:1.2}
.cd-page h3{font-size:18px;font-weight:750;line-height:1.3}
.cd-page p,.cd-page li{font-size:15px;line-height:1.55}
.cd-page .cd-eyebrow{font-size:11px;font-weight:750;letter-spacing:.07em;line-height:1.5;color:#9c4509}
.cd-hero{background:#ffc0bf;border-radius:24px;overflow:hidden}
.cd-hero-grid{display:grid;grid-template-columns:1.1fr 1fr}
.cd-hero-copy{display:flex;flex-direction:column;align-items:flex-start;gap:18px;padding:var(--space);min-width:0}
.cd-page .cd-tagline{font-size:clamp(22px,2.5vw,30px);line-height:1.2}
.cd-hero-photo{position:relative;min-height:360px;background:#ffc0bf}
.cd-hero-photo img{display:block;position:absolute;width:100%;height:100%;object-fit:cover;inset:0}
.cd-page .btn,.cd-page .cd-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;max-width:100%;padding:10px 18px;border:1px solid transparent;border-radius:24px;background:#c5a0e7;color:#241d36;font:750 12px/1.3 "Dog Schkola Sans",Arial,sans-serif;letter-spacing:.02em;text-decoration:none;text-align:center;white-space:normal}
.cd-page .cd-secondary{background:transparent;border-color:#79509f}
.cd-page .btn:hover,.cd-page .cd-button:hover{background:#d7bbee}
.cd-section{padding:0;min-width:0}.cd-wrap{width:100%}
.cd-reactives-section{margin:24px 0}
.cd-reactives{display:grid;grid-template-columns:.8fr 1.6fr;gap:24px;background:#e9d4f6;border-radius:22px;padding:26px}
.cd-reactives>div{min-width:0}
.cd-page .cd-age{font-size:15px;font-weight:400;line-height:1.55;margin-top:10px}
.cd-reactives h3{margin-bottom:10px}
.cd-reactives p+p{margin-top:10px}
.cd-reactives .cd-button{margin-top:14px}
.cd-learning-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:28px;align-items:start}
.cd-progression{padding:26px;background:#fff0b9;border:1px solid #e5cd94;border-radius:22px;scroll-margin-top:80px}
.cd-course-sidebar{display:flex;flex-direction:column;gap:24px;min-width:0}
.cd-support{background:#ffc0bf;border-radius:22px;padding:26px}
.cd-timeline{margin-top:24px}
.cd-stop{position:relative;display:grid;grid-template-columns:30px minmax(0,1fr);gap:16px;padding-bottom:24px}
.cd-stop:before{content:"";position:absolute;left:14px;top:30px;bottom:0;width:2px;background:#c5a0e7}
.cd-stop-final{padding-bottom:0}.cd-stop-final:before{display:none}
.cd-timeline-marker{position:relative;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#c5a0e7;font-size:11px;font-weight:800}
.cd-stop h3{color:#67418a;margin:3px 0 10px}
.cd-stop p+p{margin-top:10px}.cd-stop-copy{min-width:0}
.cd-skills{display:grid;grid-template-columns:1fr 1fr;gap:5px 24px;margin:12px 0 0;padding-left:18px}.cd-skills li::marker{color:#79509f}
.cd-included-panel{display:grid;gap:20px;margin-top:24px}
.cd-included-item{display:grid;grid-template-columns:40px minmax(0,1fr);gap:16px;align-items:center}
.cd-support-icon{display:block;width:40px;height:40px;color:#79509f}
.ds-course-intake{padding:26px;border-radius:22px;background:#e9d4f6}
.ds-course-intake-top{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:20px}
.ds-course-intake-status{display:inline-flex;gap:8px;align-items:center;justify-content:center;max-width:100%;padding:9px 13px;border-radius:999px;background:#e9dff5;color:#493164;font-size:12px;line-height:1.4;font-weight:800;letter-spacing:.03em;text-align:center}
.ds-course-intake-status:before{content:"";width:8px;height:8px;flex-shrink:0;border-radius:50%;background:#79509f}
.ds-course-intake-status[data-status="open"]{background:#b8e69c;color:#245b20}
.ds-course-intake-status[data-status="waitlist"]{background:#ffcb45;color:#62300b}
.ds-course-intake-status[data-status="soon"]{background:#dfcdf8;color:#59318a}
.ds-course-intake-status[data-status="hold"]{background:#e5e4e8;color:#55535d}
.ds-course-intake-status[data-status="full"]{background:#f7ded7;color:#853e2e}
.ds-course-intake-status[data-status="open"]:before{background:#258d36;--cd-beacon:37,141,54;animation:cd-status-beacon 2s ease-in-out infinite}
.ds-course-intake-status[data-status="waitlist"]:before{background:#dc6514;--cd-beacon:220,101,20;animation:cd-status-beacon 2s ease-in-out infinite}
@keyframes cd-status-beacon{0%,100%{opacity:1;box-shadow:0 0 0 0 rgba(var(--cd-beacon),.48)}45%{opacity:.65;box-shadow:0 0 0 5px rgba(var(--cd-beacon),.16)}70%{opacity:1;box-shadow:0 0 0 7px rgba(var(--cd-beacon),0)}}
.ds-course-intake-status[data-status="full"]:before{background:#a94c2f}
.ds-course-intake-details{display:grid;grid-template-columns:1fr 1fr;gap:18px 20px;padding-top:18px;border-top:1px solid #c5a0e7}
.ds-course-intake-detail{display:flex;flex-direction:column;gap:5px;min-width:0}
.ds-course-intake-label{font-size:10px;font-weight:800;letter-spacing:.08em}
.ds-course-intake-value{font-size:14px;font-weight:400;line-height:1.4;overflow-wrap:anywhere}
.cd-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.cd-actions .cd-button{flex:1 1 135px}
@media(max-width:900px){.cd-learning-layout{grid-template-columns:1fr}.cd-course-sidebar{display:grid;grid-template-columns:1fr 1fr;gap:20px}.cd-reactives{grid-template-columns:1fr;gap:18px}.cd-skills{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.cd-page{width:90%;padding-top:20px}.cd-hero-grid{grid-template-columns:1fr}.cd-hero-copy{padding:24px;gap:16px}.cd-hero-photo{min-height:0;height:270px}.cd-page h1{font-size:48px}.cd-reactives,.cd-progression,.cd-support,.ds-course-intake{padding:22px;border-radius:20px}.cd-course-sidebar{display:flex;gap:20px}.cd-learning-layout{gap:20px}.cd-reactives-section{margin:20px 0}.cd-page h3{font-size:17px}.cd-stop{gap:13px}.cd-skills{grid-template-columns:1fr;gap:5px}.cd-hero-copy .btn{width:100%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Computer layout: main-site hierarchy with bounded, readable type sizes. */
@media(min-width:1001px){
 .cd-page{--space:32px;width:min(1280px,90%);padding-block:32px}
 .cd-page h1{font-size:clamp(42px,3.5vw,52px);line-height:1.12;font-weight:750}
 .cd-page h2{font-size:clamp(26px,2.1vw,32px);line-height:1.22}
 .cd-page h3{font-size:clamp(20px,1.66015625vw,24px);line-height:1.35}
 .cd-page p,.cd-page li{font-size:clamp(18px,1.46484375vw,22px);line-height:1.5}
 .cd-page .cd-eyebrow{font-size:12px;line-height:1.5}
 .cd-page .cd-tagline{font-size:clamp(24px,2vw,29px);line-height:1.25}
 .cd-hero-grid{grid-template-columns:1fr 1fr}
 .cd-hero-copy{justify-content:center;gap:20px;padding:36px}
 .cd-hero-photo{min-height:390px}
 .cd-page .btn,.cd-page .cd-button{font-size:16px;min-height:46px;padding:11px 20px;font-weight:750}
 .cd-page .cd-age{font-size:18px;line-height:1.5}
 .cd-reactives{grid-template-columns:minmax(0,.7fr) minmax(0,1.6fr);gap:32px;padding:30px}
 .cd-reactives h3{margin-bottom:14px}
 .cd-reactives p+p{margin-top:14px}
 .cd-reactives .cd-button{margin-top:18px}
 .cd-learning-layout{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:24px}
 .cd-progression,.cd-support,.ds-course-intake{padding:28px}
 .cd-timeline,.cd-included-panel{margin-top:24px}
 .cd-stop{gap:16px;padding-bottom:26px}
 .cd-stop-final{padding-bottom:0}
 .cd-stop h3{margin-top:1px}
 .cd-skills{gap:6px 22px}
 .cd-included-item{grid-template-columns:38px minmax(0,1fr);gap:14px}
 .cd-support-icon{width:38px;height:38px}
 .ds-course-intake-top{gap:14px;margin-bottom:22px}
 .ds-course-intake-status{font-size:12px;padding:9px 13px}
 .ds-course-intake-details{gap:20px 18px}
 .ds-course-intake-label{font-size:12px;line-height:1.4}
 .ds-course-intake-value{font-size:15px;line-height:1.4}
 .cd-actions .cd-button{flex:1 1 140px}
}
@media(prefers-reduced-motion:reduce){
 .ds-course-intake-status[data-status="open"]:before,.ds-course-intake-status[data-status="waitlist"]:before{animation:none}
}

/* Practical information: orange labels and consistent outline icons. */
.cd-page .ds-course-intake-label{display:inline-flex;align-items:center;gap:8px;color:#a64b0b}
.cd-page .cd-detail-icon{display:block;width:20px;height:20px;flex:0 0 20px}

/* The age introduction uses normal body weight in orange. */
.cd-page .cd-age{color:#000;font-weight:400}

/* First screen follows Mantrailing; the original course body keeps its own container. */
.cd-page.cd-page--full-hero{width:100%;margin:0;padding:0}
.cd-page--full-hero>.cd-hero{border-radius:0}
.cd-page--full-hero .cd-hero-grid{grid-template-columns:repeat(2,minmax(0,1fr));min-height:530px}
.cd-page--full-hero .cd-hero-copy{padding:70px 8%;justify-content:center}
.cd-page--full-hero .cd-hero-photo{min-height:530px}
.cd-page--full-hero>.cd-content{display:flow-root;width:min(1200px,92%);margin:0 auto;padding-bottom:var(--space)}
@media(min-width:1001px){
 .cd-page--full-hero>.cd-content{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);grid-template-rows:auto auto auto;gap:22px 24px;align-items:stretch;width:100%;padding:28px clamp(20px,2vw,40px) 32px}
 .cd-content>.cd-reactives-section{grid-column:2;grid-row:1;margin:0}
 .cd-content .cd-learning-layout,.cd-content .cd-course-sidebar{display:contents}
 .cd-content .cd-progression{grid-column:1;grid-row:1/span 3;padding:24px;display:flex;min-width:0}
 .cd-content .cd-progression>.cd-wrap{display:flex;flex-direction:column;min-width:0}
 .cd-content .cd-timeline{display:flex;flex-direction:column}
 .cd-content .cd-stop{flex:none}
 .cd-content .cd-stop-final{flex:0;padding-bottom:0}
 .cd-content .cd-support{grid-column:2;grid-row:2;padding:24px}
 .cd-content .ds-course-intake-section{grid-column:2;grid-row:3;min-width:0}
 .cd-content .ds-course-intake{height:100%;padding:24px}
 .cd-content .cd-reactives-section>.cd-wrap{height:100%}
 .cd-content .cd-reactives{display:block;height:100%;padding:24px}
 .cd-content .cd-reactives h2{margin-bottom:12px}
 .cd-content .cd-reactives h3{font-size:20px;line-height:1.35;margin:20px 0 12px}
 .cd-content .cd-reactives p,.cd-content .cd-included-item p{font-size:18px;line-height:1.5}
 .cd-content .cd-reactives p+p{margin-top:12px}
 .cd-content .cd-reactives .cd-button{margin-top:16px}
 .cd-content .cd-included-panel{gap:18px}
 .cd-content .ds-course-intake-top h2{font-size:clamp(26px,2.05vw,30px)}
 .cd-page .cd-hero-copy>p:not(.cd-eyebrow){font-size:clamp(19px,1.66015625vw,24px);line-height:1.45}
}
@media(max-width:700px){
 .cd-page--full-hero .cd-hero-grid{grid-template-columns:minmax(0,1fr);min-height:0}
 .cd-page--full-hero .cd-hero-copy{padding:65px 7% 55px}
 .cd-page--full-hero .cd-hero-photo{height:300px;min-height:300px}
 .cd-page--full-hero>.cd-content{width:90%}
}

/* Course overview is the single destination for the introduction button. */
 #course-overview{scroll-margin-top:16px}
 .cd-page .cd-hero-copy>.btn{color:#feecb6;-webkit-text-fill-color:#feecb6}
 .cd-page .cd-actions{display:block}
 .cd-page .cd-actions>.cd-button{display:flex;width:100%;min-width:0}

/* Page-owned instructor and gallery, following Mantrailing. */


.cd-page .instructor {
  background: #e9d4f6;
  padding-top: 52px;
  padding-bottom: 55px;
}

.cd-page .instructor-inner {
  max-width: 960px;
  margin: 0 auto;
}

.cd-page .instructor-heading { margin-bottom: 25px; }

.cd-page .instructor-heading .eyebrow { margin: 0; }

.cd-page .instructor-wrap {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  gap: clamp(28px, 4vw, 48px);
  align-items: start;
}

.cd-page .instructor-portrait {
  width: 220px;
  aspect-ratio: 1;
  overflow: hidden;
  border-radius: 50%;
  border: 7px solid var(--cream);
  background: var(--pink);
  box-shadow: 0 10px 26px #241d3618;
}

.cd-page .instructor-portrait img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 30%;
}

.cd-page .instructor-copy {
  min-width: 0;
  max-width: 650px;
}

.cd-page .instructor-name {
  font-size: clamp(29px, 3vw, 40px);
  line-height: 1.08;
  letter-spacing: -.035em;
  margin-bottom: 5px;
  overflow-wrap: normal;
  word-break: normal;
}

.cd-page .instructor-qualification {
  color: var(--purple);
  font-size: 16px;
  font-weight: 800;
  line-height: 1.3;
  margin-bottom: 5px;
}

.cd-page .instructor-role {
  font-size: 11px;
  font-weight: 800;
  color: var(--purple);
  letter-spacing: .045em;
  line-height: 1.4;
  margin-bottom: 20px;
}

.cd-page .instructor-bio {
  max-width: 650px;
  font-size: 16px;
  line-height: 1.53;
  text-align: left;
  hyphens: none;
}

.cd-page .instructor-bio p { margin: 0 0 13px; }

.cd-page .instructor-bio p:last-child { margin-bottom: 0; }

.cd-page .gallery-section { background: var(--pink); }

.cd-page .gallery-head { display: block; }

.cd-page .gallery-head h2 { margin-bottom: 14px; }

.cd-page .gallery-head p {
  max-width: 680px;
  font-size: 16px;
  line-height: 1.55;
  margin: 0;
}

.cd-page .gallery-slider {
  max-width: 850px;
  margin: 30px auto 0;
}

.cd-page .gallery-frame {
  position: relative;
  width: 100%;
  aspect-ratio: 16/10;
  overflow: hidden;
  border-radius: 24px;
  background: var(--pink);
}

.cd-page .gallery-frame img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.cd-page .gallery-arrow {
  position: absolute;
  z-index: 2;
  top: 50%;
  transform: translateY(-50%);
  width: 48px;
  height: 48px;
  border: 0;
  border-radius: 50%;
  background: #fff0b9ed;
  color: var(--deep);
  font-size: 28px;
  cursor: pointer;
  display: grid;
  place-items: center;
}

.cd-page .gallery-arrow.prev { left: 15px; }
.cd-page .gallery-arrow.next { right: 15px; }

.cd-page .gallery-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 15px;
  font-size: 12px;
  font-weight: 800;
}

.cd-page .gallery-dots {
  display: flex;
  justify-content: center;
  gap: 9px;
  flex: 1;
}

.cd-page .gallery-dot {
  width: 11px;
  height: 11px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #ffffff99;
  cursor: pointer;
}

.cd-page .gallery-dot[aria-current="true"] {
  background: var(--deep);
}

@media (max-width: 700px) {

  .cd-page .instructor {
    padding: 42px 6% 46px;
  }

  .cd-page .instructor-heading { margin-bottom: 19px; }

  .cd-page .instructor-wrap {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .cd-page .instructor-portrait {
    width: min(53vw, 195px);
    border-width: 6px;
    margin: 0;
  }

  .cd-page .instructor-copy { max-width: 100%; }

  .cd-page .instructor-name {
    font-size: clamp(27px, 7vw, 35px);
    line-height: 1.1;
    letter-spacing: -.045em;
    margin-bottom: 6px;
  }

  .cd-page .instructor-qualification {
    font-size: 15px;
    margin-bottom: 5px;
  }

  .cd-page .instructor-role {
    font-size: 10px;
    line-height: 1.4;
    letter-spacing: .035em;
    margin-bottom: 18px;
  }

  .cd-page .instructor-bio {
    font-size: 15px;
    line-height: 1.55;
    letter-spacing: -.005em;
    max-width: 100%;
  }

  .cd-page .instructor-bio p { margin-bottom: 12px; }

  .cd-page .gallery-head p { font-size: 15px; }

  .cd-page .gallery-frame {
    aspect-ratio: 4/5;
    border-radius: 18px;
  }

  .cd-page .gallery-arrow {
    width: 39px;
    height: 39px;
    font-size: 23px;
  }

  .cd-page .gallery-bottom { font-size: 10px; }
}
.cd-page .instructor-portrait{width:220px!important;aspect-ratio:4/5!important;border-radius:20px!important;border:0!important;box-shadow:none!important}
.cd-page .instructor-portrait img{object-position:center 30%!important}
@media(max-width:700px){.cd-page .instructor-portrait{width:min(100%,390px)!important;aspect-ratio:4/3!important;border-radius:18px!important;margin:0!important}}
.cd-page>.instructor,.cd-page>.gallery-section{padding:52px clamp(20px,6vw,90px)}
.cd-page .instructor-heading .eyebrow,.cd-page .gallery-head .eyebrow{font-size:12px;font-weight:750;letter-spacing:.07em;color:#9c4509;margin-bottom:14px}
.cd-page .instructor-copy .instructor-name{margin-bottom:5px}
.cd-page .instructor-copy .instructor-role{margin-bottom:20px}
.cd-page .instructor-bio{white-space:pre-line}
.cd-page .gallery-head h2{margin-bottom:14px}
.cd-page .gallery-dots{flex-wrap:wrap}
.cd-page .gallery-arrow:focus-visible,.cd-page .gallery-dot:focus-visible{outline:3px solid #79509f;outline-offset:4px}
@media(max-width:700px){.cd-page>.instructor,.cd-page>.gallery-section{padding:42px 6% 46px}}

/* Desktop: equal-size portraits and gallery on one aligned lilac band. */
@media(min-width:1001px){
 .cd-page.cd-page--full-hero{--cd-media-width:clamp(150px,15vw,230px);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;align-items:stretch}
 .cd-page--full-hero>.cd-hero,.cd-page--full-hero>.cd-content{grid-column:1/-1}
 .cd-page--full-hero>.instructor{grid-column:1;padding:36px 24px 36px clamp(20px,2vw,40px);min-width:0}
 .cd-page--full-hero>.gallery-section{grid-column:2;padding:36px clamp(20px,2vw,40px) 36px 24px;background:#e9d4f6;min-width:0;display:grid;grid-template-columns:var(--cd-media-width) minmax(0,1fr);grid-template-rows:auto auto auto 1fr;column-gap:24px;align-content:start;align-items:start}
 .cd-page>.instructor .instructor-inner{max-width:none}
 .cd-page>.instructor .instructor-heading{margin:0 0 20px}
 .cd-page>.instructor .instructor-heading .eyebrow,.cd-page>.gallery-section .gallery-head .eyebrow{font-size:12px;line-height:18px;margin:0}
 .cd-page>.instructor .instructor-wrap{grid-template-columns:var(--cd-media-width) minmax(0,1fr);gap:24px}
 .cd-page>.instructor .instructor-portrait{width:100%!important}
 .cd-page>.instructor .instructor-name{font-size:clamp(24px,2vw,30px)}
 .cd-page>.instructor .instructor-copy{max-width:none}
 .cd-page>.instructor .instructor-copy .instructor-role{margin-bottom:12px}
 .cd-page>.instructor .instructor-bio{font-size:16px;line-height:1.4}
 .cd-page>.gallery-section .gallery-head{display:contents}
 .cd-page>.gallery-section .gallery-head .eyebrow{grid-column:1/-1;grid-row:1;margin-bottom:20px}
 .cd-page>.gallery-section .gallery-head h2{grid-column:2;grid-row:2;font-size:clamp(24px,2vw,30px);margin:0;line-height:1.22}
 .cd-page>.gallery-section .gallery-head p{grid-column:2;grid-row:3;font-size:16px;line-height:1.4;margin:12px 0 0}
 .cd-page>.gallery-section .gallery-slider{grid-column:1;grid-row:2/span 3;width:100%;max-width:none;min-width:0;margin:0}
 .cd-page>.gallery-section .gallery-frame{aspect-ratio:4/5;border-radius:20px}
 .cd-page>.gallery-section .gallery-arrow{width:32px;height:32px;font-size:23px}
 .cd-page>.gallery-section .gallery-arrow.prev{left:8px}
 .cd-page>.gallery-section .gallery-arrow.next{right:8px}
 .cd-page>.gallery-section .gallery-bottom{flex-wrap:wrap;gap:8px;margin-top:10px;font-size:10px}
 .cd-page>.gallery-section .gallery-dots{gap:7px}
 .cd-page>.gallery-section .gallery-bottom>span:last-child{flex-basis:100%}
}
