/* Original editorial directory. DESIGN_VARIANCE 6 / MOTION_INTENSITY 3 / VISUAL_DENSITY 5.
   Native HTML/CSS, dark reference-led palette, 12px surfaces and 8px controls.
   The reference's dark theme is intentional; no framework or external runtime is required. */
:root {
  color-scheme:dark;
  --bg:#111111;
  --surface:#191919;
  --raised:#202020;
  --text:#f4f2ef;
  --muted:#a8a6a5;
  --line:#30302f;
  --accent:#ff7066;
  --accent-solid:#ff786e;
  --accent-dim:#35201e;
  --radius:12px;
  --font:"Helvetica Neue",Arial,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif
}

* {
  box-sizing:border-box
}

html {
  scroll-behavior:smooth;
  scroll-padding-top:105px
}

body {
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:var(--font);
  font-size:14px;
  line-height:1.7;
  -webkit-font-smoothing:antialiased
}

button,input,select {
  font:inherit
}

button,a,input,select,summary {
  -webkit-tap-highlight-color:transparent
}

button,a {
  touch-action:manipulation
}

button {
  color:inherit;
  cursor:pointer
}

a {
  color:inherit;
  text-decoration:none
}

button {
  border:0
}

button:disabled {
  cursor:default
}

a,button,input,select,summary {
  outline-offset:5px
}

a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible {
  outline:2px solid var(--accent)
}

button,a {
  transition:color .18s ease,background .18s ease,border-color .18s ease,transform .18s ease
}

img {
  display:block;
  max-width:100%
}

h1,h2,h3,p {
  margin:0
}

h1,h2,h3 {
  font-weight:700
}

button {
  background:none
}

::selection {
  background:var(--accent);
  color:var(--bg)
}

[hidden] {
  display:none!important
}

.container {
  width:min(1240px,calc(100% - 112px));
  margin-inline:auto
}

.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:-80px;
  padding:12px 20px;
  background:var(--accent);
  color:var(--bg);
  z-index:100
}

.skip-link:focus {
  top:10px
}

.site-header {
  position:sticky;
  top:0;
  z-index:20;
  background:rgb(17 17 17 / .97);
  border-bottom:1px solid var(--line)
}

.header-inner {
  height:80px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:36px
}

.brand {
  display:inline-flex;
  align-items:baseline;
  font-family:Arial,sans-serif;
  font-weight:900;
  font-size:36px;
  letter-spacing:-2.4px;
  line-height:1
}

.brand>span:first-child {
  color:var(--accent)
}

.brand-country {
  font-size:9px!important;
  font-weight:600;
  letter-spacing:2px;
  margin-left:13px;
  color:var(--muted);
  align-self:center;
  border-left:1px solid #4b4a48;
  padding:4px 0 4px 13px
}

.brand-name {
  font-family:"Hiragino Sans","Yu Gothic","Meiryo",sans-serif;
  font-size:clamp(12px,1.7vw,18px);
  font-weight:800;
  letter-spacing:0;
  white-space:nowrap
}

.desktop-nav {
  display:flex;
  align-items:center;
  gap:34px;
  margin-right:auto;
  margin-left:44px;
  height:100%
}

.desktop-nav a {
  font-size:12px;
  color:var(--muted);
  height:100%;
  display:flex;
  align-items:center;
  position:relative;
  font-weight:600
}

.desktop-nav a:hover,.desktop-nav a.current {
  color:var(--text)
}

.desktop-nav a.current:after {
  position:absolute;
  bottom:-1px;
  height:2px;
  background:var(--accent);
  width:100%;
  content:""
}

.header-actions {
  display:flex;
  align-items:center;
  gap:24px
}

.saved-nav {
  font-size:12px;
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 0;
  white-space:nowrap
}

.saved-nav:hover,.saved-nav[aria-pressed=true] {
  color:var(--accent)
}

.saved-count {
  font-size:10px;
  display:grid;
  place-items:center;
  border:1px solid #474644;
  min-width:20px;
  height:20px;
  border-radius:5px;
  color:var(--muted)
}

.age-label {
  font-size:11px;
  border:1px solid #4b4946;
  border-radius:4px;
  padding:2px 5px;
  color:#c8c5c0;
  line-height:1.4
}

.menu-toggle,.mobile-nav {
  display:none
}

