/* Aohana homepage — focused presentation layer, V57.42 */
.home-page {
  --home-accent: #78a900;
  --home-ink: #11140f;
  --home-muted: #596057;
  --home-line: #dde3d8;
  --home-soft: #f5f7f2;
}

.home-kicker { display: block; margin-bottom: 18px; color: var(--home-muted); font-size: 12px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.home-page .v57-hero { min-height: 680px; gap: clamp(42px,6vw,86px); padding-block: 82px 68px; }
.home-page .v57-hero h1 { max-width: 690px; font-size: clamp(46px,4.65vw,70px); line-height: 1.01; letter-spacing: -.052em; }
.home-page .v57-hero p { max-width: 670px; font-size: clamp(17px,1.45vw,20px); line-height: 1.68; }
.home-page .v57-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.home-page .v57-btn { min-height: 52px; margin: 0; padding-inline: 24px; border-radius: 2px; }
.home-page .v57-btn span { margin-left: 20px; }
.home-hero-proof { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin-top: 28px; }
.home-hero-proof span { position: relative; min-height: 62px; padding: 13px 12px 12px 30px; border: 1px solid var(--home-line); color: var(--home-ink); font-size: 12px; font-weight: 700; line-height: 1.4; }
.home-hero-proof span::before { content: ""; position: absolute; left: 13px; top: 19px; width: 7px; height: 7px; border: 2px solid var(--home-accent); border-radius: 50%; }

.home-page .v57-section { padding-block: clamp(68px,7vw,96px); }
.home-section-heading { max-width: 850px; margin-bottom: 52px; }
.home-section-heading .home-kicker { margin-bottom: 14px; }
.home-page .home-section-heading h2::after { display: none; }
.home-page .v57-process b { color:var(--home-muted); }
.home-page .v57-tech-label { border-radius:2px; color:var(--home-ink); }

.home-services .v57-grid3 { gap: 18px; align-items: stretch; }
.home-page .home-service { position: relative; isolation: isolate; align-items: stretch; min-height: 520px; overflow: hidden; padding: 34px; text-align: left; box-shadow: none; transition: transform .2s ease,border-color .2s ease,box-shadow .2s ease; }
.home-page .home-service:hover { transform: translateY(-4px); border-color: #b7c2ad; box-shadow: 0 18px 42px rgba(28,38,20,.08); }
.home-service::after { content:""; position:absolute; z-index:-1; pointer-events:none; opacity:.65; }
.home-service.web { border-top: 4px solid #668f17; background:linear-gradient(155deg,#fff 60%,#f2f6ea); }
.home-service.web::after { right:-44px; top:76px; width:150px; height:150px; border:1px solid #bfd09f; border-radius:50%; box-shadow:0 0 0 24px #f5f8ef,0 0 0 25px #dfe9d0; }
.home-service.design { border-top: 4px solid #416d7a; background:linear-gradient(155deg,#fff 60%,#eef4f5); }
.home-service.design::after { right:-22px; top:92px; width:132px; height:132px; background:repeating-linear-gradient(45deg,transparent 0 12px,#c6d7da 12px 13px); transform:rotate(8deg); }
.home-service.video { border-top: 4px solid #745c8b; background:linear-gradient(155deg,#fff 60%,#f3eff6); }
.home-service.video::after { right:-25px; top:84px; width:145px; height:110px; border:1px solid #d2c4dc; background:linear-gradient(90deg,transparent 72%,#e2d9e8 72%); transform:skewY(-8deg); }
.home-service-top { display: flex; justify-content: space-between; gap: 20px; align-items: flex-start; margin-bottom: 30px; }
.home-service-top > span { color: #7a8078; font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.home-page .home-service .v57-icon { width: 54px; height: 54px; margin: 0; border: 1px solid var(--home-line); border-radius: 50%; }
.home-page .home-service h3 { max-width: 280px; margin-bottom: 16px; font-size: 27px; }
.home-service-label { width:fit-content; max-width:85%; margin:0 0 18px; padding:7px 10px; background:#eef2ea; color:#3e483b; font-size:11px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.home-service.design .home-service-label { background:#e6eff1; color:#345a64; }
.home-service.video .home-service-label { background:#eee8f2; color:#654f78; }
.home-page .home-service .home-service-for { min-height: 86px; margin-bottom: 22px; color: #343a34; font-size: 16px; }
.home-service ul { display: grid; gap: 10px; margin: 0 0 30px; padding: 22px 0 0; border-top: 1px solid var(--home-line); list-style: none; }
.home-service li { position: relative; padding-left: 17px; color: var(--home-muted); font-size: 14px; line-height: 1.5; }
.home-service li::before { content: ""; position: absolute; left: 0; top: .6em; width: 6px; height: 2px; background: var(--home-accent); }
.home-page .home-service a { display: flex; justify-content: space-between; padding-top: 18px; border-top: 1px solid var(--home-line); }
.home-service.design li::before { background:#416d7a; }
.home-service.video li::before { background:#745c8b; }
.home-price-guide { display:flex; align-items:center; justify-content:space-between; gap:28px; margin-top:20px; padding:24px 28px; border:1px solid var(--home-line); background:var(--home-soft); }
.home-price-guide div { display:grid; gap:5px; }
.home-price-guide span { color:var(--home-muted); font-size:11px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.home-price-guide strong { color:var(--home-ink); font-size:16px; }
.home-price-guide a { flex:none; color:var(--home-ink); font-size:14px; font-weight:800; text-underline-offset:5px; }

.home-proof-links { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border-top: 1px solid var(--home-line); border-left: 1px solid var(--home-line); }
.home-proof-links a { position: relative; display: grid; min-height: 260px; padding: 32px; border-right: 1px solid var(--home-line); border-bottom: 1px solid var(--home-line); color: var(--home-ink); text-decoration: none; transition: background .2s ease; }
.home-proof-links a:hover { background: var(--home-soft); }
.home-proof-links span { color: var(--home-accent); font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.home-proof-links strong { align-self: end; margin: 44px 0 10px; font-size: 24px; line-height: 1.2; }
.home-proof-links small { max-width: 280px; color: var(--home-muted); font-size: 14px; line-height: 1.55; }
.home-proof-links b { position: absolute; right: 28px; top: 27px; color: var(--home-ink); font-size: 18px; }
.portfolio-viewport img { display:none; width:100%; height:100%; object-fit:cover; }
.portfolio-viewport iframe { position:absolute; inset:0 auto auto 0; }

.home-reviews-section { background: var(--home-soft); }
.home-page .v57-review { grid-template-columns: minmax(280px,.7fr) minmax(0,1.3fr); gap: clamp(42px,7vw,90px); align-items: center; }
.home-page .v57-review h2 { font-size: clamp(38px,4vw,58px); line-height: 1.04; letter-spacing: -.045em; }
.home-text-link { display: inline-flex; margin-top: 20px; color: var(--home-ink); font-weight: 800; text-underline-offset: 6px; }
#homeReviewsGrid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
#homeReviewsGrid .public-review { display: flex; flex-direction: column; min-height: 290px; padding: 28px !important; border: 1px solid var(--home-line) !important; border-radius: 2px !important; background: #fff !important; }
#homeReviewsGrid .public-review:first-child { grid-column: 1 / -1; min-height: 230px; border-top: 3px solid var(--home-accent) !important; }
#homeReviewsGrid .public-review-stars { display: flex; gap: 4px; margin-bottom: 24px; }
#homeReviewsGrid .public-review-stars svg { width: 16px; height: 16px; fill: var(--home-accent); }
#homeReviewsGrid blockquote { margin: 0 0 28px; color: var(--home-ink); font-size: 19px; line-height: 1.55; }
#homeReviewsGrid .public-review-meta { display: grid; gap: 3px; margin-top: auto; }
#homeReviewsGrid .public-review-meta span { color: var(--home-muted); font-size: 13px; }
#homeReviewsGrid .public-review-source { margin-top:9px; font-size:11px; line-height:1.4; }

.home-page .v57-process { grid-template-columns:repeat(4,minmax(0,1fr)); }
.home-page .v57-process article { padding:28px; }

.home-page .v57-cta { padding-block: 78px; }
.home-page .v57-cta .v57-container { gap: 60px; }
.home-page .v57-cta h2 { max-width: 720px; font-size: clamp(38px,4.5vw,62px); line-height: 1; letter-spacing: -.05em; }
.home-page .v57-cta p { max-width: 690px; font-size: 16px; line-height: 1.6; }
.home-cta-actions { display: grid; flex: 0 0 auto; gap: 15px; }
.home-pricing-link { color: #eef2eb; font-size: 14px; font-weight: 750; text-align: center; text-underline-offset: 5px; }

html[data-theme="dark"] .home-page { --home-ink:#f1f4ef; --home-muted:#aeb7aa; --home-line:#333a30; --home-soft:#151914; }
html[data-theme="dark"] .home-page .home-service { background:#11140f !important; border-color:#343b31 !important; }
html[data-theme="dark"] .home-page .home-service.web { border-top-color:#78a900 !important; }
html[data-theme="dark"] .home-page .home-service.design { border-top-color:#5f8995 !important; }
html[data-theme="dark"] .home-page .home-service.video { border-top-color:#9276aa !important; }
html[data-theme="dark"] .home-page .home-service::after { opacity:.22; }
html[data-theme="dark"] .home-page .home-service-label { background:#20251e; color:#c8d0c5; }
html[data-theme="dark"] .home-page .home-service.design .home-service-label { background:#172529; color:#b8ced3; }
html[data-theme="dark"] .home-page .home-service.video .home-service-label { background:#251f2a; color:#d1c3dc; }
html[data-theme="dark"] .home-price-guide { background:#11140f; border-color:#343b31; }
html[data-theme="dark"] .home-page .home-service .home-service-for,
html[data-theme="dark"] .home-page .home-service li { color:var(--home-muted) !important; }
html[data-theme="dark"] .home-proof-links a { color:var(--home-ink); }
html[data-theme="dark"] .home-proof-links a:hover { background:#171c14; }
html[data-theme="dark"] .home-reviews-section { background:#151914 !important; }
html[data-theme="dark"] #homeReviewsGrid .public-review { background:#0f120e !important; border-color:#343b31 !important; }
html[data-theme="dark"] #homeReviewsGrid blockquote,
html[data-theme="dark"] .home-text-link { color:var(--home-ink) !important; }

@media(max-width:980px){
  .home-page .v57-hero {
    width:100%;
    padding-inline:clamp(28px,4vw,40px) !important;
  }
  .home-page .v57-hero h1 { font-size:clamp(43px,6.2vw,58px); }
  .home-page .v57-hero-art { height:clamp(330px,46vw,430px); min-height:0; }
  .home-page .v57-process { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media(max-width:900px){
  .home-proof-links { grid-template-columns:1fr; }
  .home-proof-links a { min-height:210px; }
  .home-page .v57-review { grid-template-columns:1fr; }
}

@media(max-width:680px){
  .home-page .v57-hero { padding:48px 20px 62px !important; }
  .home-page .v57-hero h1 { font-size:clamp(36px,10.2vw,46px) !important; }
  .home-page .v57-hero-actions { display:grid; }
  .home-page .v57-hero-actions .v57-btn { width:100%; }
  .home-hero-proof { display:grid; gap:10px; }
  .home-hero-proof span { min-height:52px; padding-block:11px; }
  .home-services .v57-grid3 { gap:16px; }
  .home-page .home-service { min-height:0; padding:26px !important; }
  .home-page .home-service .home-service-for { min-height:0; }
  .home-price-guide { align-items:flex-start; flex-direction:column; padding:22px; }
  .home-proof-links a { min-height:190px; padding:26px; }
  #homeReviewsGrid { grid-template-columns:1fr; }
  #homeReviewsGrid .public-review:first-child { grid-column:auto; }
  #homeReviewsGrid .public-review { min-height:0; }
  .home-page .v57-cta .v57-container { display:grid; }
  .home-cta-actions,.home-cta-actions .v57-btn { width:100%; }
  .home-page .v57-process { grid-template-columns:1fr; }
  .portfolio-viewport img { display:block; }
  .portfolio-viewport iframe { display:none; }
}

@media(max-width:430px){
  .home-page .v57-hero { padding-inline:18px !important; }
  .home-page .v57-hero p { font-size:16px; }
  .home-page .v57-section { padding-block:60px; }
  .home-page .v57-title { margin-bottom:34px; }
  .home-page .home-service { padding:23px !important; }
  .home-proof-links a { padding:23px; }
  #homeReviewsGrid .public-review { padding:23px !important; }
  .home-page .v57-cta { padding-block:60px; }
}

@media(max-width:360px){
  .home-page .v57-hero { padding-inline:16px !important; }
  .home-page .v57-hero h1 { font-size:36px !important; }
  .home-page .v57-btn { padding-inline:18px; }
  .home-service-top { margin-bottom:22px; }
}

@media(max-width:320px){
  .home-page .v57-hero { padding-inline:14px !important; }
  .home-page .v57-hero h1 { font-size:33px !important; }
  .home-page .home-service,#homeReviewsGrid .public-review { padding:20px !important; }
  .home-proof-links a { padding:20px; }
}
