:root{--ink:#17211d;--forest:#1f3028;--forest2:#2e4638;--cream:#f4f0e7;--paper:#fbfaf6;--sand:#d7c9ad;--brass:#9a7342;--muted:#67736d;--line:#ddd7ca;--white:#fff;--shadow:0 20px 50px rgba(20,30,25,.09)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}h1,h2,h3{font-family:Georgia,"Times New Roman",serif;line-height:1.08;margin:0 0 .65em;font-weight:600;letter-spacing:-.02em}h1{font-size:clamp(2.7rem,6vw,5.7rem);max-width:13ch}h2{font-size:clamp(2rem,4vw,3.5rem)}h3{font-size:1.45rem}p{margin:.4em 0 1.2em}a{color:inherit}.site-header{height:86px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(20px,4vw,70px);position:sticky;top:0;z-index:50;background:rgba(251,250,246,.94);backdrop-filter:blur(12px);border-bottom:1px solid rgba(40,50,45,.08)}.brand{display:flex;gap:12px;align-items:center;text-decoration:none}.brand-mark{width:42px;height:42px;border:1px solid var(--brass);display:grid;place-items:center;border-radius:50%;font-family:Georgia,serif;font-size:14px;letter-spacing:.08em}.brand strong{display:block;font-family:Georgia,serif;font-size:19px;letter-spacing:.02em}.brand small{display:block;color:var(--muted);font-size:10px;letter-spacing:.12em;text-transform:uppercase}.nav{display:flex;align-items:center;gap:26px}.nav a{text-decoration:none;font-size:14px}.nav a.active{color:var(--brass)}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 22px;border:1px solid var(--forest);background:var(--forest);color:white;text-decoration:none;border-radius:2px;font-weight:600}.button:hover{background:var(--forest2)}.button-secondary{background:transparent;color:var(--forest)}.button-small{min-height:40px;padding:0 17px}.menu-toggle{display:none;border:1px solid var(--line);background:transparent;padding:10px 14px}.hero{min-height:calc(100vh - 86px);display:grid;grid-template-columns:1.05fr .95fr}.hero-copy{padding:clamp(60px,8vw,130px) clamp(25px,7vw,120px);display:flex;flex-direction:column;justify-content:center}.eyebrow{text-transform:uppercase;letter-spacing:.17em;font-size:11px;color:var(--brass);font-weight:700;margin-bottom:22px}.lead{font-size:clamp(1.05rem,1.7vw,1.35rem);max-width:650px;color:#44514b}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}.hero-visual{min-height:620px;background:var(--cream);border-left:1px solid var(--line);padding:28px;display:grid}.photo-placeholder{border:1px dashed #b7aa92;background:linear-gradient(135deg,#eee8dc,#f7f3eb);min-height:240px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#98886d;text-transform:uppercase;letter-spacing:.16em}.photo-placeholder span{font-family:Georgia,serif;font-size:18px}.photo-placeholder small{font-size:9px;margin-top:6px}.hero-visual .photo-placeholder{min-height:100%;border-radius:180px 180px 12px 12px}.section{padding:clamp(70px,9vw,140px) clamp(22px,7vw,110px)}.section-dark{background:var(--forest);color:#f9f6ef}.section-cream{background:var(--cream)}.section-head{display:flex;justify-content:space-between;gap:35px;align-items:end;margin-bottom:45px}.section-head p{max-width:620px;color:var(--muted)}.section-dark .section-head p{color:#cbd3ce}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:26px}.value-card{border-top:1px solid var(--sand);padding:28px 8px 0}.value-card .number{color:var(--brass);font-size:12px;letter-spacing:.14em}.value-card h3{margin-top:18px}.card{background:white;border:1px solid var(--line);box-shadow:0 8px 28px rgba(30,35,31,.03)}.card-media{aspect-ratio:4/3;overflow:hidden;background:var(--cream)}.card-media img{width:100%;height:100%;object-fit:cover}.card-media .photo-placeholder{height:100%;min-height:0}.card-body{padding:26px}.meta{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--brass);font-weight:700}.text-link{font-weight:700;text-decoration:none;border-bottom:1px solid var(--brass);padding-bottom:2px}.latest-litter{display:grid;grid-template-columns:1fr 1fr;gap:0;background:white;border:1px solid var(--line)}.latest-litter .litter-photo{min-height:520px}.latest-litter .litter-copy{padding:clamp(35px,5vw,80px);display:flex;flex-direction:column;justify-content:center}.gallery-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:14px}.gallery-item{grid-column:span 4;aspect-ratio:1/1;overflow:hidden}.gallery-item:nth-child(5n+1),.gallery-item:nth-child(5n+4){grid-column:span 6;aspect-ratio:4/3}.gallery-item img{width:100%;height:100%;object-fit:cover}.gallery-item .photo-placeholder{height:100%;min-height:0}.page-hero{padding:90px clamp(22px,7vw,110px) 65px;background:var(--cream);border-bottom:1px solid var(--line)}.page-hero h1{font-size:clamp(2.6rem,5vw,4.8rem)}.page-hero p{max-width:760px;font-size:1.18rem;color:#4d5953}.profile-grid,.litter-grid,.article-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.profile-card,.litter-card,.article-card{background:white;border:1px solid var(--line)}.profile-card .card-media,.litter-card .card-media{aspect-ratio:4/3}.dog-detail,.litter-parent-grid{display:grid;grid-template-columns:1fr 1fr;gap:35px}.dog-photo{min-height:620px}.detail-list{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:28px 0}.detail-list div{border-top:1px solid var(--line);padding-top:10px}.detail-list small{display:block;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.parent-card{background:white;border:1px solid var(--line)}.parent-card .card-media{aspect-ratio:4/3}.puppy-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.puppy-card{background:white;border:1px solid var(--line)}.puppy-card .card-media{aspect-ratio:1/1}.rich-content{max-width:820px;margin:0 auto;font-size:1.08rem}.rich-content h2{margin-top:1.5em}.rich-content h3{margin-top:1.4em}.rich-content blockquote{border-left:3px solid var(--brass);margin:2em 0;padding:5px 0 5px 24px;color:#536059}.source-box{margin-top:45px;padding:24px;background:var(--cream);border:1px solid var(--line);font-size:.92rem}.contact-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:60px}.form{display:grid;gap:16px}.form label{font-size:13px;font-weight:700}.form input,.form select,.form textarea{width:100%;margin-top:6px;padding:14px 15px;border:1px solid #cfc9bc;background:white;font:inherit}.form textarea{min-height:150px;resize:vertical}.notice{padding:16px 18px;background:#edf4ef;border:1px solid #bdd0c2}.notice.error{background:#f9ece9;border-color:#e3beb5}.site-footer{background:#131c18;color:#e9eee9;padding:60px clamp(22px,7vw,110px) 28px;display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px}.site-footer>div{display:flex;flex-direction:column;gap:8px}.site-footer a{text-decoration:none;color:#dbe3dd}.footer-brand{font-family:Georgia,serif;font-size:28px}.site-footer p,.site-footer span{color:#aebbb3}.footer-bottom{grid-column:1/-1;border-top:1px solid #2c3932;padding-top:24px;margin-top:25px;color:#8f9d95;font-size:13px}.empty-state{padding:45px;border:1px dashed #b8ad99;background:#f7f3eb;text-align:center}.pill{display:inline-block;border:1px solid var(--sand);padding:5px 9px;font-size:10px;text-transform:uppercase;letter-spacing:.1em}.spacer{height:20px}@media(max-width:900px){.menu-toggle{display:block}.nav{position:absolute;left:0;right:0;top:86px;background:var(--paper);padding:24px;display:none;flex-direction:column;align-items:flex-start;border-bottom:1px solid var(--line)}.nav.open{display:flex}.hero{grid-template-columns:1fr}.hero-visual{min-height:470px;border-left:0;border-top:1px solid var(--line)}.grid-3,.profile-grid,.litter-grid,.article-grid{grid-template-columns:1fr 1fr}.latest-litter,.dog-detail,.litter-parent-grid,.contact-layout{grid-template-columns:1fr}.puppy-grid{grid-template-columns:repeat(2,1fr)}.site-footer{grid-template-columns:1fr 1fr}.site-footer>div:first-child{grid-column:1/-1}}@media(max-width:600px){.site-header{height:74px}.nav{top:74px}.brand small{display:none}.section-head{display:block}.grid-3,.grid-2,.profile-grid,.litter-grid,.article-grid{grid-template-columns:1fr}.gallery-grid{grid-template-columns:1fr 1fr}.gallery-item,.gallery-item:nth-child(5n+1),.gallery-item:nth-child(5n+4){grid-column:span 1;aspect-ratio:1/1}.puppy-grid{grid-template-columns:1fr 1fr}.site-footer{grid-template-columns:1fr}.site-footer>div:first-child{grid-column:auto}.hero-copy{padding-top:70px}.hero-visual{min-height:390px}.dog-photo{min-height:430px}}

/* TopGSD hero layout + image containment patch v2 - 2026-09-19 */
html, body {
  max-width: 100%;
  overflow-x: hidden;
}

.hero {
  width: 100%;
  max-width: 100vw;
  min-height: 0;
  height: clamp(620px, calc(100vh - 86px), 820px);
  grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
  overflow: hidden;
}

.hero-copy,
.hero-visual {
  min-width: 0;
  max-width: 100%;
}

.hero-visual {
  min-height: 0;
  height: 100%;
  overflow: hidden;
  display: flex;
  align-items: stretch;
  justify-content: stretch;
}

.hero-visual > img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: 100%;
  max-height: 100%;
  min-width: 0;
  min-height: 0;
  flex: 1 1 auto;
  object-fit: cover;
  object-position: center 35%;
  border-radius: 180px 180px 12px 12px;
}