.hero {
  display:grid;
  grid-template-columns:1.12fr 1fr;
  min-height:455px;
  position:relative;
  align-items:center;
  padding-block:54px 57px;
  isolation:isolate
}

.hero-copy {
  position:relative;
  z-index:2
}

.eyebrow {
  font-size:10px;
  letter-spacing:2.1px;
  color:#c4c1bb;
  font-weight:600;
  margin-bottom:24px
}

.hero h1 {
  font-size:clamp(40px,4.4vw,62px);
  line-height:1.35;
  letter-spacing:-2px;
  font-weight:800;
  white-space:nowrap
}

.hero h1>span {
  color:var(--accent)
}

.hero-description {
  font-size:14px;
  line-height:2.1;
  color:#b5b1ad;
  margin-top:23px
}

.hero-actions {
  display:flex;
  align-items:center;
  gap:28px;
  margin-top:30px
}

.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:34px;
  min-height:48px;
  border-radius:8px;
  padding:12px 23px;
  font-weight:700;
  font-size:13px;
  white-space:nowrap
}

.button span {
  font-size:20px;
  line-height:1
}

.button-primary {
  background:var(--accent-solid);
  color:#1d1513;
  border:1px solid var(--accent-solid)
}

.button-primary:hover {
  background:#ff9086;
  transform:translateY(-2px)
}

.button-secondary {
  background:var(--raised);
  border:1px solid #49433f
}

.button-secondary:hover {
  background:#2c2825
}

.text-link {
  display:inline-flex;
  align-items:center;
  gap:16px;
  padding:8px 0;
  font-size:12px;
  font-weight:600
}

.text-link:hover {
  color:var(--accent)
}

.hero-visual {
  position:absolute;
  width:64%;
  height:100%;
  right:-55px;
  top:0;
  z-index:-1;
  overflow:hidden;
  pointer-events:none
}

.hero-visual img {
  width:100%;
  height:100%;
  object-fit:cover;
  mix-blend-mode:lighten;
  mask-image:linear-gradient(to right,transparent 0%,#000 18%,#000 90%,transparent 100%)
}

.hero-visual:after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(0deg,var(--bg),transparent 14%,transparent 90%,var(--bg));
  pointer-events:none
}

.discovery-strip {
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding-block:21px;
  gap:25px
}

.discovery-strip>p {
  font-size:12px;
  color:#c0bcb8
}

.discovery-facts {
  display:flex;
  align-items:center;
  gap:27px;
  font-size:10px;
  color:var(--muted)
}

.discovery-facts>span {
  white-space:nowrap
}

.discovery-facts strong {
  font-family:Arial,sans-serif;
  font-size:21px;
  letter-spacing:-.5px;
  color:#ece8e4;
  margin-right:6px;
  font-weight:500
}

.sample-label {
  border-left:1px solid #3d3b38;
  padding-left:27px;
  color:#b7a39e
}

.directory {
  padding-top:56px;
  padding-bottom:70px
}

.section-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:27px;
  gap:20px
}

h2 {
  font-size:28px;
  letter-spacing:-.9px;
  line-height:1.55
}

.section-heading p {
  color:var(--muted);
  font-size:12px;
  margin-top:9px
}

.section-english {
  font-size:10px;
  letter-spacing:1.5px;
  color:#93908c
}

.search-form {
  display:flex;
  align-items:center;
  height:58px;
  background:var(--surface);
  border:1px solid #3c3a37;
  border-radius:10px;
  padding:5px 6px 5px 20px;
  gap:15px
}

.search-form:focus-within {
  border-color:var(--accent);
  box-shadow:0 0 0 1px var(--accent)
}

.search-symbol {
  font:34px/1 Arial,sans-serif;
  transform:rotate(-15deg);
  color:#c1b8b1
}

.search-form input {
  width:100%;
  flex:1;
  min-width:0;
  background:transparent;
  border:0;
  color:var(--text);
  font-size:13px;
  outline:none;
  padding:12px 0
}

.search-form input:focus-visible {
  outline:none
}

.search-form input::placeholder {
  color:#a09b94;
  opacity:1
}

.search-shortcut {
  border:1px solid #4a4742;
  border-radius:4px;
  color:#a09b94;
  font-size:12px;
  width:22px;
  height:23px;
  text-align:center;
  line-height:22px
}

