@charset "UTF-8";
:root {
  --ink:#111111;
  --paper:#F3F0EA;
  --orange:#FF4A1C;
  --line:#d5d1c9;
  --muted:#65625d;
  --font:"Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,"Segoe UI","Malgun Gothic",sans-serif
}

* {
  box-sizing:border-box
}

html {
  scroll-behavior:smooth;
  scroll-padding-top:104px
}

body {
  margin:0;
  color:var(--ink);
  background:var(--paper);
  font-family:var(--font);
  font-size:16px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  word-break:keep-all;
  overflow-wrap:break-word
}

body.dialog-open {
  overflow:hidden
}

button,input {
  font:inherit
}

button,a {
  -webkit-tap-highlight-color:transparent
}

button {
  cursor:pointer;
  color:inherit
}

a {
  color:inherit;
  text-decoration:none
}

img {
  display:block;
  max-width:100%;
  height:auto
}

h1,h2,h3,p,figure {
  margin:0
}

::selection {
  background:var(--orange);
  color:var(--ink)
}

:focus-visible {
  outline:3px solid var(--orange);
  outline-offset:5px
}

.contact :focus-visible {
  outline-color:var(--ink)
}

.wrap {
  width:min(1240px,calc(100% - 112px));
  margin-inline:auto
}

.muted {
  color:var(--muted)
}

.skip-link {
  position:fixed;
  top:10px;
  left:16px;
  padding:12px 20px;
  color:white;
  background:var(--ink);
  transform:translateY(-150%);
  z-index:100
}

.skip-link:focus {
  transform:translateY(0)
}

/* Brand and navigation */
.site-header {
  position:sticky;
  top:0;
  z-index:20;
  background:rgba(243,240,234,.96);
  border-bottom:1px solid var(--line);
  backdrop-filter:blur(14px)
}

.header-inner {
  min-height:94px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:32px
}

.brand {
  display:inline-flex;
  align-items:center;
  gap:11px;
  line-height:.9;
  font-size:25px;
  font-weight:850;
  letter-spacing:-1px
}

.brand-promo {
  display:block;
  margin-top:5px;
  font-size:17px;
  letter-spacing:1.5px
}

.brand-mark {
  display:flex;
  align-items:flex-end;
  gap:4px;
  height:38px
}

.brand-mark i {
  display:block;
  width:7px;
  background:var(--orange)
}

.brand-mark i:nth-child(1) {
  height:16px
}

.brand-mark i:nth-child(2) {
  height:27px
}

.brand-mark i:nth-child(3) {
  height:38px
}

.main-nav {
  display:flex;
  gap:34px;
  margin-left:auto;
  margin-right:35px;
  font-size:14px;
  font-weight:550
}

.main-nav a {
  position:relative;
  padding-block:10px
}

.main-nav a::after {
  content:"";
  position:absolute;
  bottom:4px;
  height:1px;
  left:0;
  width:100%;
  background:var(--ink);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .2s ease
}

.main-nav a:hover::after {
  transform:scaleX(1)
}

.header-contact {
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  padding:11px 18px;
  border:1px solid var(--ink);
  font-size:14px;
  font-weight:650;
  transition:background .2s,color .2s
}

.header-contact:hover {
  background:var(--ink);
  color:var(--paper)
}

.arrow {
  font-size:23px;
  line-height:1;
  font-weight:400
}

/* Supplied work image, with a CSS input-to-output illustration. */
.hero {
  overflow:hidden
}

.hero-grid {
  display:grid;
  grid-template-columns:1.25fr 1fr;
  align-items:center;
  gap:36px;
  min-height:686px;
  padding-block:78px 76px
}

.eyebrow {
  display:flex;
  align-items:center;
  gap:9px;
  margin-bottom:27px;
  font-size:13px;
  font-weight:650;
  letter-spacing:-.1px
}

.orange-dot {
  width:7px;
  height:7px;
  flex-shrink:0;
  background:var(--orange);
  border-radius:50%
}

.hero h1 {
  max-width:680px;
  font-size:clamp(39px,4.25vw,58px);
  font-weight:750;
  line-height:1.25;
  letter-spacing:-2.6px;
  text-wrap:balance
}

.hero h1>span,.hero h1>em {
  display:block
}

.hero h1 em {
  color:var(--orange);
  font-style:normal
}

