/* ==========================================================================
   Living Lash Beauty — tema landing page
   Self-contained: index.html hanya memuat file ini (styles.css + media.css
   tetap dipakai halaman anak). Arah visual: kertas hangat, serif elegan,
   aksen tan, tombol pill, bingkai arch.
   ========================================================================== */

:root{
  --paper:#F1EEE9;
  --paper-hi:#FAF8F5;
  --sand:#E7DBCA;
  --ink:#2A1F1A;
  --espresso:#2E221C;
  --muted:#6F655E;
  --tan:#8B6A48;
  --tan-soft:#B99368;
  --line:rgba(42,31,26,.14);
  --line-soft:rgba(42,31,26,.08);
  --serif:'Cormorant Garamond',Georgia,serif;
  --sans:'Manrope',system-ui,Arial,sans-serif;
  --arch:999px 999px 20px 20px;
  --arch-outer:999px 999px 40px 40px;
  --r:20px;
  --r-sm:14px;
  --ease:cubic-bezier(.22,.61,.36,1);
  --shell:min(1180px,90%);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}

body{
  margin:0;
  color:var(--ink);
  font:400 16px/1.7 var(--sans);
  -webkit-font-smoothing:antialiased;
  background-color:var(--paper);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.05'/%3E%3C/svg%3E");
}

img,video{max-width:100%}
h1,h2,h3,h4{font-family:var(--serif);font-weight:600;line-height:1.08;letter-spacing:-.02em;margin:0}
h1{font-size:clamp(42px,6vw,76px)}
h2{font-size:clamp(30px,4.4vw,52px)}
h3{font-size:24px;line-height:1.22}
p{margin:0}
em{font-style:italic;font-weight:500;color:var(--tan)}

.section-shell{width:var(--shell);margin-inline:auto}
.block{padding:104px 0}

.kicker{
  display:inline-flex;align-items:center;gap:9px;margin:0 0 16px;
  font:700 10px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--tan);
}
.block-head{max-width:680px;margin-bottom:44px}
.block-head p{margin-top:18px;color:var(--muted);font-size:16px}

/* --- sparkle ------------------------------------------------------------ */
.spark{display:inline-block;width:1em;height:1em;flex:0 0 auto;color:var(--tan-soft)}
.spark svg{width:100%;height:100%;display:block;fill:currentColor}

/* --- tombol ------------------------------------------------------------- */
.button{
  display:inline-flex;align-items:center;justify-content:center;gap:12px;
  min-height:52px;padding:15px 30px;border:1px solid transparent;border-radius:999px;
  font:700 10.5px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;
  text-decoration:none;transition:.3s var(--ease);
}
.button span{font-size:14px;line-height:0}
.button-dark{background:var(--espresso);color:#F7F1E9}
.button-dark:hover{background:var(--tan)}
.button-light{background:var(--paper-hi);color:var(--ink)}
.button-light:hover{background:#fff}
.button-ghost{border-color:var(--line);color:var(--ink);background:transparent}
.button-ghost:hover{border-color:var(--tan);color:var(--tan)}

.text-link{
  display:inline-flex;align-items:center;gap:7px;min-height:44px;
  color:var(--ink);text-decoration:none;
  font:700 10.5px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;
}
.text-link span{font-size:15px;line-height:0}
.text-link:hover{color:var(--tan)}

.block-cta{display:flex;flex-wrap:wrap;align-items:center;gap:14px 28px;margin-top:34px}

/* --- header ------------------------------------------------------------- */
.site-header{
  position:sticky;top:0;z-index:20;
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  height:86px;padding:0 5vw;
  background:rgba(241,238,233,.86);backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line-soft);
}
.brand{display:flex;align-items:center;text-decoration:none;flex:0 0 auto}
.brand-logo{width:146px;height:44px;object-fit:contain;display:block}
.nav-links{display:flex;flex:1;justify-content:center;gap:clamp(18px,3vw,38px)}
.nav-links a{
  color:var(--ink);text-decoration:none;
  font:600 11px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;
}
.nav-links a:hover{color:var(--tan)}
.header-cta{min-height:46px;padding:13px 24px;flex:0 0 auto}

.skip-link{
  position:fixed;left:14px;top:-70px;z-index:40;padding:12px 18px;border-radius:999px;
  background:var(--espresso);color:#F7F1E9;text-decoration:none;font:700 11px var(--sans);
}
.skip-link:focus{top:14px}

/* --- hero --------------------------------------------------------------- */
.hero{
  display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(36px,6vw,84px);
  align-items:center;padding:76px 0 96px;
}
.hero h1{margin-bottom:26px}
.hero h1 em{display:block}
.hero-text{color:var(--muted);font-size:17.5px;max-width:480px}
.hero-brand{margin-top:20px;font:500 italic 21px/1.4 var(--serif);color:var(--tan)}
.hero-facts{
  list-style:none;display:flex;flex-wrap:wrap;gap:10px 12px;margin:32px 0 0;padding:0;
}
.hero-facts li{
  display:flex;align-items:center;min-height:38px;padding:8px 18px;
  border:1px solid var(--line);border-radius:999px;
  color:var(--muted);font-size:13px;white-space:nowrap;
}
.hero-facts a{
  display:inline-flex;align-items:center;
  color:var(--ink);font-weight:600;text-decoration:none;
}
.hero-facts a:hover{color:var(--tan)}
.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px 28px;margin-top:34px}

