@font-face {
  font-family:Nunito;
  src:url('assets/fonts/nunitosans.ttf') format('truetype');
  font-weight:200 900;
  font-style:normal;
  font-display:swap
}
:root {
  --cream:#f6f2e8;
  --sage:#dce5d4;
  --forest:#284637;
  --accent:#55705b;
  --muted:#596154;
  --line:#c6cdbb;
  --soft:#edf0e6;
  --font:Nunito,Arial,sans-serif;
  --display:Nunito,Arial,sans-serif;
  --gutter:clamp(22px,3.4vw,54px)
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:0
}
body {
  margin:0;
  background:var(--cream);
  color:var(--forest);
  font-family:var(--font);
  font-size:20px;
  line-height:1.5
}
img {
  display:block;
  width:100%;
  height:auto
}
a {
  color:inherit
}
button,input,select,textarea {
  font:inherit
}
button,a,input,textarea,select {
  -webkit-tap-highlight-color:transparent
}
button {
  cursor:pointer
}
a {
  text-underline-offset:5px
}
h1,h2,h3,p,figure,dl,dd {
  margin:0
}
h1,h2,h3 {
  line-height:1.05;
  text-wrap:balance
}
h1,h2,.brand,.hero-prices dd,.price-table td:last-child {
  font-family:var(--display);
  font-weight:400
}
h2 {
  font-size:clamp(34px,3.2vw,52px);
  letter-spacing:-.014em;
  font-weight:550;
  line-height:1.12;
}
h3 {
  font-size:28px;
  font-weight:650;
  line-height:1.2;
}
p+p {
  margin-top:18px
}
section[id] {
  scroll-margin-top:32px
}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible {
  outline:3px solid var(--accent);
  outline-offset:5px
}
input:focus-visible,textarea:focus-visible,select:focus-visible {
  outline-offset:2px
}
.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0
}
.skip-link {
  position:fixed;
  left:20px;
  top:12px;
  z-index:20;
  padding:12px 20px;
  background:var(--forest);
  color:var(--cream);
  transform:translateY(-180%)
}
.skip-link:focus {
  transform:none
}
.site-header {
  position:relative;
  z-index:5;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
  min-height:97px;
  padding:14px var(--gutter);
  background:var(--cream)
}
.brand {
  text-decoration:none;
  font-size:clamp(32px,3.75vw,60px);
  line-height:1;
  white-space:nowrap;
  letter-spacing:-.015em
}
.brand-logo {
  --logo-unit:1px;
  display:flex;
  align-items:center;
  gap:calc(16 * var(--logo-unit));
  width:calc(392 * var(--logo-unit));
  height:calc(100 * var(--logo-unit));
  flex-shrink:0
}
.logo-art,.logo-words {
  display:block;
  position:relative;
  overflow:hidden;
  flex-shrink:0
}
.logo-art {
  width:calc(106 * var(--logo-unit));
  height:calc(86 * var(--logo-unit))
}
.logo-words {
  width:calc(270 * var(--logo-unit));
  height:calc(34 * var(--logo-unit))
}
.brand-logo img {
  position:absolute;
  max-width:none;
  height:auto;
  mix-blend-mode:multiply;
  filter:brightness(1.08)
}
.logo-art img {
  width:calc(152 * var(--logo-unit));
  left:calc(-25 * var(--logo-unit));
  top:calc(-5 * var(--logo-unit))
}
.logo-words img {
  width:calc(351 * var(--logo-unit));
  left:calc(-36 * var(--logo-unit));
  top:calc(-214 * var(--logo-unit))
}
.primary-nav {
  display:flex;
  align-items:center;
  gap:clamp(20px,2.5vw,40px);
  font-size:clamp(17px,1.5vw,24px)
}
.primary-nav>a:not(.button) {
  text-decoration:none;
  padding:12px 0
}
.primary-nav>a:not(.button):hover {
  text-decoration:underline
}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  min-height:58px;
  padding:17px 26px;
  border:0;
  border-radius:28px;
  background:var(--forest);
  color:#fff;
  font-family:var(--font);
  font-size:22px;
  font-weight:650;
  line-height:1.3;
  text-align:center;
  text-decoration:none;
  transition:background .15s ease,transform .15s ease;
}
.button:hover {
  background:#1d3529
}
.button:active {
  transform:translateY(1px)
}
.button-small {
  font-size:clamp(18px,1.55vw,25px);
  padding:17px 29px
}
.text-link {
  display:inline-flex;
  align-items:center;
  gap:14px;
  min-height:44px;
  font-weight:650
}
.text-link svg {
  width:23px;
  height:23px;
  flex-shrink:0;
  fill:none;
  stroke:currentColor;
  stroke-width:1.6;
  stroke-linecap:round;
  stroke-linejoin:round
}
.nav-toggle {
  border:1px solid var(--forest);
  background:none;
  border-radius:20px;
  font-weight:700;
  min-height:44px;
  padding:7px 12px;
}
.nav-toggle span {
  margin-left:7px
}
.hero {
  position:relative;
  background:var(--sage);
  margin-bottom:21px;
  min-height:740px;
}
.hero-copy {
  position:relative;
  z-index:2;
  width:56.6%;
  padding:62px 42px 42px var(--gutter);
}
.hero-location {
  font-size:clamp(20px,1.55vw,25px);
  line-height:1.3;
  margin-bottom:28px;
}
.hero-title {
  font-size:clamp(46px,4.5vw,72px);
  line-height:1.09;
  letter-spacing:-.035em;
  margin-bottom:28px;
  font-weight:550;
}
.hero-title>span {
  display:block;
  white-space:normal;
  width:auto;
  max-width:100%;
  background:none;
}
.hero-title .indented {
  font-size:1em;
  margin-left:0;
  padding:0;
  border-radius:0;
}
.hero-description {
  font-size:clamp(21px,1.55vw,25px);
  line-height:1.5;
  max-width:690px;
  margin-top:20px;
}
.hero-actions {
  display:flex;
  align-items:center;
  gap:28px;
  margin-top:28px;
}
.hero-actions .button {
  font-size:clamp(19px,1.4vw,23px);
  padding:18px 28px;
}
.hero-actions .text-link {
  font-size:clamp(19px,1.4vw,23px);
  white-space:nowrap;
}
.hero-prices {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px;
  margin-top:40px;
  max-width:760px;
}
.hero-prices>div:nth-child(even) {
  border-left:1px solid #b6c3ad;
  padding-left:28px
}
.hero-prices dt {
  font-size:clamp(16px,1.25vw,20px);
  white-space:nowrap;
}
.hero-prices dd {
  font-size:clamp(35px,2.8vw,46px);
  line-height:1.13;
  margin-top:3px;
  font-weight:600;
}
.hero-price-note {display:block;font-size:15px;font-weight:500;line-height:1.4;margin-top:5px}
.hero-photo {
  position:absolute;
  left:56.6%;
  top:0;
  bottom:-21px;
  width:43.4%;
  overflow:hidden;
  border-radius:0 0 0 28px;
  background:#c3cdb9;
}
.hero-photo picture,.hero-photo img {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:50% 50%
}
.hero-photo figcaption {
  position:absolute;
  right:24px;
  bottom:18px;
  font-size:15px;
  color:#fff;
  text-shadow:0 1px 5px #000,0 0 3px #000
}
.section {
  padding:90px var(--gutter)
}
.needs {
  padding-top:52px;
}
.section-intro {
  display:grid;
  grid-template-columns:1.2fr 1fr;
  gap:8%;
  margin:34px 0 50px;
  max-width:1220px;
  font-size:23px
}
.section-intro p+p {
  margin-top:0
}
.needs-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px;
}
.needs-grid article+article {
  border-left:0;
  padding-left:40px;
  padding:28px;
}
.topic-label {
  font-size:17px;
  margin-bottom:17px;
  font-weight:600;
  color:#596154;
}
.need-icon {
  display:block;
  width:88px;
  height:88px;
  margin:0 0 24px;
  color:var(--forest);
  fill:none;
  stroke:currentColor;
  stroke-width:2.2;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.need-icon .icon-tint {
  fill:var(--sage);
  stroke:none;
}
.need-icon .icon-paper {
  fill:var(--soft);
  stroke:none;
}
.need-icon .icon-solid {
  fill:currentColor;
  stroke:none;
}
.needs-grid h3 {
  margin-bottom:20px
}
.needs-grid p:last-child {
  max-width:370px
}
.offers {
  margin-top:78px;
  border-top:1px solid var(--line)
}
.offer-row {
  display:grid;
  grid-template-columns:1fr 1.7fr 1fr;
  gap:45px;
  padding:36px 0;
  border-bottom:1px solid var(--line);
  align-items:start
}
.offer-row h3 {
  font-family:var(--display);
  font-weight:600;
  font-size:30px;
}
.offer-row>.text-link {
  justify-self:end
}
.muted {
  color:var(--muted);
  font-size:18px
}
.offer-row p+p {
  margin-top:12px
}







.about {
  padding:72px var(--gutter);
  background:var(--soft);
}
.about-person {
  display:grid;
  grid-template-columns:0.95fr 1.05fr;
  overflow:hidden;
  border-radius:28px;
  background:var(--cream);
}
.about-portrait {
  position:relative;
  min-height:100%;
}
.about-portrait img {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:68% 50%;
}
.about-portrait figcaption {
  position:absolute;
  bottom:0;
  left:0;
  right:0;
  padding:28px 22px 18px;
  font-size:14px;
  color:#fff;
  background:linear-gradient(transparent,rgba(0,0,0,.65));
}
.about-copy {
  padding:48px clamp(28px,3.4vw,54px);
}
.about-copy h2 {
  margin-bottom:30px
}
.about-copy p:not(.topic-label) {
  max-width:600px
}
.about-lead {
  font-size:23px;
  font-weight:550;
  line-height:1.4;
}
.team-heading {margin:64px 0 30px;max-width:880px}
.team-heading h2 {font-size:clamp(30px,3.2vw,48px);margin-bottom:16px}
.team-heading p {color:var(--muted)}
.team-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.team-card {display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);background:var(--cream);border-radius:24px;overflow:hidden}
.dog-portrait {position:relative;overflow:hidden;min-width:0;aspect-ratio:1;align-self:center}
/* Fenêtres de 430 × 430 sur le montage 2658 × 984 : Pax x=1190, Koda x=580, y=40. */
.dog-portrait img {position:absolute;max-width:none;height:auto;width:618.139535%;}
.dog-portrait-pax img {left:-276.744186%;top:0;transform:translateY(-4.065041%)}
.dog-portrait-koda img {left:-134.883721%;top:0;transform:translateY(-4.065041%)}
.team-copy {align-self:center;padding:30px 26px}
.team-copy .topic-label {font-size:16px;line-height:1.4;margin-bottom:10px}
.team-copy h3 {font-size:38px;margin-bottom:18px}
.team-copy>p {font-size:18px;line-height:1.55}
.team-copy .dog-facts {font-size:16px;line-height:1.5;color:var(--muted);margin-bottom:20px}
.team-copy .dog-project {font-size:17px;line-height:1.5;border-top:1px solid var(--line);padding-top:16px;margin-top:18px}
.team-photo-note {margin-top:16px;font-size:14px;color:var(--muted)}
.about-copy .about-image-note {
  margin-top:28px;
  font-size:15px;
  line-height:1.45;
  color:var(--muted)
}
.about-status {
  font-weight:700;
  border-left:3px solid var(--accent);
  padding-left:18px;
  margin-top:28px!important
}
.about-copy .text-link {
  margin-top:25px
}
.section-heading {
  display:grid;
  grid-template-columns:1.2fr 1fr;
  gap:10%;
  align-items:end;
  margin-bottom:35px
}
.section-heading>p {
  max-width:450px;
  font-size:23px
}
.price-table {
  width:100%;
  border-collapse:collapse;
  text-align:left
}
.price-table th,.price-table td {
  padding:24px 16px 24px 0;
  border-bottom:1px solid var(--line)
}
.price-table thead th {
  font-weight:650;
  font-size:17px;
  padding-top:0
}
.price-table tbody th {
  font-size:25px;
  font-weight:700
}
.price-table td:last-child {
  text-align:right;
  font-size:40px;
  padding-right:0;
  font-weight:600;
}
.price-table th:last-child {
  text-align:right;
  padding-right:0
}
.price-table td:nth-child(2) {
  color:var(--muted)
}
.pricing-foot {
  display:flex;
  gap:35px;
  justify-content:space-between;
  align-items:center;
  margin-top:35px
}
.pricing-foot p {
  max-width:650px;
  font-size:18px
}
.pricing-foot .button {
  flex-shrink:0
}
.area {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12%;
  background:var(--soft)
}
.area h2 {
  margin-bottom:30px
}
.area>div>p {
  max-width:570px
}
.distance-list>div {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:25px;
  padding:25px 0;
  border-bottom:1px solid var(--line)
}
.distance-list dt {
  font-size:23px;
  font-weight:700
}
.distance-list dd {
  font-size:22px
}
.distance-list>div:first-child {
  padding-top:10px
}
.faq {
  display:grid;
  grid-template-columns:1fr 1.4fr;
  gap:9%
}
.faq-list details {
  border-bottom:1px solid var(--line)
}
.faq-list details:first-child {
  border-top:1px solid var(--line)
}
summary {
  cursor:pointer;
  list-style:none;
  display:flex;
  justify-content:space-between;
  gap:25px;
  padding:23px 0;
  font-size:23px;
  font-weight:700;
  line-height:1.35
}
summary::-webkit-details-marker {
  display:none
}
summary>span {
  font-size:28px;
  line-height:1
}
details[open] summary>span {
  transform:rotate(45deg)
}
.faq-list details>div {
  padding:0 36px 25px 0;
  font-size:19px
}
.contact {
  display:grid;
  grid-template-columns:1fr 1.2fr;
  gap:12%;
  background:var(--forest);
  color:var(--cream)
}
.contact-copy h2 {
  font-size:clamp(44px,4.1vw,65px);
  margin-bottom:28px;
}
.contact-copy>p {
  max-width:510px;
  font-size:23px
}
.contact-details {
  display:grid;
  gap:18px;
  margin-top:32px;
  font-style:normal;
}
.price-extra {
  display:block;
  margin-top:5px;
  font-family:var(--font);
  font-size:16px;
  font-weight:500;
  white-space:normal;
}
.contact-details a {
  display:flex;
  align-items:center;
  gap:16px;
  min-height:64px;
  width:fit-content;
  max-width:100%;
  text-decoration:none;
}
.contact-details a>span {min-width:0}
.contact-details svg {width:30px;height:30px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.contact-details .contact-label {
  display:block;margin-bottom:4px;font-size:15px;
  color:#dce5d4;
}
.contact-details .contact-value {display:block;font-size:clamp(19px,1.6vw,25px);font-weight:650;line-height:1.4;overflow-wrap:anywhere}
.contact-details a:hover .contact-value {text-decoration:underline;text-underline-offset:5px}
.reply-fields {min-width:0;border:0;padding:0;margin:0 0 24px}
.reply-fields legend {font-size:18px;font-weight:650;margin-bottom:8px;padding:0}
.form-hint {font-size:16px;color:#e1e8da;margin-bottom:16px}
.form-error {font-size:16px;background:var(--cream);color:var(--forest);border-radius:10px;padding:12px 16px}
.reply-fields .form-pair {margin-bottom:0}
label {
  display:block;
  font-weight:650;
  font-size:18px;
  margin-bottom:8px
}
label span {
  font-size:14px;
  font-weight:400
}
input,select,textarea {
  width:100%;
  background:var(--cream);
  color:var(--forest);
  border:1px solid #a6b59f;
  border-radius:12px;
  padding:12px 14px;
  min-height:50px;
  font-size:18px;
  line-height:1.4;
}
textarea {
  resize:vertical
}
input::placeholder,textarea::placeholder {
  color:#596154
}
form>input,form>select,form>textarea {
  margin-bottom:20px
}
.form-pair {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
  margin:0 0 20px
}
.button-sage {
  background:var(--sage);
  color:var(--forest);
}
.button-sage:hover {
  background:#c6d6bb
}
.contact :focus-visible {
  outline-color:var(--sage)
}
.contact input:focus-visible,.contact select:focus-visible,.contact textarea:focus-visible {
  outline-color:#c6d6bb
}
.draft-result h3 {
  font-family:var(--display);
  font-weight:400;
  font-size:36px;
  margin-bottom:25px
}
.draft-result textarea {
  font-size:17px;
  margin-bottom:20px
}
.draft-actions {
  display:flex;
  gap:14px 24px;
  flex-wrap:wrap;
  align-items:center
}
.text-button {
  border:0;
  background:none;
  color:inherit;
  font-size:17px;
  padding:10px 0;
  min-height:44px;
  text-decoration:underline;
  text-underline-offset:5px
}
.contact-status {
  min-height:27px;
  font-size:17px;
  margin-top:18px;
  color:var(--cream);
}
.site-footer {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px 50px;
  background:#f5f0e7;
  padding:50px var(--gutter)
}
.footer-logo {
  display:block;
  width:min(420px,100%);
  aspect-ratio:870/790;
  overflow:hidden;
  align-self:start
}
.footer-logo img {
  width:104.597701%;
  max-width:none;
  height:auto;
}
.social-links {display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:20px}
.social-links a {display:inline-flex;align-items:center;gap:9px;min-height:44px;font-size:17px;font-weight:650;text-decoration:none}
.social-links a:hover {text-decoration:underline;text-underline-offset:5px}
.social-links svg {width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8}
.social-links .social-dot {fill:currentColor;stroke:none}
.footer-details {
  align-self:center
}
.footer-details .prototype-note {
  margin-top:25px
}
.footer-details .text-link {
  margin-top:22px
}
.site-footer .brand {
  font-size:38px
}
.site-footer p {
  font-size:16px
}
.site-footer p+p {
  margin-top:5px
}
.site-footer .prototype-note {
  max-width:610px;
  font-size:15px;
  color:var(--muted)
}
.site-footer>.text-link {
  justify-self:end;
  font-size:17px
}
[hidden] {
  display:none!important
}
.needs-grid article {
  background:var(--soft);
  padding:28px;
  border-radius:24px 28px 20px 26px;
}
.about-training {
  border-left:3px solid var(--accent);
  padding-left:20px;
}
.about-training strong {
  font-weight:650;
}
@media(max-width:1280px) {
  .team-grid {grid-template-columns:1fr}
}
@media(max-width:600px) {
  .team-card {grid-template-columns:1fr}
  .team-copy {padding:28px}
  .team-copy h3 {font-size:34px}
  .about-copy {padding:30px 24px}
}
@media(min-width:1800px) {
  .hero-photo img {
    object-fit:contain
  }
  .hero {
    min-height:860px
  }
  .hero-copy {
    padding-top:90px
  }
  .hero-title {
    font-size:80px
  }
  .hero-description {
    font-size:32px
  }
  .hero-prices {
    margin-top:60px
  }
}
@media(max-width:1200px) and (min-width:861px) {
  .hero-photo img {
    object-fit:contain
  }
  .brand-logo {
    --logo-unit:.86px
  }
  .site-header {
    min-height:82px;
    gap:15px
  }
  .primary-nav {
    gap:20px
  }
  .hero {
    min-height:690px
  }
  .hero-copy {
    padding-top:50px;
    padding-right:20px
  }
  .hero-title {
    font-size:5.1vw
  }
  .hero-location {
    font-size:22px;
    margin-bottom:24px
  }
  .hero-description {
    font-size:22px
  }
  .hero-actions {
    gap:22px
  }
  .hero-actions .button {
    padding:18px;
    font-size:21px
  }
  .hero-actions .text-link {
    font-size:20px
  }
  .hero-prices {
    gap:12px;
    margin-top:38px
  }
  .hero-prices>div:nth-child(even) {
    padding-left:14px
  }
  .hero-prices dt {
    font-size:16px
  }
  .offer-row {
    gap:28px;
    grid-template-columns:1fr 1.6fr 1fr
  }
  .offer-row>.text-link {
    font-size:17px
  }
  .section {
    padding-top:70px;
    padding-bottom:70px
  }
  .needs {
    padding-top:25px
  }
}
@media(max-width:860px) {
  html {
    scroll-padding-top:0
  }
  section[id] {
    scroll-margin-top:24px
  }
  .site-header {
    min-height:80px;
    flex-wrap:wrap;
    gap:18px;
    padding-top:20px;
    padding-bottom:20px
  }
  .brand {
    font-size:35px
  }
  .brand-logo {
    --logo-unit:.84px
  }
  .nav-toggle:not([hidden]) {
    display:block
  }
  .primary-nav {
    width:100%;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    font-size:20px
  }
  .primary-nav>a {
    padding:13px 0!important
  }
  .primary-nav>.button {
    margin-top:10px
  }
  .hero {
    min-height:0;
    margin-bottom:0
  }
  .hero-copy {
    width:100%;
    padding:38px var(--gutter) 35px
  }
  .hero-location {
    font-size:20px;
    margin-bottom:24px
  }
  .hero-title {
    font-size:clamp(39px,7.1vw,61px);
    line-height:1.03;
    letter-spacing:-.015em;
    margin-bottom:24px
  }
  .hero-title>span {
    white-space:normal;
    width:auto
  }
  .hero-title .indented {
    font-size:1em;
    margin-left:0;
    padding:0;
    border-radius:0;
    max-width:630px
  }
  .hero-description {
    font-size:21px;
    max-width:620px;
    margin-top:25px
  }
  .hero-actions {
    gap:20px;
    flex-wrap:wrap;
    margin-top:26px
  }
  .hero-actions .button {
    font-size:21px;
    padding:17px 22px
  }
  .hero-actions .text-link {
    font-size:20px
  }
  .hero-prices {
    margin-top:32px;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
    max-width:610px
  }
  .hero-prices>div:nth-child(even) {
    padding-left:16px
  }
  .hero-prices dt {
    font-size:17px;
    white-space:normal;
    line-height:1.3;
    min-height:44px
  }
  .hero-prices dd {
    font-size:39px
  }
  .hero-photo {
    position:relative;
    left:auto;
    top:auto;
    bottom:auto;
    width:100%;
    height:auto;
    border-radius:0
  }
  .hero-photo picture {
    display:block;
    height:auto;
  }
  .hero-photo img {
    height:auto;
    object-position:50% 38%
  }
  .hero-photo figcaption {
    right:20px;
    bottom:16px
  }
  .section {
    padding:58px var(--gutter)
  }
  .section-intro {
    display:block;
    margin:24px 0 35px;
    font-size:21px
  }
  .section-intro p+p {
    margin-top:12px
  }
  .needs-grid {
    grid-template-columns:1fr;
    gap:28px
  }
  .needs-grid article+article {
    border-left:0;
    border-top:0;
    padding:28px
  }
  .needs-grid p:last-child {
    max-width:640px
  }
  .topic-label {
    margin-bottom:12px
  }
  .needs-grid h3 {
    font-size:27px;
    margin-bottom:14px
  }
  .offers {
    margin-top:45px
  }
  .offer-row {
    grid-template-columns:1fr;
    gap:18px;
    padding:28px 0
  }
  .offer-row h3 {
    font-size:33px
  }
  .offer-row>.text-link {
    justify-self:start
  }



  .about {padding:45px var(--gutter)}
  .about-person {grid-template-columns:1fr}
  .about-portrait {min-height:0;aspect-ratio:4/3}
  .about-copy {padding:32px 26px}
  .team-grid {grid-template-columns:1fr}
  .team-heading {margin-top:45px}
  .about-lead {
    font-size:22px
  }
  .section-heading {
    display:block;
    margin-bottom:25px
  }
  .section-heading>p {
    margin-top:23px;
    font-size:21px
  }
  .price-table tbody th {
    font-size:21px
  }
  .price-table td {
    font-size:17px
  }
  .price-table td:last-child {
    font-size:36px;
    white-space:nowrap
  }
  .price-table th,.price-table td {
    padding-top:20px;
    padding-bottom:20px
  }
  .pricing-foot {
    display:block
  }
  .pricing-foot .button {
    margin-top:24px
  }
  .area {
    grid-template-columns:1fr;
    gap:30px
  }
  .distance-list dt,.distance-list dd {
    font-size:20px
  }
  .faq {
    grid-template-columns:1fr;
    gap:35px
  }
  summary {
    font-size:21px
  }
  .contact {
    grid-template-columns:1fr;
    gap:38px
  }
  .contact-copy h2 {
    font-size:52px
  }
  .contact-copy>p {
    font-size:21px
  }
  .site-footer {
    grid-template-columns:1fr;
    gap:20px;
    padding:35px var(--gutter)
  }
  .site-footer>.text-link {
    justify-self:start
  }
}
@media(max-width:480px) {
  .brand-logo {
    --logo-unit:.75px;
    margin-right:auto
  }
  .site-header .nav-toggle {
    margin-left:auto
  }
  .footer-logo {
    width:min(360px,100%)
  }
  body {
    font-size:18px
  }
  .brand {
    font-size:30px
  }
  .site-header {
    gap:12px
  }
  .hero-copy {
    padding-top:28px
  }
  .hero-location {
    font-size:17px;
    max-width:300px
  }
  .hero-title {
    font-size:43px;
    line-height:1.04
  }
  .hero-title>span {
    max-width:340px
  }
  .hero-description {
    font-size:19px
  }
  .hero-actions {
    gap:13px
  }
  .hero-actions .button {
    font-size:19px
  }
  .hero-actions .text-link {
    font-size:18px
  }
  .hero-prices {
    gap:8px
  }
  .hero-prices>div:nth-child(even) {
    padding-left:11px
  }
  .hero-prices dt {
    font-size:14px;
    min-height:38px
  }
  .hero-prices dd {
    font-size:35px
  }
  .hero-photo {
    height:auto
  }
  .hero-photo picture {
    display:block;
    height:auto;
  }
  .hero-photo img {
    height:auto;
    object-position:50% 45%
  }
  .hero-photo figcaption {
    font-size:13px
  }
  .price-table th,.price-table td {
    padding-right:8px
  }
  .price-table tbody th {
    font-size:18px;
    max-width:140px
  }
  .price-table td:nth-child(2) {
    font-size:14px;
    max-width:90px
  }
  .price-table td:last-child {
    font-size:30px
  }
  .price-extra {
    font-size:14px;
  }
  .price-table thead th {
    font-size:14px
  }
  .form-pair {
    grid-template-columns:1fr;
    gap:20px
  }
  .contact-copy h2 {
    font-size:47px
  }
  .distance-list dt,.distance-list dd {
    font-size:17px
  }
  .distance-list>div {
    gap:12px
  }
  .section h2 {
    font-size:40px
  }
}
@media(max-width:350px) {
  .brand-logo {
    --logo-unit:.66px
  }
  .brand {
    font-size:24px
  }
  .hero-title {
    font-size:39px
  }
  .hero-actions .button {
    width:100%
  }
  .hero-actions {
    align-items:flex-start
  }
  .hero-prices dd {
    font-size:31px
  }
  .hero-prices dt {
    font-size:13px
  }
  .hero-prices>div:nth-child(even) {
    padding-left:9px
  }
  .section h2 {
    font-size:31px
  }
  .button {
    font-size:19px
  }
  .distance-list dd {
    font-size:16px
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*::before,*::after {
    transition:none!important;
    animation:none!important
  }
}