@media (max-width: 900px) {
  .hero {
    height: auto;
    min-height: 0;
    grid-template-columns: minmax(0, 1fr);
    overflow: hidden;
  }

  .hero-visual {
    height: clamp(430px, 68vw, 620px);
    min-height: 0;
  }

  .hero-visual > img {
    object-position: center 32%;
  }
}

@media (max-width: 600px) {
  .hero-visual {
    height: clamp(360px, 100vw, 500px);
    min-height: 0;
    padding: 18px;
  }

  .hero-visual > img {
    object-position: center 30%;
    border-radius: 110px 110px 10px 10px;
  }
}

/* TopGSD hero frame + responsive height patch v3 - 2026-09-19 */
@media (min-width: 901px) {
  .hero {
    height: auto;
    min-height: calc(100vh - 86px);
    grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
    overflow: visible;
    align-items: stretch;
  }

  .hero-copy {
    min-width: 0;
    padding-top: clamp(72px, 6vw, 105px);
    padding-bottom: clamp(72px, 6vw, 105px);
  }

  .hero-visual {
    min-width: 0;
    min-height: 720px;
    height: auto;
    padding: 28px;
    display: grid;
    overflow: hidden;
    align-items: stretch;
  }

  .hero-visual > img {
    width: 100%;
    height: 100%;
    min-width: 0;
    min-height: 0;
    max-width: none;
    max-height: none;
    object-fit: cover;
    object-position: center 38%;
    border: 1px solid rgba(154, 115, 66, .22);
    border-radius: 160px 160px 22px 22px;
    display: block;
  }
}