.hero-description {
  max-width:520px;
  margin-top:27px;
  color:#55524d;
  line-height:1.85;
  font-size:15px
}

.button {
  min-height:56px;
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:54px;
  padding:14px 22px;
  font-size:15px;
  font-weight:650;
  transition:transform .2s ease,background .2s ease
}

.button:hover {
  transform:translateY(-3px)
}

.button-primary {
  margin-top:30px;
  background:var(--orange);
  color:var(--ink)
}

.button-primary:hover {
  background:#f13d10
}

.hero-note {
  margin-top:17px;
  max-width:490px;
  font-size:12px;
  color:var(--muted)
}

.hero-note::before {
  content:"✓";
  display:inline-block;
  margin-right:7px;
  color:var(--ink)
}

.hero-art {
  position:relative;
  min-width:0;
  height:560px
}

.art-grid {
  position:absolute;
  inset:-30px -15px 0;
  background-image:linear-gradient(to right,#d9d4cb 1px,transparent 1px),linear-gradient(to bottom,#d9d4cb 1px,transparent 1px);
  background-size:35px 35px;
  mask-image:radial-gradient(ellipse,black 25%,transparent 70%)
}

.art-orbit {
  position:absolute;
  width:375px;
  height:375px;
  border:1px solid #ccc6bb;
  border-radius:50%;
  left:12%;
  top:20px
}

.file-stack {
  position:absolute;
  top:-8px;
  left:50px;
  width:126px;
  height:145px;
  z-index:2;
  transform:rotate(-8deg)
}

.paper {
  position:absolute;
  width:97px;
  height:122px;
  padding:30px 16px 12px;
  background:var(--paper);
  border:1px solid #a8a29a;
  box-shadow:0 6px 15px #11111108
}

.paper::before {
  content:"";
  width:17px;
  height:17px;
  display:block;
  border:1px solid var(--orange);
  margin-bottom:10px
}

.paper i {
  display:block;
  height:1px;
  background:#aaa49b;
  margin-block:9px
}

.paper-back {
  left:0;
  top:0;
  transform:rotate(-10deg)
}

.paper-middle {
  left:18px;
  top:10px;
  transform:rotate(3deg)
}

.paper-front {
  left:32px;
  top:22px;
  transform:rotate(12deg)
}

.flow-arrow {
  position:absolute;
  font-size:84px;
  font-weight:300;
  color:var(--orange);
  line-height:1;
  left:48%;
  top:22px;
  transform:rotate(8deg)
}

.hero-screen {
  position:absolute;
  top:145px;
  left:0;
  width:100%;
  border:6px solid var(--ink);
  background:var(--ink);
  border-radius:9px;
  transform:rotate(-3deg);
  box-shadow:12px 24px 40px #24201b1f
}

.screen-toolbar {
  height:29px;
  display:flex;
  align-items:center;
  gap:4px;
  padding:0 7px 5px
}

.screen-toolbar>span {
  width:5px;
  height:5px;
  border-radius:50%;
  background:#88857e
}

.screen-toolbar>span:first-child {
  background:var(--orange)
}

.screen-toolbar i {
  margin-left:auto;
  font-style:normal;
  font-size:8px;
  letter-spacing:1.3px;
  color:#c6c1b8
}

.hero-screen img {
  width:100%;
  border-radius:2px
}

.hero-screen figcaption {
  color:#d5d1c9;
  font-size:10px;
  padding:7px 8px 2px
}

.art-stamp {
  position:absolute;
  z-index:3;
  display:grid;
  place-items:center;
  right:-20px;
  top:117px;
  width:83px;
  height:83px;
  background:var(--orange);
  color:var(--ink);
  font-size:59px;
  transform:rotate(8deg);
  border-radius:50%
}

.hero-bottom {
  min-height:72px;
  border-top:1px solid var(--line);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  font-size:11px;
  letter-spacing:.3px
}

.hero-bottom>span {
  font-weight:650
}

.hero-bottom .muted {
  margin-left:10px;
  font-weight:400
}

.hero-bottom a {
  display:flex;
  align-items:center;
  gap:30px;
  font-size:12px
}

.hero-bottom a span {
  font-size:20px
}

/* Service disclosures retain every supplied character. */
.section {
  padding-block:104px
}

.section-heading {
  display:flex;
  align-items:baseline;
  gap:17px;
  margin-bottom:22px
}

.section-number {
  color:#bf300e;
  font-size:12px;
  font-weight:600;
  font-variant-numeric:tabular-nums
}

h2 {
  font-size:clamp(28px,2.8vw,38px);
  line-height:1.3;
  letter-spacing:-1.3px;
  font-weight:700
}

.section-intro {
  max-width:690px;
  color:var(--muted);
  font-size:15px;
  line-height:1.8
}

.services {
  background:#fbfaf7;
  border-top:1px solid var(--line)
}

.service-group {
  font-size:19px;
  font-weight:600;
  letter-spacing:-.4px;
  padding-block:0 22px;
  margin-top:55px;
  border-bottom:2px solid var(--ink)
}

.service {
  border-bottom:1px solid var(--line)
}

summary {
  cursor:pointer;
  list-style:none
}

summary::-webkit-details-marker {
  display:none
}

.service>summary {
  display:grid;
  grid-template-columns:30px minmax(0,1fr) 144px 141px;
  align-items:center;
  gap:24px;
  min-height:122px;
  padding:24px 12px 24px 0;
  transition:background .2s
}

.service>summary:hover {
  background:#f0ece4
}

.service-number {
  color:#78736c;
  align-self:start;
  padding-top:4px;
  font-size:11px;
  font-variant-numeric:tabular-nums
}

.service-description {
  display:flex;
  flex-direction:column;
  gap:7px
}

.service-name {
  font-size:19px;
  line-height:1.4;
  font-weight:650;
  letter-spacing:-.5px
}

.service-one-line {
  font-size:13px;
  color:var(--muted);
  line-height:1.65
}

.service-price {
  font-size:19px;
  font-weight:650;
  letter-spacing:-.6px;
  white-space:nowrap;
  text-align:right;
  font-variant-numeric:tabular-nums
}

.expand-label {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:16px;
  font-size:11px;
  color:#5d5953
}

.plus {
  display:inline-block;
  width:18px;
  height:18px;
  position:relative;
  flex:0 0 18px
}

.plus::before,.plus::after {
  content:"";
  position:absolute;
  width:12px;
  height:1px;
  background:currentColor;
  top:8px;
  left:3px
}

.plus::after {
  transform:rotate(90deg);
  transition:transform .2s
}

details[open]>summary .plus::after {
  transform:rotate(0)
}

.service[open]>summary {
  background:#f0ece4
}

.service[open] .service-number {
  color:#bf300e
}

.packages {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0;
  background:#f0ece4;
  padding:0 26px 28px 54px
}

.package {
  padding-inline:22px;
  border-left:1px solid #d5cec3;
  font-size:13px
}

.package:first-child {
  padding-left:0;
  border-left:0
}

.package:last-child {
  padding-right:0
}

.package strong {
  display:block;
  font-weight:650;
  font-size:14px;
  margin-bottom:9px
}

.package-description {
  color:#5d5953;
  line-height:1.85
}

.package-timing {
  display:block;
  font-size:12px;
  margin-top:13px;
  color:#8e2c13
}

/* Portfolio */
.works-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:32px;
  row-gap:46px;
  margin-top:43px
}

