@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;0,700;1,500&display=swap');
:root{--teal:#176f70;--dark:#164e4b;--aqua:#77c7c2;--cream:#fbf8f0;--pale:#e7f4ef;--ink:#263b39}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:'DM Sans',Arial,sans-serif;line-height:1.6}a{color:inherit}img{max-width:100%;display:block}.shell{width:min(1160px,calc(100% - 48px));margin:auto}.skip{position:absolute;top:-100px;background:white;padding:12px;z-index:20}.skip:focus{top:0}.site-header{background:var(--cream);position:sticky;top:0;z-index:10;border-bottom:1px solid #dce7df}.nav{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:84px}.brand{display:flex;gap:10px;align-items:center;text-decoration:none;color:var(--dark);font-size:21px;font-weight:700;letter-spacing:-.06em;line-height:1}.brand b{color:#41a8a1}.brand small{display:block;letter-spacing:.13em;font-size:8px;margin-top:7px}.brand-mark{font-size:39px;color:var(--teal)}nav{display:flex;align-items:center;gap:24px}nav a{text-decoration:none;font-size:13px;font-weight:700}nav a:hover,.text-link:hover{color:#209d96}.nav-contact{background:var(--teal);color:white;padding:10px 17px;border-radius:6px}.menu-button{display:none}h1,h2,h3,p{margin-top:0}h1,h2{font-family:'Playfair Display',Georgia,serif;line-height:1.13;letter-spacing:-.03em;color:var(--dark)}h1{font-size:clamp(48px,5.5vw,82px)}h2{font-size:clamp(38px,4.4vw,62px);margin-bottom:24px}h1 em,h2 em{color:#3aaca5;font-weight:500}h3{font-size:21px;color:var(--dark)}p{font-size:16px}.eyebrow{font-size:12px;font-weight:700;letter-spacing:.15em;color:#398d84;margin-bottom:18px}.hero{background:#c9e8df;padding:64px 0}.hero-grid{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:45px}.hero-copy>p{max-width:490px;font-size:18px}.actions{display:flex;flex-wrap:wrap;gap:12px;margin:26px 0}.button{display:inline-block;border:2px solid var(--teal);border-radius:7px;background:var(--teal);color:white;padding:12px 20px;text-decoration:none;font-weight:700;font-size:14px;transition:transform .15s,background .15s}.button:hover{transform:translateY(-2px);background:#0c5555}.button-light{background:transparent;color:var(--dark)}.button-light:hover{background:white}.small-note{font-size:13px;font-weight:700;color:var(--dark)}.hero-art{min-height:450px;border-radius:48% 48% 12px 12px;background:radial-gradient(circle at 65% 28%,#f7e4b7 0 12%,transparent 13%),linear-gradient(160deg,#a9d4c6 0 45%,#6eab83 46% 64%,#3e846a 65%);position:relative;display:grid;place-items:center;overflow:hidden}.photo-badge{width:190px;height:190px;border-radius:50%;background:#f8f5e8de;display:grid;place-items:center;text-align:center;color:var(--dark);font-weight:700;letter-spacing:.12em;transform:rotate(-8deg)}.art-caption{position:absolute;bottom:20px;left:25px;color:white;font-weight:700}.section{padding:95px 0;scroll-margin-top:84px}.cream{background:var(--cream)}.split{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:85px}.reverse>div:first-child{order:1}.reverse>div:last-child{order:2}.visual{min-height:400px;border-radius:16px;display:grid;place-items:center;position:relative}.visual-milk{background:linear-gradient(145deg,#b8ddd1,#5fa7a0)}.visual-gelato{background:linear-gradient(135deg,#f7dfd4,#c0e0cf)}.visual-label{position:absolute;top:22px;left:22px;font-size:11px;font-weight:700;letter-spacing:.1em;color:var(--dark);background:#fff9;padding:8px 12px;border-radius:6px}.milk-icon,.gelato-icon{font-size:130px;filter:drop-shadow(0 14px 14px #0002)}.text-link{font-weight:700;color:var(--teal);text-decoration-thickness:2px}.gelato{background:#eaf6f2}.signature{font-family:'Playfair Display',serif;font-style:italic;font-size:23px;color:var(--teal)}.farm{background:linear-gradient(110deg,#164f4b,#247e72);color:white;text-align:center}.farm h2,.farm h2 em{color:white}.farm .eyebrow{color:#b3e6d9}.farm-inner>p{max-width:700px;margin:0 auto 40px}.stats{display:flex;justify-content:center;gap:75px;flex-wrap:wrap}.stats div{display:flex;flex-direction:column}.stats strong{font-family:'Playfair Display',serif;font-size:45px}.stats span{font-size:13px}.section-heading{text-align:center;max-width:690px;margin:0 auto 40px}.location-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px}.location-card{background:white;border-radius:14px;overflow:hidden;box-shadow:0 7px 24px #174e4b12}.location-art{height:180px;background:linear-gradient(145deg,#93c9ba,#26766f);display:flex;align-items:end;justify-content:space-between;padding:22px;color:white;font-size:50px;font-family:Georgia,serif}.location-art span{font:700 14px 'DM Sans',sans-serif;letter-spacing:.1em}.location-art.alt{background:linear-gradient(145deg,#c5d9c5,#5a998c)}.card-body{padding:26px}.card-body p{min-height:50px}.stockists{background:#d6ece6;text-align:center}.stockists p{max-width:650px;margin:0 auto 30px}.chips{display:flex;justify-content:center;flex-wrap:wrap;gap:12px}.chips span{background:white;border-radius:30px;padding:12px 20px;font-weight:700;font-size:14px;color:var(--dark)}.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:30px 24px}.team-grid article{text-align:center}.team-grid img{aspect-ratio:1;object-fit:cover;border-radius:50%;border:6px solid #e2f1eb;background:#d5e5df}.team-grid h3{font-size:18px;margin:14px 0 2px}.team-grid p{font-size:14px;color:#55716c}.contact{background:var(--teal);color:white}.contact h2,.contact h2 em{color:white}.contact .eyebrow{color:#bce5dd}.contact-inner{display:flex;align-items:center;justify-content:space-between;gap:30px}.contact .button-light{border-color:white;color:white}.contact .button-light:hover{color:var(--dark)}footer{background:#123d3b;color:#dceee7;padding:26px 0}.footer-inner{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:13px}@media(max-width:900px){.nav{min-height:70px}.menu-button{display:block;border:1px solid #a7c9c0;background:transparent;border-radius:7px;padding:9px 12px;color:var(--dark);font-weight:700}nav{display:none;position:absolute;top:70px;left:0;right:0;background:var(--cream);padding:16px 24px 26px;box-shadow:0 10px 20px #0001;flex-direction:column;align-items:stretch;gap:0}nav.open{display:flex}nav a{padding:13px 5px}.hero-grid,.split{gap:32px}.team-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:650px){.shell{width:min(100% - 32px,500px)}.hero{padding:45px 0}.hero-grid,.split{grid-template-columns:1fr}.hero-art{min-height:310px;grid-row:2}.hero-copy{grid-row:1}.section{padding:65px 0;scroll-margin-top:70px}.visual{min-height:280px}.reverse>div:first-child,.reverse>div:last-child{order:initial}.location-grid{grid-template-columns:1fr}.team-grid{grid-template-columns:repeat(2,1fr);gap:22px 15px}.team-grid img{border-width:4px}.team-grid h3{font-size:16px}.stats{gap:26px}.stats strong{font-size:34px}.contact-inner{align-items:flex-start;flex-direction:column}.footer-inner{flex-direction:column}.actions .button{width:100%;text-align:center}}

/* Version 0.2 — original brand identities and refined responsive layout */
:root{--teal:#287b79;--dark:#174e4c;--aqua:#72b6b0;--cream:#faf8f2;--pale:#e5efeb}
.header-logo{width:59px;height:59px;object-fit:cover;border-radius:50%;flex:none}
.brand{letter-spacing:-.045em;font-size:20px}
.brand small{letter-spacing:.09em}
.hero{background:linear-gradient(110deg,#e7f3ee 0%,#c6e8e2 70%,#a4d4cb 100%)}
.hero-art{border-radius:24px;min-height:490px;background:radial-gradient(circle at 30% 15%,#fff8 0%,transparent 48%),linear-gradient(145deg,#9ed4cb,#60aca8 65%,#3d8883);box-shadow:0 22px 55px #174e4b24}
.hero-art-content{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:16px;padding:28px;text-align:center;color:#fff;font-family:'Playfair Display',serif;font-size:23px;font-style:italic}
.hero-art-content img{width:min(77%,345px);border-radius:50%;box-shadow:0 18px 50px #174e4b2a}
.visual{overflow:hidden;border-radius:22px}
.visual-milk{background:linear-gradient(140deg,#cde7dc,#9fcac1)}
.visual-gelato{background:linear-gradient(135deg,#f7e9e1,#c4e4df)}
.photo-pending{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:18px;padding:26px;text-align:center;color:var(--dark);font-size:13px;font-weight:700;letter-spacing:.04em}
.photo-pending img{height:245px;width:245px;object-fit:cover;border-radius:50%;box-shadow:0 12px 30px #174e4b1c}
.section-logo{width:112px;height:112px;object-fit:cover;border-radius:50%;margin-bottom:22px}
.farm-brand{width:112px;height:112px;border-radius:50%;object-fit:cover;margin:0 auto 24px}
.team-grid img{border-radius:20px;aspect-ratio:4/5;object-position:center top;border:4px solid #e2f1eb}
.team-grid article{background:white;border-radius:18px;padding:12px 12px 18px;box-shadow:0 8px 22px #174e4b0b}
.team-grid h3{line-height:1.25}
.location-card{border:1px solid #d9e9e3}
.button{border-radius:30px}
@media(max-width:650px){.header-logo{width:48px;height:48px}.brand{font-size:17px}.brand small{font-size:7px}.hero-art{min-height:340px}.hero-art-content img{width:225px}.hero-art-content{font-size:18px}.photo-pending img{height:185px;width:185px}.team-grid article{padding:7px 7px 14px}.team-grid h3{font-size:15px}}

/* V0.3: photography-led treatment faithful to the approved turquoise mock-up */
:root{--teal:#078d88;--dark:#164e4b;--aqua:#72b6b0;--cream:#faf8f2;--pale:#e5efeb}
.site-header{background:#fffefb}.nav{min-height:78px}.header-logo{border-radius:10px;object-fit:contain}.brand{font-size:22px}
.hero{background:linear-gradient(105deg,#f6f8ed 0%,#e6f3ee 100%);padding:42px 0}
.hero-grid{grid-template-columns: minmax(0,1fr) minmax(0,1.13fr);gap:30px}
.hero-copy h1{font-size:clamp(46px,5vw,76px)}.hero-copy>p{font-size:18px}
.photo-hero{background-image:linear-gradient(0deg,rgba(6,55,45,.32),transparent 45%),url('assets/hero-cows.webp');background-position:center;background-size:cover;min-height:490px;border-radius:18px;box-shadow:0 12px 32px #174e4b22;display:block}
.photo-caption{position:absolute;right:22px;bottom:22px;color:white;font:italic 24px 'Playfair Display',serif;text-shadow:0 2px 8px #0008;text-align:right}
.visual{display:block;min-height:430px;overflow:hidden;border-radius:14px}.section-photo{width:100%;height:100%;min-height:430px;object-fit:cover;object-position:center}
.visual-milk,.visual-gelato{background:none}.gelato{background:#f8eeeb}.gelato-brand{width:92px;height:92px;border-radius:12px}
.farm{position:relative;background:#e7f0e8;color:var(--ink);text-align:left;overflow:hidden;display:grid;grid-template-columns:1fr 1fr;padding:0;min-height:440px}
.farm-photo{background:url('assets/farm-photo.webp') center/cover;min-height:440px}
.farm-inner{width:auto;margin:0;align-self:center;padding:65px clamp(26px,5vw,90px)}.farm h2,.farm h2 em{color:var(--dark)}.farm .eyebrow{color:#438f86}.farm-inner>p{margin:0 0 26px}.farm-brand{width:78px;height:78px;margin:0 0 18px}.stats{justify-content:flex-start;gap:25px}.stats strong{font-size:29px;color:var(--dark)}
.location-photo{background-size:cover;background-position:center;justify-content:flex-end;min-height:215px}.location-photo.first{background-image:linear-gradient(0deg,#073c39a6,transparent 55%),url('assets/vending-photo.webp')}.location-photo.second{background-image:linear-gradient(0deg,#073c39a6,transparent 55%),url('assets/station-photo.webp')}.location-photo span{background:#0e5952c9;padding:7px 12px;border-radius:5px}
.stockists{background:#e5f2ed}.stockist-logo{width:92px;height:92px;object-fit:cover;border-radius:50%;margin:0 auto 26px}.team-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:12px}.team-grid article{padding:7px 7px 12px}.team-grid img{width:100%;aspect-ratio:4/5;object-fit:cover}.team-grid h3{font-size:14px}.team-grid p{font-size:12px}.preview-note{background:#fff8df;color:#544b35;text-align:center;padding:10px 20px;font-size:12px}
@media(max-width:1050px){.team-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.hero-grid{gap:22px}}
@media(max-width:900px){.hero-grid{grid-template-columns:1fr 1fr}.hero-copy h1{font-size:clamp(40px,5.3vw,58px)}.farm{grid-template-columns:1fr 1fr}.farm-inner{padding:40px 25px}.stats{gap:15px}.stats strong{font-size:23px}}
@media(max-width:650px){.hero{padding:0 0 34px}.hero-grid{display:flex;flex-direction:column-reverse;gap:0}.hero-art.photo-hero{width:calc(100% + 32px);margin:0 -16px;min-height:300px;border-radius:0;box-shadow:none}.hero-copy{padding:30px 0 0}.hero-copy h1{font-size:clamp(43px,11vw,62px)}.hero-copy>p{font-size:16px}.photo-caption{font-size:20px}.visual,.section-photo{min-height:280px}.split{gap:22px}.farm{display:flex;flex-direction:column;padding:0}.farm-photo{min-height:245px}.farm-inner{width:100%;padding:40px 22px}.team-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.team-grid h3{font-size:15px}.team-grid p{font-size:12px}.section-logo{margin-bottom:10px}.stockist-logo{width:80px;height:80px}.location-photo{min-height:190px}}

/* v0.4: multi-page components */
.page-hero{background:linear-gradient(125deg,#d1eee7,#f9f8ef);padding:80px 0 68px}.page-hero h1{margin-bottom:16px}.page-lead{max-width:760px;font-size:clamp(18px,2vw,23px)}.feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.feature-card{padding:30px;background:white;border:1px solid #d8e7e0;border-radius:14px;box-shadow:0 5px 20px #164e4b0a}.feature-card h3{margin-bottom:12px}.feature-card p{margin-bottom:0}.muted{color:#536c67;font-size:14px;margin-top:28px}.centered-cta{text-align:center;padding:65px 0 10px}.centered-cta p{max-width:680px;margin:0 auto 24px}.contact-panel{display:grid;grid-template-columns:1.4fr .6fr;gap:40px;align-items:center}.contact-panel img{width:min(260px,100%);justify-self:center;border-radius:22px}.deep-link{margin:20px 0 0}.deep-link .text-link{font-size:15px}.site-header nav a[aria-current="page"]{text-decoration:underline;text-underline-offset:6px}@media(max-width:760px){.page-hero{padding:50px 0 45px}.feature-grid,.contact-panel{grid-template-columns:1fr}.feature-card{padding:25px}.centered-cta{padding:45px 0 5px}}

/* V5 accessible portrait flip cards */
.flip-grid .flip-card{padding:0;background:transparent;box-shadow:none;perspective:1200px;min-width:0}.flip-toggle{display:block;width:100%;height:345px;padding:0;border:0;background:transparent;cursor:pointer;color:var(--dark);font:inherit;text-align:center}.flip-inner{display:block;width:100%;height:100%;position:relative;transform-style:preserve-3d;transition:transform .65s}.flip-toggle[aria-pressed="true"] .flip-inner{transform:rotateY(180deg)}.flip-front,.flip-back{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:18px;background:#fff;padding:10px;box-shadow:0 8px 22px #174e4b0b;overflow:auto}.flip-front img{width:100%;height:230px;aspect-ratio:auto;object-fit:cover;object-position:top;border-radius:14px;border:4px solid #e2f1eb}.flip-front strong,.flip-back strong{font-size:16px;margin-top:12px;line-height:1.25}.flip-front>span{font-size:13px;color:#55716c}.flip-front small,.flip-back small{font-size:11px;color:#398d84;margin-top:auto;padding-top:8px}.flip-back{transform:rotateY(180deg);justify-content:center;background:#e7f4ef;padding:18px}.flip-back .bio-text{font-size:13px;line-height:1.5;margin-top:15px}.flip-toggle:focus-visible{outline:3px solid #176f70;outline-offset:4px}@media(max-width:650px){.flip-toggle{height:310px}.flip-front img{height:192px}.flip-front strong,.flip-back strong{font-size:14px}.flip-back .bio-text{font-size:12px}}@media(prefers-reduced-motion:reduce){.flip-inner{transition:none}}
.gallery-v5{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:30px}.gallery-v5 img{width:100%;height:280px;object-fit:cover;border-radius:14px}@media(max-width:650px){.gallery-v5{grid-template-columns:1fr}.gallery-v5 img{height:260px}}

/* V6 additions: additive only, preserving V5 design and flip cards */
.v6-gallery .shell>p,.v6-content .shell>p{max-width:760px;line-height:1.75}.v6-photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:28px}.v6-photo-grid figure{margin:0;background:#fff;border-radius:22px;overflow:hidden;box-shadow:0 8px 28px #0b454414}.v6-photo-grid img{width:100%;height:245px;object-fit:cover;display:block}.v6-photo-grid figcaption{padding:13px 18px;color:#315a57;font-size:.85rem}.v6-columns{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:24px 0}.v6-columns article{background:#fff;padding:28px;border-radius:20px}.v6-columns p{line-height:1.85}.v6-small{font-size:.85rem;opacity:.8}.v6-hours{margin:20px 0 0;line-height:1.7;color:#176f70}.v6-form{display:grid;gap:18px;max-width:650px;margin-top:25px}.v6-form label{display:grid;gap:8px;font-weight:600}.v6-form input,.v6-form select,.v6-form textarea{width:100%;padding:14px;border:1px solid #9fc9c0;border-radius:10px;font:inherit;background:white;color:#204944}.v6-form button{background:#176f70;color:white;border:0;padding:16px 24px;border-radius:10px;font:inherit;font-weight:700;cursor:pointer}@media(max-width:700px){.v6-photo-grid{grid-template-columns:1fr 1fr;gap:12px}.v6-photo-grid img{height:170px}.v6-columns{grid-template-columns:1fr}.v6-columns article{padding:20px}}

/* V6.1 authentic user-supplied photography; original files unaltered */
.photo-hero{background-image:url('assets/curious-cow-original.jpeg')!important;background-position:center center!important}
.farm-photo{background-image:url('assets/farmhouse-original.jpeg')!important;background-position:center!important;background-size:cover!important}
/* Flip on hover only for actual hover devices; tap and keyboard remain supported */
@media (hover:hover) and (pointer:fine){.flip-toggle:hover .flip-inner{transform:rotateY(180deg)}.flip-toggle:hover:focus .flip-inner{transform:rotateY(180deg)}}
.flip-back{justify-content:flex-start}.flip-back .bio-text{overflow-y:auto;max-height:245px}
@media(max-width:650px){.flip-back .bio-text{max-height:215px}}

/* V6.3 — compact homepage gelato and illustrative location maps */
@media(min-width:651px){.gelato-compact.section{padding:62px 0}.gelato-compact .split{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:46px;align-items:center}.gelato-compact .visual,.gelato-compact .section-photo{min-height:0;height:365px}.gelato-compact .section-photo{width:100%;object-fit:cover}.gelato-compact h2{margin-bottom:14px}.gelato-compact p{margin-bottom:12px}.gelato-compact .gelato-brand{width:74px;height:74px;margin-bottom:10px}.gelato-compact .deep-link{margin-top:14px}}
.location-art.illustrated-location{height:235px;min-height:235px;padding:0;background-size:cover;background-position:center;background-repeat:no-repeat}.map-st-brides{background-image:url('assets/map-st-brides.svg')}.map-coychurch{background-image:url('assets/map-coychurch.svg')}
@media(max-width:650px){.gelato-compact .split{gap:22px}.gelato-compact .visual,.gelato-compact .section-photo{min-height:0;height:270px}.gelato-compact .section-photo{object-fit:cover}.location-art.illustrated-location{height:190px;min-height:190px}}

/* V6.4: friendly review banner and genuine road maps */
.site-preview-banner{background:#d8eee7;color:#164e4b;display:flex;gap:12px;align-items:center;justify-content:center;flex-wrap:wrap;text-align:center;padding:10px 20px;border-bottom:1px solid #a8d2c4;font-size:13px;line-height:1.45}
.site-preview-banner strong{letter-spacing:.12em;font-size:11px;background:#176f70;color:#fff;border-radius:4px;padding:5px 9px;white-space:nowrap}
.location-art.actual-map{height:235px;min-height:235px;padding:0;position:relative;display:block;overflow:hidden;background:#d8e8d9}
.actual-map .real-road-map{position:absolute;inset:0;width:100%;height:100%;border:0;filter:sepia(.28) saturate(.65) hue-rotate(115deg) brightness(1.06)}
.actual-map .real-map-label{position:absolute;left:12px;top:12px;z-index:2;display:flex;flex-direction:column;gap:1px;background:#fbf8f0f2;border:1px solid #9ac8b9;color:#164e4b;padding:8px 12px;border-radius:9px;box-shadow:0 2px 10px #1b52452b;pointer-events:none}
.actual-map .real-map-label strong{font:700 16px 'DM Sans',Arial,sans-serif;letter-spacing:0}
.actual-map .real-map-label span{font:600 11px 'DM Sans',Arial,sans-serif;letter-spacing:.03em}
@media(max-width:650px){.site-preview-banner{padding:9px 14px;gap:5px}.location-art.actual-map{height:210px;min-height:210px}}

.form-honeypot{position:absolute!important;left:-9999px!important;opacity:0!important}.form-thanks{padding:12px 16px;border-radius:8px;background:#e2f0e9;color:#164e4b}#form-feedback{min-height:1.5em;font-weight:600}