@media (max-width: 900px) {
  .hero {
    overflow: visible;
  }

  .hero-visual {
    padding: 24px;
    display: grid;
    overflow: hidden;
  }

  .hero-visual > img {
    width: 100%;
    height: 100%;
    min-width: 0;
    min-height: 0;
    max-width: none;
    max-height: none;
    object-fit: cover;
    object-position: center 36%;
    border: 1px solid rgba(154, 115, 66, .22);
    border-radius: 120px 120px 18px 18px;
    display: block;
  }
}

@media (max-width: 600px) {
  .hero-visual {
    padding: 16px;
  }

  .hero-visual > img {
    border-radius: 82px 82px 14px 14px;
  }
}

/* TopGSD gallery lightbox v4 - 2026-09-19 */
.gallery-item img,
.puppy-card .card-media img {
  cursor: zoom-in;
}

body.lightbox-open {
  overflow: hidden;
}

.topgsd-lightbox {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: grid;
  grid-template-rows: 1fr auto;
  align-items: center;
  justify-items: center;
  padding: 28px 72px 22px;
  background: rgba(10, 15, 12, .94);
  opacity: 0;
  visibility: hidden;
  transition: opacity .18s ease, visibility .18s ease;
}

.topgsd-lightbox.is-open {
  opacity: 1;
  visibility: visible;
}