.work {
  min-width:0
}

.work-preview {
  position:relative;
  display:block;
  padding:0;
  width:100%;
  border:1px solid #ddd8cf;
  background:#e9e5dd;
  aspect-ratio:4/3;
  overflow:hidden
}

.work-preview img {
  width:100%;
  height:100%;
  object-fit:contain;
  transition:transform .4s ease
}

.work-preview:hover img {
  transform:scale(1.025)
}

.image-zoom {
  position:absolute;
  right:15px;
  bottom:15px;
  display:grid;
  place-items:center;
  width:37px;
  height:37px;
  border-radius:50%;
  background:var(--ink);
  color:var(--paper);
  font-size:24px;
  transition:background .2s
}

.work-preview:hover .image-zoom {
  background:#b72c09
}

.work figcaption {
  display:flex;
  gap:15px;
  padding-top:18px
}

.work-number {
  flex-shrink:0;
  padding-top:3px;
  font-size:11px;
  color:#8c8478
}

.work h3 {
  font-size:17px;
  font-weight:650;
  line-height:1.55;
  letter-spacing:-.3px
}

.work figcaption p {
  color:var(--muted);
  font-size:12px;
  margin-top:5px
}

.work-page .work-preview {
  aspect-ratio:4/3
}

.work-page img {
  object-fit:cover;
  object-position:top
}

