
/* Dr Stretcher 2026 — one master design system for every page.
 * The vector logo is the original approved path asset; its dimensions are locked.
 */
.master-header,.master-footer { box-sizing:border-box; }
.master-header *, .master-footer * { box-sizing:border-box; }
.master-header { background:#fffcf7; position:relative; z-index:70; width:100%; }
.master-header-brand { display:flex; align-items:center; justify-content:center; height:84px; padding:7px 14px 5px; }
.master-logo { display:inline-flex; align-items:center; justify-content:center; gap:4px; max-width:100%; color:#111815; text-decoration:none; white-space:nowrap; }
.master-logo-date { display:inline-block; font:italic 14px/1 Georgia,'Times New Roman',serif; letter-spacing:0; flex-shrink:0; transform:translateY(3px); }
.master-logo-script { display:inline-block; position:relative; line-height:0; flex:0 1 auto; }
.master-logo-script img { display:block; width:264px; max-width:100%; height:auto; aspect-ratio:310 / 70; object-fit:contain; }
.master-logo-script sup { position:absolute; right:-3px; top:5px; font:700 9px/1 Arial,sans-serif; letter-spacing:0; }
.master-header-nav { border-top:1px solid #eee5da; border-bottom:1px solid #e6dace; background:#fffefa; }
.master-header-navigation { min-height:46px; max-width:1500px; margin:auto; padding:0 clamp(18px,3.2vw,52px); display:grid; grid-template-columns:1fr auto; align-items:center; gap:14px; }
.master-links { display:flex; justify-content:center; align-items:center; flex-wrap:nowrap; gap:clamp(13px,2.1vw,31px); padding-left:170px; }
.master-links a { font:700 11px/1.2 'DM Sans',Arial,sans-serif; text-decoration:none; letter-spacing:.04em; color:#242421; white-space:nowrap; padding:17px 0 14px; border-bottom:2px solid transparent; }
.master-links a:hover,.master-links a[aria-current=page] { color:#004f3b; border-bottom-color:#00533b; }
.master-book { display:inline-flex; align-items:center; justify-content:center; color:white; border-radius:40px; background:#004f3b; font:800 10px/1 'DM Sans',Arial,sans-serif; text-decoration:none; letter-spacing:.05em; padding:13px 15px; white-space:nowrap; }
.master-book:hover { background:#00664c; }
.master-book span { font-size:16px; padding-left:6px; }
.master-mobile-menu { display:none; }
.master-footer { background:#004532; color:#fdfaf3; width:100%; padding:32px clamp(20px,4vw,54px) 18px; font-family:'DM Sans',Arial,sans-serif; }
.master-footer-main { display:grid; grid-template-columns:1.2fr .9fr .95fr; max-width:1450px; margin:auto; gap:0; align-items:center; }
.master-footer-main>div { min-width:0; min-height:85px; padding:6px clamp(15px,2.2vw,32px); display:flex; align-items:center; justify-content:center; }
.master-footer-main>div+div { border-left:1px solid #ffffff40; }
.master-footer-logo { display:flex!important; flex-direction:column; gap:7px; align-items:center; justify-content:center; }
.master-footer .master-logo { color:white; }
.master-footer .master-logo-date { font-size:12px; }
.master-footer .master-logo-script img { filter:brightness(0) invert(1); width:226px; }
.master-footer .master-logo-script sup { color:white; font-size:8px; }
.master-footer-logo p { font:600 10px/1.5 'DM Sans',Arial,sans-serif; letter-spacing:.15em; margin:0; text-align:center; }
.master-footer-reviews { gap:13px; justify-content:center; }
.master-footer-reviews img { display:block; width:48px; height:48px; flex-shrink:0; object-fit:contain; }
.master-footer-reviews div { display:flex; flex-direction:column; gap:5px; }
.master-footer-reviews strong { font-weight:650; font-size:19px; line-height:1.25; }
.master-footer-reviews span { font-size:13px; color:#f7e7bd; }
.master-footer-action { flex-direction:column; gap:10px; }
.master-footer-action>a { border:1px solid #fff6e8; border-radius:50px; font:750 11px/1.2 'DM Sans',Arial,sans-serif; letter-spacing:.07em; text-decoration:none; color:#fff; padding:15px 17px; white-space:nowrap; }
.master-footer-action>a:hover { background:#146c52; }
.master-footer-action small { font-size:10px; letter-spacing:.1em; color:#e8dbc9; }
.master-footer-links { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; column-gap:25px; row-gap:11px; max-width:1450px; margin:23px auto 0; padding:18px 0 8px; border-top:1px solid #ffffff3d; }
.master-footer-links a { color:#fff9ef; text-decoration:none; font-weight:650; font-size:11px; padding-bottom:4px; border-bottom:1px solid transparent; }
.master-footer-links a:hover,.master-footer-links a[aria-current=page] { border-bottom-color:#f4eadb; }
.master-footer-base { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; column-gap:18px; row-gap:12px; max-width:1450px; margin:12px auto 0; padding:18px 0 0; border-top:1px solid #ffffff35; font-size:10px; letter-spacing:.012em; color:#e0e9e1; }
.master-footer-base>div { display:flex; gap:16px; flex-wrap:wrap; }
.master-footer-base a { text-decoration:none; color:#f6fcf5; }
.master-footer-base a:hover { text-decoration:underline; }
.master-logo:focus-visible,.master-links a:focus-visible,.master-footer a:focus-visible,.master-mobile-menu summary:focus-visible { outline:2px solid #cbab76; outline-offset:4px; }
/* Use the homepage's editorial serif/sans scale across the detail pages. */
.premium-detail .sub-hero { background:#fbf7f0; }
.premium-detail .hero-copy h1,.premium-detail h2,.premium-detail .bottom-cta h2 { font-family:'Playfair Display',Georgia,serif; font-style:italic; letter-spacing:-.045em; }
.premium-detail .hero-photo { min-height:440px; overflow:hidden; display:flex; align-items:center; justify-content:center; }
.premium-detail .hero-photo img { width:100%; height:100%; max-height:690px; object-fit:contain!important; object-position:center; image-rendering:auto; }
.premium-detail .hero-copy,.premium-detail .hero-lede,.premium-detail .section p { text-wrap:pretty; }
.premium-detail .rounded-image { width:100%; height:auto; max-height:620px; object-fit:contain!important; background:#f4e7d7; }
.premium-detail .team-card { overflow:hidden; display:flex; flex-direction:column; }
.premium-detail .team-card img.master-team-image { width:100%; height:300px; aspect-ratio:1/1!important; object-fit:cover!important; object-position:center 18%; display:block; background:#e9d7c2; }
.premium-detail .team-card div { flex:1; }
.master-pricing-visuals { padding-top:8px!important; }
.master-editorial-intro { text-align:center; max-width:700px; margin:0 auto 24px; }
.master-editorial-intro h3 { font:italic 500 clamp(27px,3vw,44px)/1.16 'Playfair Display',serif; margin:8px auto; }
.master-editorial-intro p { font-size:15px; line-height:1.6; color:#5b5b55; }
.master-image-triptych { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.master-image-triptych figure { margin:0; border:1px solid #e5d7c8; background:#fcf5ed; border-radius:16px; overflow:hidden; }
.master-image-triptych img { display:block; width:100%; height:260px; object-fit:cover; object-position:center 17%; }
.master-image-triptych figcaption { display:flex; flex-direction:column; text-align:center; gap:5px; padding:14px 11px 18px; }
.master-image-triptych figcaption strong { font:italic 600 23px/1.2 'Playfair Display',Georgia,serif; }
.master-image-triptych figcaption span { font:400 13px/1.5 'DM Sans',Arial,sans-serif; color:#5f5b55; }
.master-step-image { margin:-1px -1px 16px; border-radius:12px 12px 0 0; overflow:hidden; background:#f1dcc5; }
.master-step-image img { display:block; width:100%; height:235px; object-fit:cover; object-position:center 38%; }
.steps-grid .step-card { overflow:hidden; padding-top:0; }
.master-neighbourhood-scenes { padding-top:28px!important; }
.master-area-gallery { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:15px; }
.master-area-gallery article { background:#fffaf2; border:1px solid #e8dccc; border-radius:15px; overflow:hidden; text-align:center; }
.master-area-gallery img { display:block; width:100%; height:auto; aspect-ratio:1200/760; object-fit:cover; }
.master-area-gallery h3 { font:italic 600 clamp(17px,1.75vw,25px)/1.2 'Playfair Display',Georgia,serif; margin:15px 8px 5px; }
.master-area-gallery p { font:500 12px/1.5 'DM Sans',Arial,sans-serif; letter-spacing:.04em; margin:0 8px 18px; color:#4c665d; }
@media(max-width:1130px){.master-links{padding-left:0;gap:14px}.master-header-navigation{padding:0 23px}.master-links a{font-size:10px}.master-book{font-size:9px;padding:11px 12px}.master-footer .master-logo-script img{width:190px}.master-footer-main>div{padding:5px 12px}.master-footer-logo p{font-size:8px}.master-footer-reviews strong{font-size:16px}}
@media(max-width:850px){
 .master-header-brand{height:76px}.master-logo-script img{width:237px}
 .master-header-navigation{display:block;min-height:0;padding:0 18px}
 .master-links,.master-book{display:none}
 .master-mobile-menu{display:block;position:relative}
 .master-mobile-menu summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;list-style:none;min-height:46px;font:750 11px/1.3 'DM Sans',Arial,sans-serif;letter-spacing:.1em;color:#004f3b}
 .master-mobile-menu summary::-webkit-details-marker{display:none}
 .master-menu-icon{font-size:20px;color:#17261e;line-height:1}
 .master-mobile-menu nav{position:absolute;top:100%;left:-18px;right:-18px;display:flex;flex-direction:column;padding:11px 20px 19px;background:#fffefa;box-shadow:0 16px 25px #0003;border:1px solid #e3d7c6;z-index:110}
 .master-mobile-menu nav a{font:650 13px/1.4 'DM Sans',Arial,sans-serif;color:#27332b;padding:12px 8px;text-decoration:none;border-bottom:1px solid #eee5d9}
 .master-mobile-menu nav a[aria-current=page]{color:#004f3b;background:#f1f7f0}
 .master-mobile-menu nav .master-menu-book{border:0;border-radius:40px;color:white;background:#00503b;text-align:center;padding:15px;margin-top:14px}
 .master-footer-main{grid-template-columns:1fr 1fr;row-gap:12px}
 .master-footer-main>div:nth-child(3){grid-column:1/-1;border-left:none;border-top:1px solid #ffffff40;padding-top:15px}
 .master-area-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}
 .master-step-image img{height:185px}
 .master-image-triptych img{height:210px}
}
@media(max-width:620px){
 .master-header-brand{height:66px;padding:5px 8px 2px}.master-logo{gap:3px}.master-logo-date{font-size:10px;transform:translateY(2px)}.master-logo-script img{width:min(66vw,205px)}.master-logo-script sup{font-size:7px;top:3px}
 .master-footer{padding:24px 18px 20px}.master-footer-main{display:flex;flex-direction:column;gap:0}
 .master-footer-main>div{width:100%;padding:16px 0!important;min-height:auto;border:none!important}
 .master-footer-main>div+div{border-top:1px solid #ffffff35!important}
 .master-footer .master-logo-script img{width:min(57vw,212px)}.master-footer .master-logo-date{font-size:10px}
 .master-footer-reviews img{height:42px;width:42px}.master-footer-reviews strong{font-size:19px}
 .master-footer-links{gap:12px 21px;margin-top:12px}.master-footer-base{justify-content:center;text-align:center;flex-direction:column}
 .master-image-triptych{grid-template-columns:1fr}.master-image-triptych img{height:310px}
 .master-area-gallery{grid-template-columns:1fr 1fr;gap:10px}.master-area-gallery h3{font-size:16px}.master-area-gallery p{font-size:10px}
 .premium-detail .team-card img.master-team-image{height:285px}.master-step-image img{height:230px}
 .premium-detail .hero-photo{min-height:240px}
}
@media(max-width:375px){.master-logo-script img{width:190px}.master-logo-date{font-size:9px}.master-area-gallery{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.master-header *,.master-footer *{scroll-behavior:auto!important;transition:none!important}}
