/* Shop only. Existing global typography, colours, masthead and footer are retained. */
.shop-page main>section{padding:clamp(70px,7vw,110px) clamp(22px,6vw,95px)}
.shop-page .shop-brand{text-align:center;padding-block:60px}
.shop-logo{width:min(100%,430px);height:auto;margin:0 auto 28px}
.shop-brand .kicker{margin:0}
.shop-introduction h1{max-width:1000px}
.shop-intro-body{max-width:620px;font-size:1.1rem;margin:32px 0 0}
.shop-routing{display:grid;grid-template-columns:1fr 1fr;gap:8vw}
.shop-routing>div{max-width:510px}
.shop-routing h2{font-family:var(--sans);line-height:1.5;letter-spacing:.18em}
.shop-routing p{margin-bottom:26px}
.shop-composition{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:clamp(40px,6vw,90px);row-gap:28px;align-items:start}
.shop-composition>header{grid-column:1;grid-row:1;align-self:end}
.shop-composition>figure{grid-column:2;grid-row:1 / span 2;align-self:center}
.shop-composition>.shop-category-body{grid-column:1;grid-row:2}
.shop-composition h2{font-size:clamp(2.7rem,4.8vw,5.6rem);line-height:1.04}
.shop-composition img{width:100%;height:auto;object-fit:contain}
.shop-category-body>p{max-width:560px;font-size:1.05rem;margin:0}
.shop-puppies .shop-composition>header,.shop-puppies .shop-composition>.shop-category-body{grid-column:2}
.shop-puppies .shop-composition>figure{grid-column:1;max-width:510px}
.shop-service-menu{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:64px;border-top:1px solid rgba(242,236,223,.3)}
.shop-service{display:flex;flex-direction:column;align-items:flex-start}
.shop-service-menu .shop-service{padding:32px 30px 0;border-right:1px solid rgba(242,236,223,.3)}
.shop-service-menu .shop-service:first-child{padding-left:0}
.shop-service-menu .shop-service:last-child{padding-right:0;border:0}
.shop-service h3{font:600 .88rem/1.5 var(--sans);letter-spacing:.1em;margin:0 0 12px}
.service-meta{font-size:.9rem;margin-bottom:22px}
.service-description{margin:0 0 25px;max-width:500px}
.shop-service .service-price{font:500 2.7rem/1.1 var(--serif);margin:auto 0 22px}
.purchase-pending{background:none;color:inherit;font-family:var(--sans);border:0;border-bottom:1px solid;padding:0 0 7px;opacity:1;cursor:default;border-radius:0}
.shop-category-body .shop-service{margin-top:36px;padding-top:28px;border-top:1px solid currentColor}
.shop-closing{text-align:center}
.shop-closing h2{font-size:clamp(3rem,5.6vw,6.5rem)}
.shop-closing>p:not(.kicker){max-width:610px;margin:28px auto 32px}
@media(min-width:901px) and (max-width:1200px){
 .shop-composition{column-gap:40px}
 .shop-composition h2{font-size:clamp(2.7rem,4.5vw,3.4rem)}
 .shop-service-menu .shop-service{padding-inline:22px}
}
@media(min-width:601px) and (max-width:900px){
 .shop-page main>section{padding:64px 6vw}
 .shop-page .shop-brand{padding-block:48px}
 .shop-routing{gap:40px}
 .shop-composition{grid-template-columns:1fr;gap:28px}
 .shop-composition>header,.shop-composition>figure,.shop-composition>.shop-category-body,.shop-puppies .shop-composition>header,.shop-puppies .shop-composition>figure,.shop-puppies .shop-composition>.shop-category-body{grid-column:1;grid-row:auto}
 .shop-composition h2{font-size:clamp(3.2rem,6.8vw,4.3rem)}
 .shop-composition>figure{width:100%;max-width:560px}
 .shop-puppies .shop-composition>figure{max-width:480px}
 .shop-service-menu{grid-template-columns:1fr;margin-top:38px}
 .shop-service-menu .shop-service,.shop-service-menu .shop-service:first-child,.shop-service-menu .shop-service:last-child{padding:30px 0;border-right:0;border-bottom:1px solid rgba(242,236,223,.3)}
}
@media(max-width:600px){
 .shop-page main>section{padding:52px 20px}
 .shop-page .shop-brand{padding-block:36px}
 .shop-logo{width:min(100%,330px);margin-bottom:24px}
 .shop-introduction h1{font-size:clamp(3.3rem,15vw,4.8rem)}
 .shop-routing{grid-template-columns:1fr;gap:36px}
 .shop-routing>div+div{padding-top:32px;border-top:1px solid var(--line)}
 .shop-composition{grid-template-columns:1fr;gap:24px}
 .shop-composition>header,.shop-composition>figure,.shop-composition>.shop-category-body,.shop-puppies .shop-composition>header,.shop-puppies .shop-composition>figure,.shop-puppies .shop-composition>.shop-category-body{grid-column:1;grid-row:auto}
 .shop-composition h2{font-size:clamp(2.5rem,11vw,3.4rem)}
 .shop-composition .kicker{margin-bottom:20px}
 .shop-service-menu{grid-template-columns:1fr;margin-top:36px}
 .shop-service-menu .shop-service,.shop-service-menu .shop-service:first-child,.shop-service-menu .shop-service:last-child{padding:30px 0;border-right:0;border-bottom:1px solid rgba(242,236,223,.3)}
 .shop-service h3{max-width:300px}
 .shop-closing h2{font-size:clamp(2.9rem,12vw,3.6rem)}
}

/* Draft 2: integrated opening hero only. */
.shop-hero{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:clamp(40px,6vw,90px);align-items:center}
.shop-hero-copy{grid-column:2;grid-row:1;min-width:0}
.shop-hero-brand{grid-column:1;grid-row:1;text-align:center}
.shop-hero-brand .shop-logo{width:100%;max-width:430px;margin:0 auto 24px}
.shop-hero-brand .kicker{margin:0;color:var(--ink)}
.shop-hero h1{font-size:clamp(3.8rem,6.4vw,7rem)}
.shop-hero-routing{display:grid;gap:28px;margin-top:32px;color:var(--ink)}
.shop-hero-routing .kicker{margin-bottom:12px}
.shop-category-links{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;font-size:.82rem;font-weight:600}
.shop-category-links a{text-decoration:none;border-bottom:1px solid;padding-bottom:5px;white-space:nowrap}
.shop-hero .shop-intro-body{margin-top:26px}
@media(min-width:601px) and (max-width:900px){
 .shop-hero{grid-template-columns:1fr;gap:38px}
 .shop-hero-copy,.shop-hero-brand{grid-column:1;grid-row:auto}
 .shop-hero-brand .shop-logo{max-width:300px}
 .shop-hero h1{font-size:clamp(3.8rem,9vw,5.5rem)}
}
@media(max-width:600px){
 .shop-hero{grid-template-columns:1fr;gap:36px}
 .shop-hero-copy,.shop-hero-brand{grid-column:1;grid-row:auto}
 .shop-hero h1{font-size:clamp(3.3rem,15vw,4.8rem)}
 .shop-hero-brand .shop-logo{max-width:250px;margin-bottom:18px}
 .shop-hero-routing{gap:26px;margin-top:28px}
 .shop-category-links{gap:10px 9px;font-size:.78rem}
 .shop-hero-routing .arrow-link{font-size:.78rem}
}

/* Final hero: one left-aligned content block. */
.shop-hero{display:block}
.shop-hero-copy{max-width:700px}