.search-submit {
  height:44px;
  padding:0 24px;
  display:flex;
  align-items:center;
  gap:24px;
  background:#302c28;
  border:1px solid #413b35;
  border-radius:6px;
  font-size:12px;
  font-weight:600;
  white-space:nowrap
}

.search-submit:hover {
  background:#43352f
}

.category-tabs {
  display:flex;
  gap:8px;
  margin-top:22px;
  overflow-x:auto;
  padding-block:2px 8px;
  scrollbar-width:thin;
  scrollbar-color:#595149 transparent
}

.category-tabs>button {
  display:flex;
  align-items:center;
  gap:16px;
  white-space:nowrap;
  padding:10px 19px;
  border:1px solid #353331;
  border-radius:7px;
  color:#b7b2ab;
  font-size:12px;
  min-height:44px;
  flex-shrink:0
}

.category-tabs>button>span {
  font-size:10px;
  color:#a69d94
}

.category-tabs>button.active {
  background:var(--accent);
  border-color:var(--accent);
  color:#201815;
  font-weight:700
}

.category-tabs>button.active>span {
  color:#57342c
}

.category-tabs>button:not(.active):hover {
  border-color:#72615a;
  color:var(--text);
  background:#221f1d
}

.filter-row {
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-bottom:1px solid var(--line);
  padding:15px 0 22px;
  gap:16px
}

.filter-options {
  display:flex;
  align-items:center;
  gap:25px;
  flex-wrap:wrap
}

.filter-check {
  display:inline-flex;
  align-items:center;
  gap:9px;
  font-size:11px;
  color:#bdb7b1;
  cursor:pointer;
  min-height:28px;
  position:relative
}

.filter-check input {
  position:absolute;
  opacity:0;
  width:17px;
  height:17px;
  left:0;
  margin:0;
  cursor:pointer
}

.checkbox-box {
  height:15px;
  width:15px;
  border:1px solid #68605a;
  border-radius:3px;
  display:grid;
  place-items:center;
  transition:background .15s
}

.filter-check input:checked+.checkbox-box {
  background:var(--accent);
  border-color:var(--accent)
}

.filter-check input:checked+.checkbox-box:after {
  content:"✓";
  font-size:11px;
  font-weight:bold;
  color:#1c1613
}

.filter-check input:focus-visible+.checkbox-box {
  outline:2px solid var(--accent);
  outline-offset:4px
}

.filter-reset {
  font-size:10px;
  color:var(--accent);
  padding:5px 0;
  text-decoration:underline;
  text-underline-offset:4px
}

.sort-control select {
  background:var(--bg);
  border:none;
  font-size:11px;
  color:#bcb5ae;
  padding:8px 24px 8px 4px;
  cursor:pointer;
  max-width:160px
}

.results-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding-block:25px 18px;
  gap:16px
}

.results-heading h3 {
  font-size:14px;
  letter-spacing:.1px
}

.results-heading h3 span {
  font-size:11px;
  color:var(--muted);
  font-weight:400;
  margin-left:12px
}

.demo-note {
  font-size:10px;
  color:#a49b93
}

.service-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px
}

.service-card {
  min-width:0;
  border:1px solid #34312f;
  background:var(--surface);
  border-radius:var(--radius);
  padding:24px;
  position:relative;
  display:flex;
  flex-direction:column;
  transition:border-color .2s ease,transform .2s ease
}

.service-card:hover {
  border-color:#68534d;
  transform:translateY(-3px)
}

.service-card.featured {
  border-color:#865049;
  background:linear-gradient(125deg,#2c211f,var(--surface) 68%)
}

.card-top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  margin-bottom:22px
}

.service-logo {
  width:48px;
  height:48px;
  border-radius:12px;
  display:grid;
  place-items:center;
  font-family:Arial,sans-serif;
  font-size:28px;
  font-weight:600;
  line-height:1;
  letter-spacing:-1.5px;
  flex-shrink:0;
  background:#312725;
  color:#f8c1b6;
  border:1px solid #55403a
}

.logo-tsuki {
  background:#ffada0;
  color:#391e18;
  font-size:33px;
  font-weight:400
}

.logo-iroha {
  background:#ddd4c8;
  color:#34312d;
  font-family:var(--font);
  font-size:23px;
  font-weight:500
}

.logo-velvet {
  background:#3f3434;
  color:#f3cbc8;
  font-style:italic
}