.works-note {
  margin-top:40px;
  padding-top:22px;
  border-top:1px solid var(--line);
  color:var(--muted);
  font-size:13px
}

.quality {
  color:var(--paper);
  background:var(--ink)
}

.quality-grid {
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:100px
}

.quality h2 {
  max-width:380px
}

.quality .section-number {
  color:var(--orange)
}

.quality .section-intro {
  max-width:330px;
  color:#b0aca4
}

.quality-symbol {
  margin-top:48px;
  width:106px;
  height:106px;
  display:grid;
  place-items:center;
  border:1px solid #393630;
  border-radius:50%
}

.quality-symbol span {
  width:70px;
  height:70px;
  display:grid;
  place-items:center;
  border:1px solid var(--orange);
  border-radius:50%;
  color:var(--orange);
  font-size:38px;
  font-weight:200
}

.quality-list {
  list-style:none;
  margin:0;
  padding:0
}

.quality-list li {
  display:flex;
  gap:23px;
  padding-block:27px;
  border-top:1px solid #3a3834
}

.quality-list li:first-child {
  padding-top:3px;
  border-top:0
}

.quality-list li:last-child {
  padding-bottom:0
}

.check-number {
  color:#aaa49b;
  font-size:11px;
  padding-top:4px
}

.quality-list h3 {
  margin-bottom:8px;
  font-size:19px;
  font-weight:550
}

.quality-list p {
  font-size:14px;
  color:#b0aca4;
  line-height:1.85
}

.quality-check {
  margin-left:auto;
  padding-top:1px;
  flex-shrink:0;
  color:var(--orange);
  font-size:21px
}

.process-list {
  list-style:none;
  margin:45px 0 0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:40px 36px
}

.process-list li {
  border-top:1px solid #b8b1a6;
  padding-top:23px
}

.process-title {
  font-size:21px;
  font-weight:650;
  letter-spacing:-.5px
}

.process-title::first-letter {
  color:#bf300e
}

.process-description {
  display:block;
  margin-top:13px;
  color:var(--muted);
  font-size:14px;
  line-height:1.85
}

.payment {
  background:#e9e5dd;
  padding-block:58px
}

.payment-grid,.refund-grid {
  display:grid;
  grid-template-columns:.72fr 1.28fr;
  gap:70px
}

.payment .section-heading,.refund .section-heading {
  margin-bottom:0
}

.payment h2,.refund h2 {
  font-size:28px
}

.payment-rule {
  font-size:17px;
  font-weight:550;
  line-height:1.85
}

.payment-rule+.payment-rule {
  margin-top:10px
}

.payment-notice {
  margin-top:22px;
  padding-top:20px;
  border-top:1px solid #ccc5b9;
  font-size:13px;
  color:#58544c;
  line-height:1.85
}

.faq {
  background:#fbfaf7
}

.faq-grid {
  display:grid;
  grid-template-columns:.72fr 1.28fr;
  gap:70px
}

.faq-item {
  border-bottom:1px solid var(--line)
}

.faq-item:first-child {
  border-top:1px solid var(--ink)
}

.faq-item>summary {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:24px 4px;
  font-weight:550;
  font-size:16px;
  line-height:1.6
}

.faq-item>summary:hover {
  color:#b52c0a
}

.faq-item>p {
  padding:0 30px 25px 4px;
  font-size:14px;
  color:#625c53;
  line-height:1.9
}

.refund {
  background:#fbfaf7;
  border-top:1px solid var(--line);
  padding-block:51px
}

.refund-rules p {
  font-size:14px;
  color:#615b53;
  line-height:1.85
}

.refund-rules p+p {
  margin-top:9px
}

.contact {
  background:var(--orange);
  padding-block:85px 90px
}

.contact .section-heading {
  margin-bottom:42px
}

.contact .section-number {
  color:var(--ink)
}

.contact h2 {
  font-size:clamp(30px,3.2vw,43px)
}

.contact-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:90px
}

.contact-address {
  padding-top:2px;
  min-width:0
}

.email-row {
  display:flex;
  align-items:center;
  gap:20px
}