.ba{position:relative;margin:0;max-width:480px;width:100%;margin-inline:auto}
.ba::before{
  content:'';position:absolute;inset:-20px -20px 54px;
  border:1px solid var(--line);border-radius:var(--arch-outer);pointer-events:none;
}
.ba-wrap{
  position:relative;aspect-ratio:1/1;overflow:hidden;
  border-radius:var(--arch);background:var(--sand);
}
.ba-after,.ba-before img{width:100%;height:100%;object-fit:cover;display:block}
.ba-before img{max-width:none}
.ba-before{position:absolute;inset:0;width:50%;overflow:hidden}
.ba-garis{
  position:absolute;top:0;bottom:0;width:2px;background:#FAF8F5;
  transform:translateX(-1px);pointer-events:none;box-shadow:0 0 0 1px rgba(42,31,26,.12);
}
.ba-garis::after{
  content:'\2039\00a0\00a0\203A';
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  display:grid;place-items:center;width:52px;height:52px;border-radius:50%;
  background:#FAF8F5;color:var(--ink);
  font:400 20px/1 var(--sans);letter-spacing:.04em;text-indent:.04em;
  box-shadow:0 4px 16px rgba(42,31,26,.22);
}
.ba-range{
  position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;
  cursor:ew-resize;-webkit-appearance:none;appearance:none;background:transparent;border:0;
}
.ba-range::-webkit-slider-thumb{-webkit-appearance:none;width:44px;height:100%;opacity:0}
.ba-range::-moz-range-thumb{width:44px;height:100%;border:0;opacity:0}
.ba-tag{
  position:absolute;bottom:16px;padding:7px 14px;border-radius:999px;
  background:rgba(42,31,26,.78);color:#F7F1E9;
  font:700 9px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;pointer-events:none;
}
.ba-tag-a{left:16px}
.ba-tag-b{right:16px}
.ba figcaption{margin-top:34px;color:var(--muted);font-size:12.5px;line-height:1.6;text-align:center}

.hero-spark{position:absolute;color:var(--tan-soft);pointer-events:none}
.hero-spark-a{top:-30px;right:46px;width:24px;height:24px}
.hero-spark-b{bottom:60px;left:-26px;width:15px;height:15px}
.hero-spark-c{top:96px;right:-30px;width:18px;height:18px}

/* --- kartu keberatan ---------------------------------------------------- */
.info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.info-item{
  padding:32px 34px;border-radius:var(--r);background:var(--paper-hi);
  border:1px solid var(--line-soft);
}
.info-item strong{
  display:block;font:600 19px/1.35 var(--serif);color:var(--ink);
}
.info-item span{display:block;margin-top:12px;color:var(--muted);font-size:14.5px;line-height:1.65}