.topgsd-lightbox__image-wrap {
  min-width: 0;
  min-height: 0;
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
}

.topgsd-lightbox__image {
  display: block;
  max-width: min(94vw, 1600px);
  max-height: calc(100vh - 110px);
  width: auto;
  height: auto;
  object-fit: contain;
  box-shadow: 0 24px 70px rgba(0,0,0,.42);
}

.topgsd-lightbox__caption {
  min-height: 26px;
  margin-top: 12px;
  color: #f4f0e7;
  text-align: center;
  font-size: 14px;
  line-height: 1.4;
}

.topgsd-lightbox__close,
.topgsd-lightbox__prev,
.topgsd-lightbox__next {
  position: absolute;
  border: 1px solid rgba(255,255,255,.28);
  background: rgba(20,30,25,.58);
  color: #fff;
  cursor: pointer;
  display: grid;
  place-items: center;
  transition: background .15s ease, border-color .15s ease;
}

.topgsd-lightbox__close:hover,
.topgsd-lightbox__prev:hover,
.topgsd-lightbox__next:hover {
  background: rgba(35,50,42,.86);
  border-color: rgba(255,255,255,.5);
}

.topgsd-lightbox__close {
  top: 18px;
  right: 18px;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  font-size: 27px;
  line-height: 1;
}

.topgsd-lightbox__prev,
.topgsd-lightbox__next {
  top: 50%;
  width: 48px;
  height: 64px;
  transform: translateY(-50%);
  font-size: 31px;
}

.topgsd-lightbox__prev { left: 16px; }
.topgsd-lightbox__next { right: 16px; }

.topgsd-lightbox__prev[hidden],
.topgsd-lightbox__next[hidden] {
  display: none;
}

@media (max-width: 700px) {
  .topgsd-lightbox {
    padding: 62px 12px 18px;
  }

  .topgsd-lightbox__image {
    max-width: 96vw;
    max-height: calc(100vh - 130px);
  }

  .topgsd-lightbox__prev,
  .topgsd-lightbox__next {
    width: 42px;
    height: 54px;
    background: rgba(20,30,25,.72);
  }

  .topgsd-lightbox__prev { left: 8px; }
  .topgsd-lightbox__next { right: 8px; }
}

/* TopGSD Our Dogs image containment patch v5 - 2026-09-19 */

/* Prevent dog cards from being widened by large source images. */
.profile-grid,
.profile-card,
.profile-card .card-media,
.dog-detail,
.dog-photo {
  min-width: 0;
}

.profile-card {
  overflow: hidden;
}

.profile-card .card-media {
  width: 100%;
  aspect-ratio: 4 / 3;
  min-height: 0;
  overflow: hidden;
  background: var(--cream);
}

.profile-card .card-media > img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 30%;
}

/* Individual dog profile: keep the portrait inside a predictable frame. */
.dog-detail {
  align-items: start;
}

.dog-photo {
  width: 100%;
  aspect-ratio: 4 / 5;
  min-height: 0;
  max-height: 780px;
  overflow: hidden;
  background: var(--cream);
  border: 1px solid var(--line);
}

.dog-photo > img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 28%;
}

.dog-photo > .photo-placeholder {
  width: 100%;
  height: 100%;
  min-height: 0;
}

@media (max-width: 900px) {
  .dog-photo {
    aspect-ratio: 4 / 3;
    max-height: 680px;
  }

  .dog-photo > img {
    object-position: center 25%;
  }
}

@media (max-width: 600px) {
  .profile-card .card-media {
    aspect-ratio: 4 / 3;
  }

  .dog-photo {
    aspect-ratio: 4 / 5;
    max-height: none;
  }
}


/* TopGSD universal photo watermark + favicon support v7 - 2026-09-19 */
/* EASY WATERMARK SETTINGS — edit only these values */
:root {
  --topgsd-wm-right: 34px;      /* distance from right edge */
  --topgsd-wm-bottom: 14px;      /* distance from bottom edge */
  --topgsd-wm-size: 14px;       /* text size */
  --topgsd-wm-bg-alpha: .12;    /* background opacity: 0 to 1 */
  --topgsd-wm-text-alpha: .48;  /* text opacity: 0 to 1 */
}
.topgsd-photo-frame {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
}