.email-row>a {
  min-width:0;
  font-size:clamp(19px,2.2vw,29px);
  font-weight:550;
  letter-spacing:-.6px;
  border-bottom:1px solid var(--ink);
  overflow-wrap:anywhere;
  line-height:1.65
}

.copy-button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  border:1px solid #11111150;
  background:transparent;
  min-width:76px;
  min-height:41px;
  padding:8px 11px;
  font-size:11px;
  white-space:nowrap
}

.copy-button:hover {
  background:#11111112
}

.copy-symbol {
  display:block;
  width:11px;
  height:12px;
  border:1px solid var(--ink);
  position:relative;
  margin:0 3px 3px 0
}

.copy-symbol::after {
  content:"";
  position:absolute;
  width:9px;
  height:10px;
  border:1px solid var(--ink);
  left:3px;
  top:3px;
  background:var(--orange)
}

.copy-status {
  min-height:24px;
  font-size:12px;
  padding-top:5px
}

.button-dark {
  background:var(--ink);
  color:var(--paper);
  margin-top:16px
}

.button-dark:hover {
  background:#302923
}

.contact-intro {
  font-size:14px;
  line-height:1.85;
  margin-bottom:20px
}

.contact-checklist ul {
  list-style:none;
  padding:0;
  margin:0
}

.contact-checklist li {
  font-size:13px;
  margin-block:8px;
  line-height:1.75;
  padding-left:9px;
  text-indent:-9px
}

.site-footer {
  background:var(--ink);
  color:#aaa69f;
  padding-block:32px
}

.footer-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:40px
}

.footer-inner>div {
  white-space:pre-line;
  font-size:11px;
  line-height:2.1
}

.footer-inner>div::first-line {
  color:var(--paper)
}

.footer-inner>a {
  display:grid;
  place-items:center;
  width:43px;
  height:43px;
  flex-shrink:0;
  border:1px solid #504a42;
  color:var(--paper);
  font-size:20px
}

/* Full-size images, including the long product detail page. */
dialog {
  width:min(1080px,calc(100% - 40px));
  max-height:calc(100dvh - 40px);
  padding:0;
  border:0;
  color:var(--ink);
  background:var(--paper);
  box-shadow:0 20px 90px #0006
}

dialog[open] {
  display:flex;
  flex-direction:column
}

dialog::backdrop {
  background:#111111d9;
  backdrop-filter:blur(5px)
}

.dialog-header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:14px 20px;
  flex-shrink:0;
  border-bottom:1px solid var(--line)
}

.dialog-header p {
  font-size:14px;
  font-weight:600
}

.dialog-header button {
  background:none;
  border:0;
  display:flex;
  align-items:center;
  gap:12px;
  min-height:44px;
  padding:7px;
  font-size:12px;
  flex-shrink:0
}

.dialog-header button span {
  font-size:25px
}

.dialog-body {
  overflow-y:auto;
  overscroll-behavior:contain;
  min-height:0
}

.dialog-body img {
  width:100%;
  max-width:100%;
  height:auto;
  margin-inline:auto
}

@media(min-width:1450px) {
  .hero-grid {
    min-height:740px
  }
}

@media(max-width:1100px) {
  .wrap {
    width:calc(100% - 72px)
  }
  .main-nav {
    gap:22px;
    margin-right:0;
    font-size:12px
  }
  .hero-grid {
    gap:32px;
    min-height:650px
  }
  .hero h1 {
    font-size:46px;
    letter-spacing:-2px
  }
  .hero-art {
    height:480px
  }
  .hero-screen {
    top:130px
  }
  .art-orbit {
    width:290px;
    height:290px;
    left:3%;
    top:35px
  }
  .art-stamp {
    top:108px;
    width:65px;
    height:65px;
    font-size:45px
  }
  .file-stack {
    left:18px;
    top:-8px;
    transform:scale(.85) rotate(-8deg)
  }
  .flow-arrow {
    font-size:70px
  }
  .service>summary {
    grid-template-columns:24px minmax(0,1fr) 125px 132px;
    gap:16px
  }
  .service-name {
    font-size:18px
  }
  .service-price {
    font-size:18px
  }
  .quality-grid {
    gap:55px
  }
  .payment-grid,.refund-grid,.faq-grid {
    grid-template-columns:.7fr 1.3fr;
    gap:38px
  }
  .contact-grid {
    gap:50px
  }
  .email-row {
    gap:11px;
    flex-wrap:wrap
  }
}