/* --- bukti & galeri ----------------------------------------------------- */
.proof-section{padding:104px 0 112px}
.gallery-rail{
  display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;
  scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-bottom:4px;
}
.gallery-rail::-webkit-scrollbar{display:none}
.gallery-rail figure{
  margin:0;flex:0 0 clamp(200px,26%,272px);aspect-ratio:4/5;overflow:hidden;
  border-radius:var(--r);background:var(--sand);scroll-snap-align:start;
}
.gallery-rail img,.gallery-rail video{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s var(--ease)}
.gallery-rail figure:hover img,.gallery-rail figure:hover video{transform:scale(1.045)}
.rail-hint{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;margin-top:18px;
  color:var(--muted);font:700 9.5px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;
}

/* --- testimoni (blok gelap) --------------------------------------------- */
.testi-section{
  background:var(--espresso);color:#F2E9DF;border-radius:32px;
  padding:88px 0 92px;margin:0 auto;width:var(--shell);
}
.testi-section .section-shell{width:min(1060px,86%)}
.testi-section h2{color:#F7F1E9}
.testi-section .kicker{color:var(--tan-soft)}
.testi-section .block-head p{color:#B7A79A}
.testimonial-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.testimonial-card{
  margin:0;padding:32px 34px 30px;border-radius:var(--r);
  background:rgba(247,241,233,.055);border:1px solid rgba(247,241,233,.1);
  display:flex;flex-direction:column;
}
.testimonial-stars{color:var(--tan-soft);font-size:14px;letter-spacing:3px}
.testimonial-card blockquote{margin:18px 0 auto;font:400 22px/1.45 var(--serif);color:#F5EDE4}
.testimonial-card figcaption{margin-top:26px;font:700 11px/1 var(--sans);color:#F2E9DF}
.testimonial-card figcaption small{
  display:block;margin-top:8px;color:#A99A8D;
  font-size:8.5px;letter-spacing:.18em;text-transform:uppercase;
}
.testi-section .block-cta .text-link{color:#F2E9DF}
.testi-section .block-cta .text-link:hover{color:var(--tan-soft)}

/* --- layanan ------------------------------------------------------------ */
.svc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.svc{
  display:flex;flex-direction:column;padding:36px 38px 32px;
  border-radius:var(--r);background:var(--paper-hi);border:1px solid var(--line-soft);
  text-decoration:none;color:var(--ink);transition:.3s var(--ease);
}
.svc:hover{background:#fff;border-color:var(--line)}
.svc:nth-child(3){background:var(--sand);border-color:transparent}
.svc:nth-child(3):hover{background:#EFE4D5}
.svc-top{padding-bottom:16px;border-bottom:1px solid var(--line-soft)}
.svc-top span{display:block;margin-top:10px;color:var(--muted);font-size:13px}
.svc ul{list-style:none;margin:14px 0 0;padding:0;flex:1}
.svc li{display:flex;justify-content:space-between;gap:14px;padding:11px 0;font-size:15px}
.svc li b{font-weight:400;color:var(--muted)}
.svc li i{font-style:normal;white-space:nowrap;font-weight:600}
.svc-more{
  align-self:flex-start;margin-top:18px;padding:9px 18px;border-radius:999px;
  border:1px solid var(--line);color:var(--tan);
  font:700 9.5px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;
}
.svc:hover .svc-more{border-color:var(--tan);background:var(--tan);color:#F7F1E9}
.style-note{color:var(--muted);font-size:13px;width:100%}
.style-note a{color:var(--tan);text-decoration:none;font-weight:600}
.style-note a:hover{text-decoration:underline}

/* --- sudah termasuk ----------------------------------------------------- */
.perk-grid{list-style:none;display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin:0;padding:0}
.perk{
  padding:28px 24px;border-radius:var(--r-sm);background:var(--paper-hi);
  border:1px solid var(--line-soft);font-size:14px;line-height:1.55;
}
.perk .spark{display:block;margin-bottom:16px;width:17px;height:17px;color:var(--tan)}

/* --- lokasi ------------------------------------------------------------- */
.place{display:grid;grid-template-columns:1fr 1.05fr;gap:40px;align-items:start}
.place-address{font:600 clamp(26px,3vw,38px)/1.25 var(--serif)}
.place-street{margin-top:10px;color:var(--muted);font-size:14px}
.place-meta{margin:32px 0 0;display:grid;gap:16px}
.place-meta div{display:grid;grid-template-columns:96px 1fr;gap:18px;align-items:baseline}
.place-meta dt{font:700 9px/1.8 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--tan)}
.place-meta dd{margin:0;font-size:14px;line-height:1.6}
.place .button{margin-top:32px}
.place-map{position:relative;aspect-ratio:4/3;overflow:hidden;border-radius:var(--r);background:var(--sand)}
.place-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(.35) contrast(1.04)}

.route-block{margin-top:56px;padding-top:38px;border-top:1px solid var(--line-soft)}
.route-block h3{margin-bottom:28px}
.route{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:0;padding:0}
.route li{position:relative;padding-top:40px}
.route li::before{content:'';position:absolute;top:15px;left:32px;right:-18px;height:1px;background:var(--line-soft)}
.route li:last-child::before{display:none}
.route-num{
  position:absolute;top:0;left:0;width:31px;height:31px;border-radius:50%;
  border:1px solid var(--tan);color:var(--tan);display:grid;place-items:center;
  font:700 11px/1 var(--sans);
}
.route li:last-child .route-num{background:var(--espresso);border-color:var(--espresso);color:#F7F1E9}
.route p{font-size:13px;line-height:1.6;color:var(--muted)}
.route p b{color:var(--ink);font-weight:600}

/* --- faq ---------------------------------------------------------------- */
.faq-list{display:grid;gap:12px;max-width:860px}
.faq-list details{
  border:1px solid var(--line);border-radius:var(--r-sm);background:var(--paper-hi);
  padding:0 28px;
}
.faq-list details[open]{border-color:var(--tan)}
.faq-list summary{
  cursor:pointer;list-style:none;position:relative;
  padding:22px 40px 22px 0;font:600 19px/1.35 var(--serif);
}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{
  content:'+';position:absolute;right:0;top:50%;transform:translateY(-50%);
  font:400 24px/1 var(--sans);color:var(--tan);
}
.faq-list details[open] summary::after{content:'\2212'}
.faq-list details p{max-width:640px;margin:0 0 24px;color:var(--muted);font-size:14.5px}
.faq-list p a{color:var(--tan);font-weight:600;text-decoration:none;border-bottom:1px solid var(--tan-soft)}

/* --- reservasi ---------------------------------------------------------- */
.booking-section{padding:0 0 112px}
.booking-card{
  position:relative;overflow:hidden;border-radius:32px;
  background:var(--espresso);color:#F7F1E9;
  padding:64px 68px;display:flex;align-items:flex-end;justify-content:space-between;gap:40px;
}
.booking-card::after{
  content:'';position:absolute;width:360px;height:360px;right:-90px;top:-120px;
  border:1px solid rgba(185,147,104,.4);border-radius:50%;
}
.booking-card>*{position:relative;z-index:1}
.booking-card h2{color:#F7F1E9}
.booking-card h2 em{color:var(--tan-soft)}
.booking-copy{margin-top:24px;max-width:330px;color:#B7A79A;font-size:14px}
.booking-act{display:flex;flex-direction:column;align-items:flex-start;gap:16px;max-width:380px}
.booking-offer{
  padding:13px 18px;border-radius:var(--r-sm);border:1px solid rgba(185,147,104,.42);
  color:#EEE2D6;font-size:12.5px;line-height:1.6;
}
.booking-offer b{color:#fff;font-weight:700}
.booking-risk,.booking-scarcity{color:#A99A8D;font-size:11.5px;line-height:1.7}
.booking-scarcity b{color:#E4D5C5}

/* --- footer ------------------------------------------------------------- */
.site-footer{
  background:var(--espresso);color:#A99A8D;
  padding:52px 5vw 44px;
  display:flex;justify-content:space-between;align-items:flex-start;gap:32px;flex-wrap:wrap;
  font-size:11px;
}
.footer-brand .brand-logo{width:150px;height:44px;filter:brightness(0) invert(1) opacity(.9)}
.footer-links{display:flex;flex-direction:column;align-items:flex-start}
.social-links{display:flex;flex-wrap:wrap;gap:22px}
.footer-links a{
  display:inline-flex;align-items:center;min-height:40px;
  color:#F2E9DF;text-decoration:none;font:600 10.5px/1 var(--sans);
  letter-spacing:.14em;text-transform:uppercase;
}
.footer-links a:hover{color:var(--tan-soft)}
.privacy-footer-link{margin-top:6px;color:#A99A8D!important;font-weight:400!important;letter-spacing:.02em!important;text-transform:none!important;font-size:11px!important}

/* --- bar WhatsApp mobile ------------------------------------------------ */
.mobile-booking{display:none}

/* --- fokus & motion ----------------------------------------------------- */
.button:focus-visible,.text-link:focus-visible,.nav-links a:focus-visible,.brand:focus-visible,
.svc:focus-visible,.faq-list summary:focus-visible,.gallery-rail:focus-visible,
.hero-facts a:focus-visible,.footer-links a:focus-visible,.mobile-booking:focus-visible,
.faq-list p a:focus-visible,.style-note a:focus-visible{
  outline:3px solid var(--tan);outline-offset:4px;border-radius:4px;
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}

/* --- responsif ---------------------------------------------------------- */
@media(max-width:1000px){
  .perk-grid{grid-template-columns:repeat(2,1fr)}
  .testimonial-grid{grid-template-columns:1fr}
}
@media(max-width:860px){
  .site-header{height:74px;padding:0 5%}
  .nav-links{display:none}
  .header-cta{min-height:42px;padding:12px 18px;letter-spacing:.12em}
  .hero{grid-template-columns:1fr;padding:44px 0 60px;gap:44px}
  .ba{max-width:420px}
  .ba::before{inset:-14px -14px 48px}
  .hero-spark-a,.hero-spark-b,.hero-spark-c{display:none}
  .block{padding:60px 0}
  .proof-section{padding:60px 0}
  .testi-section{border-radius:24px;padding:60px 0 64px;width:min(1180px,94%)}
  .info-grid,.svc-grid{grid-template-columns:1fr}
  .place{grid-template-columns:1fr;gap:28px}
  .place-map{aspect-ratio:16/11}
  .booking-card{flex-direction:column;align-items:stretch;padding:44px 32px;border-radius:24px}
  .booking-act{max-width:none}
  .route{grid-template-columns:1fr;gap:0}
  .route li{padding:0 0 22px 44px}
  .route li::before{top:34px;bottom:-2px;left:15px;right:auto;width:1px;height:auto}
  .route li:last-child{padding-bottom:0}
  .route-num{top:1px}
  body{padding-bottom:82px}
  .mobile-booking{
    display:flex;position:fixed;left:14px;right:14px;bottom:14px;z-index:30;
    align-items:center;justify-content:center;gap:12px;
    padding:16px 20px;border-radius:999px;background:var(--espresso);color:#F7F1E9;
    text-decoration:none;font:700 11px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;
    box-shadow:0 10px 30px rgba(42,31,26,.26);
  }
  .mobile-booking span{font-size:15px;line-height:0}
}
@media(max-width:560px){
  .perk-grid{grid-template-columns:1fr}
  .hero-facts{flex-direction:column;align-items:flex-start;gap:8px}
  .hero-facts li{width:100%}
  .hero-actions{flex-direction:column;align-items:stretch}
  .hero-actions .button{width:100%}
  .info-item,.svc{padding:28px 24px}
  .faq-list details{padding:0 20px}
  .faq-list summary{font-size:17px;padding:20px 34px 20px 0}
  .gallery-rail figure{flex:0 0 68%}
}