.logo-scene {
  background:#292c2d;
  color:#dce0df;
  font-weight:800;
  font-size:21px
}

.logo-oto {
  background:#292321;
  color:#e3b79c;
  font-weight:400;
  font-size:25px
}

.logo-muse {
  background:#b79b91;
  color:#251d19;
  font-size:30px
}

.logo-frame {
  background:#302e2b;
  color:#d9d0c1;
  font-size:25px
}

.logo-kotonoha {
  background:#3f302b;
  color:#ecd5bf;
  font-family:var(--font);
  font-size:20px
}

.logo-echo {
  background:#2b3030;
  color:#cad4d2;
  font-size:28px
}

.logo-fuckd { background:#2a1218; color:#ff8fa8; font-size:16px; letter-spacing:0 }
.logo-ourdream { background:#241c28; color:#e7c4ff; font-size:16px; letter-spacing:0 }
.logo-candy { background:#ffd0dc; color:#5a2434; font-size:16px; letter-spacing:0 }
.logo-promptchan { background:#1c2430; color:#d5e4ff; font-size:16px; letter-spacing:0 }
.logo-heygf { background:#3a221c; color:#ffc7b0; font-size:16px; letter-spacing:0 }
.logo-girlfriendgpt { background:#2a2438; color:#e4d4ff; font-size:16px; letter-spacing:0 }
.logo-joi { background:#3a1830; color:#ffc0e0; font-size:16px; letter-spacing:0 }
.logo-aiangels { background:#f3e6dc; color:#3a2a28; font-size:16px; letter-spacing:0 }
.logo-nomi { background:#1e2a28; color:#c9efe4; font-size:16px; letter-spacing:0 }
.logo-fantasy { background:#2c2218; color:#f0d7b0; font-size:16px; letter-spacing:0 }

.save-button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:4px;
  font-size:10px;
  min-height:36px;
  padding:8px 9px;
  color:#c1b8b0;
  border:1px solid #46403b;
  border-radius:6px;
  white-space:nowrap
}

.save-button:hover {
  border-color:var(--accent);
  color:var(--accent)
}

.save-button[aria-pressed=true] {
  background:var(--accent-dim);
  color:#ffa196;
  border-color:#7b4b42
}

.save-button .save-symbol {
  font-size:14px;
  line-height:1
}

.card-label {
  display:flex;
  align-items:center;
  gap:8px;
  min-height:16px;
  margin-bottom:7px;
  font-size:9px;
  color:#b7aaa0
}

.card-label .featured-label {
  color:#ffac9d;
  border-left:1px solid #665046;
  padding-left:8px
}

.service-card h4 {
  font-family:Arial,var(--font);
  font-size:23px;
  line-height:1.4;
  letter-spacing:-.4px;
  margin:0
}

.service-card .tagline {
  font-size:12px;
  line-height:1.9;
  margin-top:11px;
  color:#bfb6ac;
  min-height:46px
}

.card-tags {
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin:18px 0 23px
}

.card-tags>span {
  border-radius:4px;
  background:#282523;
  color:#cbc0b5;
  font-size:9px;
  padding:3px 7px;
  line-height:1.7
}

.card-tags>span.available {
  background:#332823;
  color:#e9b9a5
}

.card-bottom {
  margin-top:auto;
  padding-top:15px;
  border-top:1px solid #38322e;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px
}

.plan-label {
  font-size:10px;
  color:#b7aaa0
}

.plan-label strong {
  color:#e4dad0;
  font-weight:500
}

.detail-button {
  font-size:11px;
  font-weight:600;
  padding:5px 0 5px 7px;
  display:flex;
  gap:14px;
  align-items:center;
  white-space:nowrap
}

.detail-button span {
  font-size:17px;
  color:#cabbad
}

.detail-button:hover,.detail-button:hover span {
  color:var(--accent)
}

.catalogue-note {
  color:#a99e92;
  font-size:10px;
  text-align:center;
  margin-top:27px;
  line-height:1.9
}

.empty-state {
  padding:70px 20px;
  text-align:center;
  border:1px dashed #4a423b;
  border-radius:var(--radius);
  background:#171513
}

.empty-mark {
  font-size:42px;
  color:var(--accent)
}

.empty-state h3 {
  font-size:19px;
  margin:10px 0
}

.empty-state p {
  color:var(--muted);
  font-size:13px;
  line-height:2;
  max-width:430px;
  margin:0 auto 25px
}

.noscript-note {
  padding:24px;
  border:1px solid var(--line);
  border-radius:var(--radius)
}

.guide {
  display:grid;
  grid-template-columns:1fr 1.05fr;
  gap:100px;
  padding-block:62px 68px;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line)
}

.guide-mark {
  display:inline-block;
  font:bold 18px/1 Arial,sans-serif;
  letter-spacing:-1px;
  margin-bottom:22px
}

.guide-mark span {
  color:var(--accent)
}

.guide h2 {
  font-size:30px;
  line-height:1.65;
  letter-spacing:-.7px
}

.guide-intro>p {
  color:var(--muted);
  font-size:12px;
  line-height:2.1;
  margin-top:17px
}

.guide-intro>.text-link {
  margin-top:19px;
  color:var(--accent)
}

.guide-items {
  display:flex;
  flex-direction:column;
  justify-content:center
}

.guide-items>article {
  display:flex;
  gap:24px;
  padding:24px 0
}

.guide-items>article+article {
  border-top:1px solid #34302b
}

.guide-number {
  color:var(--accent);
  font-family:Arial,sans-serif;
  font-size:13px;
  line-height:1.8
}

.guide-items h3 {
  font-size:15px;
  margin-bottom:10px
}

.guide-items p {
  font-size:12px;
  line-height:2;
  color:var(--muted);
  max-width:380px
}

.faq {
  display:grid;
  grid-template-columns:1fr 1.5fr;
  gap:80px;
  padding-block:70px 80px
}

.faq h2 {
  font-size:28px;
  line-height:1.65
}

.faq>div>p {
  font-size:11px;
  color:var(--muted);
  margin-top:15px
}

.faq-list details {
  border-bottom:1px solid #35302b
}

.faq-list details:first-child {
  border-top:1px solid #35302b
}

.faq-list summary {
  cursor:pointer;
  list-style:none;
  font-size:12px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  padding:22px 0
}

.faq-list summary::-webkit-details-marker {
  display:none
}

.faq-list summary>span {
  font-size:18px;
  color:#bbae9e;
  transition:transform .2s
}

.faq-list details[open] summary>span {
  transform:rotate(45deg);
  color:var(--accent)
}

.faq-list details[open] summary {
  color:var(--accent)
}

.faq-list details p {
  font-size:12px;
  color:var(--muted);
  line-height:2.1;
  padding-bottom:24px;
  max-width:95%
}

.site-footer {
  border-top:1px solid var(--line);
  background:#151412
}

.footer-top {
  padding-block:43px 35px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px
}

.footer-top .brand {
  font-size:30px
}

.footer-top>div>p {
  font-size:10px;
  color:var(--muted);
  margin-top:16px
}

.footer-top nav {
  display:flex;
  gap:26px
}

.footer-top button {
  font-size:11px;
  color:#bdb2a6;
  padding:10px 0
}

.footer-top button:hover {
  color:var(--accent)
}

.footer-bottom {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  border-top:1px solid #35302b;
  padding-block:23px;
  font-size:9px;
  color:#ada092
}

.footer-bottom>p {
  display:flex;
  align-items:center;
  gap:10px
}

.footer-bottom .age-label {
  font-size:9px
}

.footer-bottom>a {
  color:#b5a595
}

.footer-bottom>a:hover {
  color:var(--accent)
}

.detail-dialog {
  width:min(550px,calc(100% - 32px));
  max-height:calc(100dvh - 48px);
  padding:0;
  border:1px solid #55473d;
  border-radius:16px;
  background:#1d1916;
  color:var(--text);
  box-shadow:0 30px 100px #090807b3;
  overscroll-behavior:contain
}

.detail-dialog::backdrop {
  background:#090807d9;
  backdrop-filter:blur(5px)
}

.dialog-inner {
  padding:38px;
  position:relative
}

.dialog-close {
  position:absolute;
  right:15px;
  top:10px;
  width:40px;
  height:40px;
  font-size:28px;
  color:#c1af9f;
  border-radius:8px
}

.dialog-close:hover {
  background:#392c25;
  color:var(--text)
}

.dialog-logo {
  margin-bottom:20px;
  width:62px;
  height:62px;
  font-size:32px
}

.dialog-kicker {
  font-size:10px;
  color:#d3a493;
  margin-bottom:9px
}

.dialog-inner h2 {
  font-size:30px;
  line-height:1.45;
  padding-right:18px
}

.dialog-description {
  font-size:13px;
  line-height:2;
  color:#c3b4a6;
  margin-top:18px
}

.dialog-facts {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
  margin:27px 0;
  padding:23px 0;
  border-block:1px solid #48392e
}

.dialog-facts dt {
  font-size:10px;
  color:#b3a08e;
  margin-bottom:7px
}

.dialog-facts dd {
  font-size:13px;
  margin:0
}

.dialog-features {
  padding-left:18px;
  color:#c8b8a7;
  font-size:12px;
  line-height:2.2;
  margin:0 0 24px
}

.dialog-note {
  font-size:10px;
  padding:13px 16px;
  background:#30241d;
  border-radius:6px;
  color:#d3b69f;
  line-height:1.9;
  margin-top:22px
}

.dialog-save {
  width:100%;
  gap:12px
}

.info-paragraph {
  font-size:13px;
  color:#c6b4a3;
  line-height:2.2;
  margin-top:20px
}

.toast {
  position:fixed;
  left:50%;
  bottom:28px;
  transform:translateX(-50%);
  padding:14px 23px;
  background:#e9d8c6;
  border:1px solid #f0ddc5;
  color:#2b2019;
  font-size:12px;
  box-shadow:0 8px 32px #09080766;
  border-radius:8px;
  z-index:50;
  max-width:calc(100% - 32px);
  text-align:center;
  white-space:normal
}

@media(min-width:1536px) {
  .hero-visual {
    right:-40px;
    width:63%
  }

  .hero h1 {
    font-size:66px
  }

  .hero {
    min-height:486px
  }

  .hero-description {
    font-size:15px
  }

}

@media(max-width:1100px) {
  .container {
    width:calc(100% - 64px)
  }

  .desktop-nav {
    gap:22px;
    margin-left:10px
  }

  .header-inner {
    gap:20px
  }

  .header-actions {
    gap:18px
  }

  .hero {
    min-height:435px
  }

  .hero h1 {
    font-size:clamp(38px,4.8vw,53px)
  }

  .hero-visual {
    right:-32px;
    width:66%
  }

  .hero-description {
    font-size:12px
  }

  .service-card {
    padding:20px
  }

  .service-grid {
    gap:14px
  }

  .guide {
    gap:50px
  }

  .discovery-facts {
    gap:20px
  }

  .sample-label {
    padding-left:20px
  }

  .faq {
    gap:45px
  }

}

@media(max-width:800px) {
  .container {
    width:calc(100% - 48px)
  }

  .header-inner {
    height:70px
  }

  .desktop-nav {
    display:none
  }

  .header-actions {
    margin-left:auto
  }

  .menu-toggle {
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:6px;
    width:30px;
    height:40px;
    padding:5px
  }

  .menu-toggle>span {
    display:block;
    width:20px;
    height:1px;
    background:var(--text);
    transition:transform .18s
  }

  .menu-toggle[aria-expanded=true]>span:first-child {
    transform:translateY(3.5px) rotate(45deg)
  }

  .menu-toggle[aria-expanded=true]>span:last-child {
    transform:translateY(-3.5px) rotate(-45deg)
  }

  .mobile-nav:not([hidden]) {
    display:flex;
    flex-direction:column;
    padding:8px 24px 20px;
    border-top:1px solid var(--line)
  }

  .mobile-nav>a {
    padding:14px 0;
    display:flex;
    justify-content:space-between;
    font-size:13px
  }

  .mobile-nav>a span {
    color:var(--accent)
  }

  .hero {
    min-height:415px;
    padding-block:42px
  }

  .hero h1 {
    font-size:42px
  }

  .eyebrow {
    font-size:8px;
    letter-spacing:1.6px
  }

  .hero-visual {
    width:76%;
    right:-24px;
    opacity:.7
  }

  .hero-visual img {
    mask-image:linear-gradient(to right,transparent,#000 60%,#000 90%,transparent)
  }

  .hero-copy {
    grid-column:1/-1
  }

  .hero-description {
    font-size:12px
  }

  .hero-actions {
    gap:23px
  }

  .hero-actions .button {
    font-size:12px
  }

  .discovery-strip {
    align-items:flex-start;
    gap:14px;
    flex-direction:column;
    padding-block:19px
  }

  .discovery-facts {
    width:100%;
    justify-content:space-between;
    gap:14px
  }

  .discovery-facts strong {
    font-size:18px
  }

  .discovery-facts .sample-label {
    border-left:0;
    padding-left:0;
    margin-left:auto
  }

  .directory {
    padding-top:38px
  }

  .section-heading h2 {
    font-size:25px
  }

  .section-english {
    display:none
  }

  .service-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px
  }

  .service-card {
    padding:23px
  }

  .guide {
    grid-template-columns:1fr 1fr;
    gap:28px;
    padding-block:45px
  }

  .guide h2 {
    font-size:23px
  }

  .guide-items>article {
    gap:16px;
    padding:18px 0
  }

  .guide-items h3 {
    font-size:12px
  }

  .guide-items p {
    font-size:11px
  }

  .faq {
    grid-template-columns:1fr 1.5fr;
    gap:28px;
    padding-block:50px
  }

  .faq h2 {
    font-size:24px
  }

  .faq-list summary {
    font-size:11px
  }

  .footer-top nav {
    gap:18px
  }

  .footer-bottom {
    flex-wrap:wrap
  }

  .footer-bottom>p {
    order:3;
    flex-basis:100%
  }

}

@media(max-width:540px) {
  html {
    scroll-padding-top:83px
  }

  .container {
    width:calc(100% - 40px)
  }

  .header-inner {
    height:66px;
    gap:12px
  }

  .brand {
    font-size:31px
  }

  .brand-name {
    font-size:12px
  }

  .brand-country {
    font-size:8px!important;
    letter-spacing:1.2px;
    margin-left:9px;
    padding-left:9px
  }

  .header-actions {
    gap:15px
  }

  .saved-nav {
    font-size:10px;
    gap:6px
  }

  .saved-count {
    width:18px;
    min-width:18px;
    height:18px;
    font-size:9px
  }

  .header-actions>.age-label {
    display:none
  }

  .menu-toggle {
    width:25px
  }

  .hero {
    min-height:465px;
    padding-top:38px;
    padding-bottom:34px;
    align-items:start;
    display:block
  }

  .eyebrow {
    font-size:8px;
    letter-spacing:1.45px;
    margin-bottom:22px
  }

  .hero h1 {
    font-size:clamp(32px,8.5vw,44px);
    line-height:1.45;
    letter-spacing:-1.6px
  }

  .hero-description {
    font-size:11px;
    line-height:2.2;
    margin-top:22px;
    max-width:96%;
    text-shadow:0 2px 9px #111
  }

  .hero-actions {
    margin-top:25px;
    gap:22px;
    flex-wrap:wrap
  }

  .hero-actions .button {
    min-height:46px;
    padding-inline:18px;
    gap:28px
  }

  .hero-actions .text-link {
    font-size:10px;
    gap:8px
  }

  .hero-visual {
    width:105%;
    height:300px;
    top:auto;
    bottom:-7px;
    right:-20px;
    opacity:.36
  }

  .hero-visual img {
    object-position:center;
    mask-image:linear-gradient(to bottom,transparent 0%,#000 18%,#000 85%,transparent 100%)
  }

  .hero-visual:after {
    background:linear-gradient(to right,var(--bg),transparent 68%)
  }

  .discovery-strip {
    padding-block:18px;
    gap:13px
  }

  .discovery-strip>p {
    font-size:11px
  }

  .discovery-facts {
    justify-content:flex-start;
    gap:23px;
    flex-wrap:wrap
  }

  .discovery-facts>span {
    font-size:9px
  }

  .discovery-facts .sample-label {
    flex-basis:100%;
    margin:0;
    font-size:9px;
    color:#bd9e91
  }

  .directory {
    padding-top:33px;
    padding-bottom:40px
  }

  .section-heading {
    margin-bottom:22px
  }

  .section-heading h2 {
    font-size:23px;
    letter-spacing:-1px
  }

  .section-heading p {
    font-size:10px;
    line-height:1.9;
    margin-top:9px
  }

  .search-form {
    height:53px;
    padding-left:13px;
    gap:10px
  }

  .search-symbol {
    font-size:29px
  }

  .search-form input {
    font-size:11px;
    padding-block:12px
  }

  .search-shortcut {
    display:none
  }

  .search-submit {
    padding:0 14px;
    font-size:11px;
    height:39px;
    gap:10px
  }

  .category-tabs {
    margin-top:16px;
    margin-right:-20px;
    padding-right:20px;
    gap:7px
  }

  .category-tabs>button {
    padding:8px 14px;
    font-size:10px;
    min-height:40px;
    gap:10px
  }

  .category-tabs>button>span {
    font-size:9px
  }

  .filter-row {
    padding-block:10px 17px;
    gap:6px;
    align-items:flex-start
  }

  .filter-options {
    gap:5px 15px
  }

  .filter-check {
    font-size:10px;
    gap:6px;
    min-height:32px
  }

  .checkbox-box {
    width:14px;
    height:14px
  }

  .sort-control select {
    font-size:10px;
    max-width:115px;
    min-height:32px;
    padding-right:0
  }

  .filter-reset {
    width:100%;
    text-align:left;
    font-size:10px
  }

  .results-heading {
    padding:22px 0 15px;
    flex-wrap:wrap;
    gap:5px
  }

  .results-heading h3 {
    font-size:13px
  }

  .results-heading h3 span {
    font-size:10px;
    margin-left:8px
  }

  .demo-note {
    font-size:8px
  }

  .service-grid {
    grid-template-columns:1fr;
    gap:14px
  }

  .service-card {
    padding:23px
  }

  .card-top {
    margin-bottom:15px
  }

  .service-logo {
    width:46px;
    height:46px
  }

  .service-card h4 {
    font-size:24px
  }

  .service-card .tagline {
    min-height:0;
    font-size:12px;
    margin-top:8px
  }

  .card-tags {
    margin:15px 0 19px
  }

  .card-label {
    font-size:9px
  }

  .card-bottom {
    padding-top:13px
  }

  .save-button {
    min-height:38px;
    padding-inline:11px
  }

  .card-tags>span {
    font-size:10px
  }

  .detail-button {
    font-size:12px
  }

  .catalogue-note {
    text-align:left;
    font-size:10px;
    margin-top:22px
  }

  .guide {
    grid-template-columns:1fr;
    gap:25px;
    padding-block:38px
  }

  .guide h2 {
    font-size:26px
  }

  .guide-mark {
    margin-bottom:19px
  }

  .guide-intro>p {
    font-size:11px;
    margin-top:15px
  }

  .guide-intro>.text-link {
    margin-top:12px
  }

  .guide-items>article {
    gap:21px;
    padding-block:21px
  }

  .guide-items h3 {
    font-size:14px
  }

  .guide-items p {
    font-size:12px;
    line-height:2
  }

  .faq {
    grid-template-columns:1fr;
    gap:26px;
    padding-block:39px 46px
  }

  .faq h2 {
    font-size:25px
  }

  .faq>div>p {
    margin-top:10px
  }

  .faq-list summary {
    font-size:12px;
    padding-block:21px;
    gap:14px
  }

  .faq-list details p {
    font-size:11px
  }

  .footer-top {
    align-items:flex-start;
    flex-direction:column;
    padding-block:30px 24px;
    gap:22px
  }

  .footer-top nav {
    flex-wrap:wrap;
    gap:20px
  }

  .footer-top button {
    font-size:10px
  }

  .footer-bottom {
    font-size:8px;
    padding-block:20px;
    gap:15px
  }

  .footer-bottom>p {
    font-size:8px
  }

  .dialog-inner {
    padding:29px 24px
  }

  .dialog-inner h2 {
    font-size:27px
  }

  .dialog-facts {
    gap:20px 15px
  }

  .dialog-description {
    font-size:12px
  }

  .info-paragraph {
    font-size:12px
  }

  .empty-state {
    padding:42px 18px
  }

  .empty-state h3 {
    font-size:16px
  }

  .empty-state p {
    font-size:12px
  }

  .empty-state .button {
    font-size:11px;
    gap:13px
  }

  .toast {
    font-size:11px;
    bottom:20px;
    width:max-content;
    max-width:calc(100% - 32px)
  }

}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }

  *,*:before,*:after {
    transition:none!important;
    animation:none!important
  }

  .button:hover,.service-card:hover {
    transform:none
  }

}