@media(max-width:800px) {
  html {
    scroll-padding-top:82px
  }
  .wrap {
    width:calc(100% - 40px)
  }
  .header-inner {
    min-height:74px;
    gap:16px
  }
  .brand {
    font-size:21px;
    gap:8px
  }
  .brand-promo {
    font-size:14px;
    letter-spacing:1.4px;
    margin-top:5px
  }
  .brand-mark {
    height:31px;
    gap:3px
  }
  .brand-mark i {
    width:5px
  }
  .brand-mark i:nth-child(1) {
    height:13px
  }
  .brand-mark i:nth-child(2) {
    height:22px
  }
  .brand-mark i:nth-child(3) {
    height:31px
  }
  .main-nav {
    display:none
  }
  .header-contact {
    padding:9px 12px;
    font-size:12px;
    gap:20px;
    min-height:42px
  }
  .header-contact .arrow {
    font-size:20px
  }
  .hero-grid {
    display:block;
    min-height:0;
    padding-block:47px 32px
  }
  .eyebrow {
    font-size:11px;
    margin-bottom:23px;
    gap:7px
  }
  .hero h1 {
    max-width:590px;
    font-size:clamp(34px,6.8vw,48px);
    line-height:1.28;
    letter-spacing:-1.6px;
    text-wrap:pretty
  }
  .hero-description {
    font-size:14px;
    margin-top:22px;
    line-height:1.85
  }
  .button-primary {
    margin-top:25px
  }
  .button {
    min-height:54px;
    font-size:14px;
    gap:54px;
    padding:13px 20px
  }
  .hero-note {
    font-size:11px;
    margin-top:16px;
    max-width:400px
  }
  .hero-art {
    width:min(450px,100%);
    height:430px;
    margin:25px auto 0
  }
  .art-grid {
    inset:-15px 0 0
  }
  .hero-screen {
    top:120px;
    width:94%;
    left:3%;
    border-width:5px
  }
  .screen-toolbar {
    height:22px
  }
  .hero-screen figcaption {
    font-size:9px;
    padding-top:5px
  }
  .file-stack {
    left:29px;
    top:-3px;
    transform:scale(.72) rotate(-8deg)
  }
  .art-orbit {
    width:280px;
    height:280px;
    left:12%;
    top:32px
  }
  .flow-arrow {
    left:49%;
    top:18px;
    font-size:64px
  }
  .art-stamp {
    right:0;
    top:93px;
    width:59px;
    height:59px;
    font-size:42px
  }
  .hero-bottom {
    min-height:66px;
    font-size:9px;
    gap:10px
  }
  .hero-bottom .muted {
    margin-left:5px
  }
  .hero-bottom a {
    font-size:10px;
    gap:14px
  }
  .section {
    padding-block:66px
  }
  .section-heading {
    gap:12px;
    margin-bottom:18px
  }
  .section-number {
    font-size:10px
  }
  h2 {
    font-size:27px;
    letter-spacing:-1px
  }
  .section-intro {
    font-size:13px
  }
  .service-group {
    font-size:17px;
    line-height:1.65;
    margin-top:38px;
    padding-bottom:18px
  }
  .service>summary {
    grid-template-columns:minmax(0,1fr) 132px;
    gap:12px;
    min-height:0;
    padding:22px 0
  }
  .service-number {
    display:none
  }
  .service-description {
    grid-column:1/-1;
    padding-right:18px;
    gap:7px
  }
  .service-name {
    font-size:17px;
    line-height:1.5
  }
  .service-one-line {
    font-size:12px;
    max-width:500px
  }
  .service-price {
    font-size:18px;
    text-align:left;
    margin-top:2px
  }
  .expand-label {
    justify-content:flex-end
  }
  .packages {
    grid-template-columns:1fr;
    padding:0 18px 6px
  }
  .package,.package:first-child,.package:last-child {
    padding:20px 0;
    border-left:0
  }
  .package+.package {
    border-top:1px solid #d5cec3
  }
  .package strong {
    font-size:14px
  }
  .package-timing {
    margin-top:9px
  }
  .works-grid {
    grid-template-columns:1fr;
    gap:30px;
    margin-top:30px
  }
  .work figcaption {
    padding-top:14px;
    gap:11px
  }
  .work h3 {
    font-size:16px
  }
  .work figcaption p {
    font-size:11px
  }
  .works-note {
    font-size:12px;
    margin-top:28px;
    line-height:1.85
  }
  .quality-grid {
    grid-template-columns:1fr;
    gap:35px
  }
  .quality h2 {
    max-width:300px
  }
  .quality-symbol {
    display:none
  }
  .quality .section-intro {
    max-width:100%
  }
  .quality-list li {
    gap:16px;
    padding-block:22px
  }
  .quality-list h3 {
    font-size:17px
  }
  .quality-list p {
    font-size:13px
  }
  .quality-check {
    font-size:18px
  }
  .process-list {
    grid-template-columns:1fr 1fr;
    gap:27px 20px;
    margin-top:30px
  }
  .process-list li {
    padding-top:16px
  }
  .process-title {
    font-size:18px
  }
  .process-description {
    font-size:12px;
    margin-top:10px
  }
  .payment-grid,.refund-grid,.faq-grid {
    grid-template-columns:1fr;
    gap:25px
  }
  .payment,.refund {
    padding-block:44px
  }
  .payment h2,.refund h2 {
    font-size:26px
  }
  .payment-rule {
    font-size:15px
  }
  .payment-notice {
    font-size:12px
  }
  .faq-grid {
    gap:14px
  }
  .faq-item>summary {
    font-size:14px;
    padding-block:22px;
    gap:12px
  }
  .faq-item>p {
    font-size:13px;
    padding-right:10px
  }
  .refund-rules p {
    font-size:13px
  }
  .contact {
    padding-block:57px
  }
  .contact h2 {
    font-size:29px
  }
  .contact .section-heading {
    margin-bottom:29px
  }
  .contact-grid {
    grid-template-columns:1fr;
    gap:35px
  }
  .email-row {
    gap:12px;
    flex-wrap:wrap
  }
  .email-row>a {
    font-size:23px
  }
  .copy-button {
    min-width:65px;
    min-height:40px;
    padding-inline:8px
  }
  .contact-intro {
    font-size:13px
  }
  .contact-checklist {
    padding-top:29px;
    border-top:1px solid #11111140
  }
  .contact-checklist li {
    font-size:12px
  }
  .site-footer {
    padding-block:27px
  }
  .footer-inner {
    gap:20px
  }
  .footer-inner>div {
    font-size:10px
  }
  .footer-inner>a {
    width:37px;
    height:37px
  }
  dialog {
    width:calc(100% - 24px);
    max-height:calc(100dvh - 24px)
  }
  .dialog-header {
    padding:10px 13px;
    gap:10px
  }
  .dialog-header p {
    font-size:12px
  }
}

