/*
Theme Name: Davis Dog Training
Description: An original, photo-led theme for Jeremy Davis. Editable page content with a lightweight responsive design.
Version: 1.0.0
Author: David Morrison
Text Domain: davis-dog-training
*/
:root{--ink:#172c31;--muted:#52666b;--blue:#c4e7f5;--yellow:#f8edb0;--paper:#fcfdf9;--accent:#26758b;--line:#dce5e3}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:17px;line-height:1.6}a{color:inherit}img{display:block;max-width:100%;height:auto}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #26758b;outline-offset:6px}.skip{position:absolute;top:-100px;left:20px;background:white;padding:12px;z-index:100}.skip:focus{top:10px}.wrap{width:min(1200px,calc(100% - 64px));margin:auto}.site-header{padding:24px 0;position:relative;z-index:5;background:#fcfdf9}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:30px}.brand{text-decoration:none;display:flex;align-items:center;gap:12px;font-size:21px;font-weight:800;line-height:1.05;letter-spacing:-.7px}.brand small{display:block;font-size:10px;letter-spacing:3px;margin-top:6px}.brand-mark{width:43px;height:43px;border-radius:50%;background:var(--ink);color:var(--yellow);display:grid;place-items:center;font-size:25px}.nav{display:flex;align-items:center;gap:32px}.nav a{text-decoration:none;font-size:14px}.nav a[aria-current=page]{text-decoration:underline;text-underline-offset:6px}.button,.wp-element-button{display:inline-flex;align-items:center;justify-content:center;gap:26px;padding:15px 25px;background:var(--ink);color:#fff;border-radius:999px;text-decoration:none;font-weight:600;font-size:14px;border:1px solid var(--ink);transition:transform .2s,background .2s}.button:hover{background:#31535c;transform:translateY(-2px)}.button.light{background:white;color:var(--ink);border-color:white}.text-link{text-underline-offset:6px;font-size:14px;font-weight:600}.menu-toggle{display:none}.hero{background:radial-gradient(ellipse at 86% 30%,#f9ecaa 0,transparent 50%),radial-gradient(ellipse at 15% 35%,#b3ddf5 0,transparent 65%),#e9f4ec;padding:72px 0 54px;overflow:hidden}.hero-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:65px;align-items:center}.eyebrow{text-transform:uppercase;letter-spacing:2.2px;font-size:11px;font-weight:700;display:block;margin:0 0 22px}.pill{display:inline-block;border:1px solid #ffffffb0;border-radius:99px;padding:6px 13px;background:#ffffff8a;font-size:11px;font-weight:600;margin-bottom:27px}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(50px,5.6vw,78px);line-height:1.02;font-weight:500;letter-spacing:-4px;margin-bottom:27px}h1 em,h2 em{font-family:Georgia,serif;font-weight:400}h1 .colored,h2 .colored{color:var(--accent)}.hero-copy>p{max-width:400px;color:#3f585e;font-size:16px;line-height:1.8;margin-bottom:28px}.actions{display:flex;gap:24px;align-items:center;flex-wrap:wrap}.local-note{display:flex;align-items:center;gap:12px;font-size:12px;margin-top:30px;color:#445f65}.local-note span{font-size:23px}.photo-stack{height:485px;position:relative}.hero-photo{position:absolute;width:72%;height:420px;left:6%;top:8px;transform:rotate(-6deg);background:#fff;padding:10px 10px 40px;border-radius:8px;box-shadow:0 18px 40px #23475125}.hero-photo img{width:100%;height:100%;object-fit:cover;border-radius:3px;object-position:50% 40%}.hero-photo figcaption{font-size:11px;text-align:center;padding-top:8px}.small-photo{position:absolute;right:0;bottom:4px;width:43%;height:240px;transform:rotate(9deg);padding:8px 8px 30px;background:white;box-shadow:0 15px 35px #23475120;border-radius:8px}.small-photo img{width:100%;height:100%;object-fit:cover}.small-photo figcaption{font-size:10px;text-align:center;padding-top:6px}.sticker{position:absolute;right:-8px;top:0;background:var(--ink);color:var(--yellow);border-radius:50%;height:103px;width:103px;display:grid;place-content:center;text-align:center;transform:rotate(12deg);font-size:11px;line-height:1.45;letter-spacing:1px}.sticker strong{font-size:28px;letter-spacing:0}.ribbon{border-top:1px solid #68898c25;background:#e5f1e9}.ribbon .wrap{display:flex;justify-content:space-between;gap:20px;padding:19px 0;font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase}.section{padding:96px 0}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:50px;margin-bottom:38px}h2{font-size:clamp(36px,4vw,53px);font-weight:500;line-height:1.1;letter-spacing:-2px;margin-bottom:0}.section-heading p{max-width:350px;color:var(--muted);font-size:15px;margin-bottom:4px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.service-card{padding:30px;border-radius:16px;background:#edf5f4;display:flex;flex-direction:column;align-items:start}.service-card:nth-child(2){background:#e5f1fa}.service-card:nth-child(3){background:#f6f0cf}.card-top{display:flex;width:100%;justify-content:space-between;align-items:center;margin-bottom:36px}.number{font-size:40px;line-height:1;color:#568490;letter-spacing:-2px}.price{font-size:13px;padding:5px 11px;border:1px solid #9aabaa80;border-radius:30px}h3{font-size:23px;font-weight:500;letter-spacing:-.7px;line-height:1.2;margin-bottom:14px}.service-card p{font-size:14px;color:var(--muted);margin-bottom:25px}.service-card .text-link{margin-top:auto}.about-strip{background:#edf3ec}.split{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}.about-image{width:100%;height:470px;object-fit:cover;border-radius:140px 140px 18px 18px;object-position:center}.split p{color:var(--muted);font-size:16px;margin-top:25px}.split .button{margin-top:10px}.values{display:flex;gap:26px;border-top:1px solid #b5c6bc;padding-top:20px;margin-top:27px;font-size:12px;font-weight:700}.gallery{display:grid;grid-template-columns:1.1fr .85fr 1.1fr .85fr;gap:18px;align-items:center}.gallery img{width:100%;height:315px;object-fit:cover;border-radius:15px}.gallery img:nth-child(even){height:265px}.gallery-note{margin-top:18px;color:var(--muted);font-size:12px}.cta{background:radial-gradient(ellipse at 80% 80%,#f7eab0,transparent 65%),#c9e9f3;padding:65px;border-radius:24px;display:flex;align-items:center;justify-content:space-between;gap:40px}.cta h2{max-width:600px}.cta p{margin:18px 0 0;color:var(--muted)}.site-footer{padding:45px 0 25px}.footer-top{display:flex;justify-content:space-between;gap:30px;padding-bottom:36px}.footer-contact{text-align:right;font-size:14px}.footer-contact a{display:block;text-decoration:none}.footer-bottom{border-top:1px solid var(--line);padding-top:22px;display:flex;justify-content:space-between;gap:20px;font-size:11px;color:var(--muted)}.footer-social{display:flex;gap:20px}.page-content{min-height:50vh}.page-intro{padding:70px 0;background:linear-gradient(120deg,#d3edf8,#f8f0c8)}.page-intro h1{max-width:850px}.page-intro p{max-width:650px;margin:0;color:var(--muted)}.prose{max-width:780px;margin:auto;padding:70px 0}.prose p{margin:0 0 24px}.prose h2{margin-bottom:25px}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px}.contact-box{background:#eaf3f2;border-radius:18px;padding:35px}.contact-box h2{font-size:34px;margin-bottom:25px}.contact-box a{overflow-wrap:anywhere}.contact-box p{font-size:16px;color:var(--muted)}details{padding:20px 0;border-bottom:1px solid var(--line)}summary{cursor:pointer;font-weight:600}details p{font-size:15px;margin:15px 0 0;color:var(--muted)}.wp-block-image img{border-radius:16px}.screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
@media(min-width:1500px){.hero{padding:90px 0 70px}}@media(max-width:900px){.hero-grid{gap:20px}h1{letter-spacing:-2.5px}.photo-stack{height:420px}.hero-photo{height:350px;left:0;margin-left:0}.small-photo{height:200px;margin-right:0}.split{gap:40px}.cards{gap:12px}.service-card{padding:24px}.nav{gap:20px}.cta{padding:40px}.gallery{gap:12px}.gallery img{height:240px}.gallery img:nth-child(even){height:205px}}@media(max-width:680px){.wrap{width:calc(100% - 40px)}.site-header{padding:19px 0}.brand{font-size:18px}.menu-toggle{display:block;background:transparent;border:1px solid #b7c9c9;border-radius:30px;padding:9px 16px;color:var(--ink)}.nav{display:none;position:absolute;top:80px;left:20px;right:20px;background:white;border:1px solid var(--line);padding:22px;border-radius:15px;box-shadow:0 12px 20px #172c3110}.nav.is-open{display:flex;flex-direction:column;align-items:stretch}.hero{padding:40px 0}.hero-grid,.split,.contact-grid{grid-template-columns:1fr}.hero-grid{gap:32px}h1{font-size:53px}.hero-copy>p{max-width:100%}.photo-stack{height:395px;max-width:400px;width:100%;margin:auto}.hero-photo{height:345px;left:15px}.small-photo{height:195px;right:10px}.sticker{right:0;width:85px;height:85px}.ribbon .wrap{flex-wrap:wrap;justify-content:center;font-size:9px;gap:12px 24px}.section{padding:62px 0}.section-heading{display:block;margin-bottom:28px}.section-heading p{margin-top:22px}.cards{grid-template-columns:1fr;gap:16px}.card-top{margin-bottom:25px}.service-card{padding:28px}.split{gap:35px}.about-image{height:380px}.values{gap:18px}.gallery{grid-template-columns:1fr 1fr}.gallery img,.gallery img:nth-child(even){height:220px}.cta{padding:35px 25px;display:block}.cta .button{margin-top:30px}.footer-top,.footer-bottom{flex-direction:column}.footer-contact{text-align:left}.page-intro{padding:50px 0}.prose{padding:45px 0}.contact-box{padding:26px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Owner-supplied logo, preserved in its original square format. */
.brand-logo{width:88px;height:88px;object-fit:contain;border-radius:8px}.site-header{padding:12px 0}.footer-top{align-items:center}@media(max-width:680px){.brand-logo{width:68px;height:68px}.site-header{padding:10px 0}.nav{top:88px}.footer-top{align-items:flex-start}}

/* Refreshed horizontal logo with transparent background. */
.brand-logo{width:246px;height:auto;border-radius:0}.site-header{padding:16px 0}@media(max-width:680px){.brand-logo{width:195px;height:auto}.site-header{padding:12px 0}.nav{top:89px}}
/* Detailed services and package comparison. */
.service-jumps{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}.service-jumps a{border:1px solid #9bbabc;border-radius:30px;padding:10px 18px;text-decoration:none;font-size:13px;background:#ffffff70}.service-jumps a:hover{background:white}.service-detail{display:grid;grid-template-columns: .85fr 1.15fr;gap:85px}.service-cost{font-size:50px;letter-spacing:-2px;line-height:1.1;margin:24px 0 14px}.service-audience{display:inline-block;font-size:13px;font-weight:600;color:var(--accent)}.service-description>p{color:var(--muted)}.service-description .service-lead{font-size:19px;color:var(--ink)}.service-description h3{font-size:18px;margin-top:30px}.skill-list{display:grid;grid-template-columns:1fr 1fr;gap:12px 28px;padding:0;list-style:none;margin:20px 0 32px}.skill-list li{border-bottom:1px solid #cbdcda;padding-bottom:10px;font-size:15px}.skill-list li::before{content:'✓';color:var(--accent);margin-right:10px}.service-tint{background:#eaf3f6}.service-quote{margin:32px 0 0;padding:18px 0 0;border-top:1px solid #cbdcda;color:var(--muted)}.service-quote p{font-family:Georgia,serif;font-style:italic;font-size:18px;margin-bottom:8px}.service-quote cite{font-size:12px;font-style:normal}.package-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.package-card{padding:38px;background:#edf5f4;border-radius:18px;display:flex;align-items:flex-start;flex-direction:column}.package-card:nth-child(2){background:#f6f0cf}.package-card h3{font-size:28px;margin-bottom:0}.package-card>p:not(.service-cost){color:var(--muted);font-size:15px}.package-saving{border:1px solid #a9bab6;border-radius:30px;padding:5px 14px;font-size:13px;font-weight:700;margin-bottom:25px}.package-card .button{margin-top:auto}.package-inclusions{padding-bottom:20px}@media(max-width:680px){.service-detail{grid-template-columns:1fr;gap:30px}.service-cost{font-size:42px}.package-grid{grid-template-columns:1fr}.package-card{padding:28px}.service-description .button{font-size:12px;gap:12px;padding:15px 18px}.service-jumps{gap:10px}.service-jumps a{font-size:12px}.skill-list{gap:12px 18px}}
/* Editorial quote panels shared by biography and service pages. */
.page-content blockquote{position:relative;margin:36px 0 0;padding:44px 38px 30px 76px;border:1px solid #cadfe1;border-radius:20px;background:linear-gradient(120deg,#e5f2f7,#f7f3de);color:var(--ink);overflow:hidden;isolation:isolate}
.page-content blockquote::before{content:'“';position:absolute;left:23px;top:13px;font-family:Georgia,serif;font-size:92px;line-height:1;color:#6fabb9;opacity:.7;pointer-events:none}
.page-content blockquote::after{content:'';position:absolute;right:-35px;bottom:-60px;width:155px;height:155px;border:1px solid #9bbfc44d;border-radius:50%;z-index:-1;pointer-events:none}
.page-content blockquote p{font-family:Georgia,'Times New Roman',serif;font-size:clamp(22px,2.1vw,29px);font-weight:400;font-style:italic;line-height:1.5;letter-spacing:-.35px;color:var(--ink);margin:0 0 22px;text-wrap:pretty}
.page-content blockquote cite{display:block;font-family:Arial,Helvetica,sans-serif;font-size:11px;font-style:normal;font-weight:700;letter-spacing:1.6px;text-transform:uppercase;color:#456970;padding-top:15px;border-top:1px solid #adc8cb80}
.page-content .service-quote{margin-top:36px}.page-content .service-quote p{font-size:clamp(21px,1.8vw,25px)}
@media(max-width:680px){.page-content blockquote{padding:52px 25px 26px;margin-top:28px;border-radius:16px}.page-content blockquote::before{top:6px;left:19px;font-size:75px}.page-content blockquote p{font-size:23px}.page-content blockquote cite{font-size:10px;letter-spacing:1.3px}}
/* Trainer page: portrait-led introduction and a continuous reading column. */
.trainer-intro{padding:48px 0}.trainer-heading{display:grid;grid-template-columns:1fr 380px;align-items:center;gap:70px;max-width:1040px}.trainer-heading h1{margin-bottom:0}.trainer-portrait{margin:0}.trainer-portrait img{width:100%;height:390px;object-fit:cover;object-position:center 62%;border-radius:120px 120px 20px 20px;border:8px solid #ffffffb3}.trainer-story{padding:65px 0 0}.trainer-copy{max-width:1200px}.trainer-copy>p{font-size:18px;line-height:1.85;color:var(--muted);margin:0 0 26px}.trainer-copy>p:first-child{font-size:23px;line-height:1.65;color:var(--ink);letter-spacing:-.25px}.trainer-statement{margin-top:36px;padding-top:30px;border-top:1px solid var(--line)}.trainer-statement>p{font-size:18px;line-height:1.85;color:var(--muted);margin:0 0 24px}@media(max-width:760px){.trainer-heading{grid-template-columns:1fr 260px;gap:30px}.trainer-portrait img{height:310px;border-width:6px}.trainer-heading h1{font-size:52px}}@media(max-width:600px){.trainer-intro{padding:35px 0}.trainer-heading{grid-template-columns:1fr;gap:28px}.trainer-heading h1{font-size:52px}.trainer-heading h1 br{display:none}.trainer-portrait{width:min(100%,340px);margin:auto}.trainer-portrait img{height:355px}.trainer-story{padding-top:38px}.trainer-copy>p:first-child{font-size:21px}.trainer-copy>p,.trainer-statement>p{font-size:17px;line-height:1.8}.trainer-statement{margin-top:28px;padding-top:25px}}
@media(max-width:600px){.trainer-heading h1 br{display:initial}}

/* Biography follows the full main content width. */
.trainer-copy{max-width:1200px}
/* Photo album: generous portraits with a staggered rhythm. */
.photo-intro{padding-bottom:58px}.photo-intro .text-link{display:inline-flex;margin-top:12px}.photo-section{padding-top:42px;padding-bottom:0}.photo-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:28px}.photo-heading p{margin:0;color:var(--muted);font-size:14px}.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;align-items:start}.photo-tile{display:block;position:relative;overflow:hidden;border-radius:18px;background:var(--blue);line-height:0}.photo-tile:nth-child(3n+2){transform:translateY(45px)}.photo-tile img{display:block;width:100%;height:auto;transition:transform .3s}.photo-tile:hover img{transform:scale(1.025)}.photo-tile:focus-visible{outline:3px solid var(--accent);outline-offset:5px}.photo-expand{position:absolute;right:16px;bottom:16px;width:42px;height:42px;border-radius:50%;background:var(--paper);display:grid;place-items:center;line-height:1;font-size:24px;color:var(--ink)}.photo-viewing{overflow:hidden}.photo-viewer{border:0;border-radius:18px;padding:16px;background:var(--ink);color:white;width:min(960px,calc(100% - 32px));max-height:calc(100dvh - 32px)}.photo-viewer::backdrop{background:rgba(9,22,25,.88)}.photo-toolbar,.photo-controls{display:flex;justify-content:space-between;align-items:center;gap:15px}.photo-toolbar{margin-bottom:12px}.photo-controls{margin-top:12px}.photo-viewer button{min-height:44px;border:1px solid #ffffff55;border-radius:30px;padding:10px 20px;background:transparent;color:white;font:inherit;cursor:pointer}.photo-viewer button:hover{background:#ffffff22}.photo-viewer button:focus-visible{outline:3px solid var(--yellow);outline-offset:2px}.photo-full{display:block;width:100%;height:calc(100dvh - 190px);object-fit:contain}.photo-count{padding-left:10px;font-size:14px}
@media(max-width:1000px) and (min-width:681px){.header-inner{flex-wrap:wrap;justify-content:center;gap:10px;padding-bottom:16px}.nav{gap:20px}}
@media(max-width:800px){.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.photo-tile:nth-child(3n+2){transform:none}.photo-tile:nth-child(even){transform:translateY(28px)}.photo-section{padding-bottom:28px}}
@media(max-width:500px){.photo-heading{display:block}.photo-heading p{margin-top:8px}.photo-grid{gap:14px}.photo-tile{border-radius:12px}.photo-expand{width:30px;height:30px;right:8px;bottom:8px;font-size:20px}.photo-viewer{padding:12px}.photo-viewer button{padding:10px 14px}}
@media(prefers-reduced-motion:reduce){.photo-tile img{transition:none}}
/* Original service-page portraits, paired with their original training options. */
.service-photo{position:relative;margin:30px 0 0;max-width:390px}.service-photo img{width:100%;height:360px;object-fit:cover;border-radius:20px}.service-photo figcaption{position:absolute;bottom:16px;left:16px;background:var(--paper);color:var(--ink);border-radius:30px;padding:8px 18px;font-size:13px;box-shadow:0 3px 15px #172c3115}.service-photo figcaption strong{font-weight:700}.package-intro{display:grid;grid-template-columns:1fr 340px;gap:65px;align-items:center;margin-bottom:38px}.package-intro .section-heading{display:block;margin:0}.package-intro .section-heading p{margin-top:24px;max-width:460px;font-size:17px}.package-intro .service-photo{margin:0}.package-intro .service-photo img{height:350px;object-position:center 42%}
@media(max-width:900px){.service-detail{gap:40px}.package-intro{gap:35px;grid-template-columns:1fr 280px}}
@media(max-width:680px){.service-photo{max-width:100%;margin-top:25px}.service-photo img{height:auto;max-height:440px;object-fit:cover}.package-intro{grid-template-columns:1fr;gap:28px;margin-bottom:28px}.package-intro .service-photo{max-width:100%}.package-intro .service-photo img{height:380px}}
/* Give the hero badge enough room for its complete message. */
.sticker{display:block;width:140px;height:140px;padding:22px 16px;font-size:11px;line-height:1.4;letter-spacing:.4px;text-align:center}.sticker strong{display:block;font-size:28px;line-height:1.05;margin-bottom:3px}
@media(max-width:680px){.sticker{width:120px;height:120px;padding:17px 12px;font-size:10.5px}.sticker strong{font-size:26px}}