.topgsd-photo-frame > img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  object-fit: cover;
}

.topgsd-watermark,
.topgsd-lightbox__watermark {
  position: absolute;
  right: var(--topgsd-wm-right);
  bottom: var(--topgsd-wm-bottom);
  z-index: 3;
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 3px 8px 4px;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 3px;
  background: rgb(13 22 18 / var(--topgsd-wm-bg-alpha));
  color: rgb(255 255 255 / var(--topgsd-wm-text-alpha));
  font: 600 var(--topgsd-wm-size)/1.2 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  letter-spacing: .045em;
  text-transform: lowercase;
  text-shadow: 0 1px 2px rgba(0,0,0,.35);
  pointer-events: none;
  user-select: none;
  -webkit-user-select: none;
}

/* Keep all existing image layouts intact now that real images have a wrapper. */
.card-media > .topgsd-photo-frame,
.gallery-item > .topgsd-photo-frame,
.dog-photo > .topgsd-photo-frame,
.litter-photo > .topgsd-photo-frame {
  width: 100%;
  height: 100%;
}

.card-media > .topgsd-photo-frame > img,
.gallery-item > .topgsd-photo-frame > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Hero frame: preserve the rounded framed layout from v3. */
@media (min-width: 901px) {
  .hero-visual > .topgsd-photo-frame {
    width: 100%;
    height: 100%;
    min-width: 0;
    min-height: 0;
    border: 1px solid rgba(154, 115, 66, .22);
    border-radius: 160px 160px 22px 22px;
  }

  .hero-visual > .topgsd-photo-frame > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 38%;
  }
}

@media (max-width: 900px) {
  .hero-visual > .topgsd-photo-frame {
    width: 100%;
    height: 100%;
    min-width: 0;
    min-height: 0;
    border: 1px solid rgba(154, 115, 66, .22);
    border-radius: 120px 120px 18px 18px;
  }

  .hero-visual > .topgsd-photo-frame > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 36%;
  }
}

@media (max-width: 600px) {
  .hero-visual > .topgsd-photo-frame {
    border-radius: 82px 82px 14px 14px;
  }

  .topgsd-watermark {
    min-height: 21px;
    padding: 2px 6px 3px;
  }
}

/* Our Dogs: retain v5 crop positions with the new wrapper. */
.profile-card .card-media > .topgsd-photo-frame > img {
  object-position: center 30%;
}

.dog-photo > .topgsd-photo-frame > img {
  object-position: center 28%;
}

@media (max-width: 900px) {
  .dog-photo > .topgsd-photo-frame > img {
    object-position: center 25%;
  }
}

/* Homepage current-litter image: fill its panel consistently. */
.latest-litter .litter-photo {
  overflow: hidden;
}

.latest-litter .litter-photo > .topgsd-photo-frame {
  min-height: 520px;
}

.latest-litter .litter-photo > .topgsd-photo-frame > img {
  object-position: center 35%;
}

/* Lightbox watermark is attached to the actual displayed photo, not to the viewport. */
.topgsd-lightbox__photo {
  position: relative;
  display: inline-block;
  max-width: min(94vw, 1600px);
  max-height: calc(100vh - 110px);
  line-height: 0;
}

.topgsd-lightbox__photo .topgsd-lightbox__image {
  display: block;
  max-width: min(94vw, 1600px);
  max-height: calc(100vh - 110px);
  width: auto;
  height: auto;
}

.topgsd-lightbox__watermark {
  right: var(--topgsd-wm-right);
  bottom: var(--topgsd-wm-bottom);
  min-height: 27px;
  padding: 4px 9px;
  font-size: var(--topgsd-wm-size);
  line-height: 1.2;
}

@media (max-width: 700px) {
  .topgsd-lightbox__photo,
  .topgsd-lightbox__photo .topgsd-lightbox__image {
    max-width: 96vw;
    max-height: calc(100vh - 130px);
  }

  .topgsd-lightbox__watermark {
    min-height: 22px;
    padding: 3px 7px;
  }
}