@media(max-width:390px) {
  .hero h1 {
    font-size:35px
  }
  .hero-art {
    height:387px
  }
  .hero-bottom>span .muted {
    display:none
  }
  .email-row>a {
    font-size:21px
  }
}

@media(max-width:350px) {
  .wrap {
    width:calc(100% - 32px)
  }
  .hero h1 {
    font-size:31px
  }
  .hero-art {
    height:350px
  }
  .process-list {
    grid-template-columns:1fr
  }
  .email-row>a {
    font-size:20px
  }
}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*::before,*::after {
    transition:none!important
  }
}

@media print {
  .site-header,.hero-art,.hero-bottom,.work-preview,.copy-button,.button,.footer-inner>a,dialog {
    display:none!important
  }
  .wrap {
    width:100%
  }
  .section {
    padding-block:25px
  }
  body,.section,.site-footer {
    background:white;
    color:black
  }
  .hero-grid {
    display:block;
    min-height:0;
    padding-block:30px
  }
  .hero h1 {
    font-size:32px
  }
  .quality-grid,.faq-grid,.payment-grid,.refund-grid,.contact-grid {
    display:block
  }
  .quality-list p,.quality .section-intro {
    color:#444
  }
  .packages {
    display:block!important
  }
  details::details-content {
    content-visibility:visible
  }
  .package {
    border:0;
    padding:10px 0
  }
  .service,.work,.quality-list li,.process-list li {
    break-inside:avoid
  }
}
