/* IVRIS Photographer — landing page styles (standalone; does NOT import app.css).
 * Brand pinned to ivris-dollhouse-web + ivris-sales-site: Barlow, green #6aad3f,
 * warm #f8f8f5 background, 1.5px black header rule, pill buttons, generous air. */

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
:root{
  /* ---- IVRIS brand tokens (source of truth: get.ivris.ai styles.css) ---- */
  --ivris-green:#6aad3f; --ivris-green-600:#588F33; --ivris-green-050:#F0F7EA; --ivris-green-200:#CDE6BC;
  --ink-900:#111111; --ink-700:#2B2D29; --ink-500:#6B6E68; --ink-300:#B6B9B2;
  --paper:#FFFFFF; --paper-50:#F8F8F5; --paper-100:#F1F2EC; --line:#E4E6E1; --ink-band:#0E0F0D;
  --danger:#C4462E; --focus-ring:#6AAD3F;
  --radius-sm:8px; --radius-md:12px; --radius-lg:20px; --radius-xl:28px;
  --shadow-sm:0 1px 2px rgba(17,17,17,.05);
  --shadow-md:0 4px 10px rgba(17,17,17,.05), 0 14px 34px rgba(17,17,17,.07);
  --shadow-lg:0 8px 20px rgba(17,17,17,.08), 0 36px 80px rgba(17,17,17,.16);
  --ease-out:cubic-bezier(.16,1,.3,1);
  --dur-fast:150ms; --dur-base:250ms; --dur-slow:600ms;
  /* ---- legacy aliases (existing rules keep working, now brand-mapped) ---- */
  --green:var(--ivris-green); --green-light:var(--ivris-green-050); --green-dark:var(--ivris-green-600);
  --black:var(--ink-900); --ink:var(--ink-700); --gray:var(--ink-500); --gray-light:var(--paper-100);
  --border:var(--line); --white:var(--paper); --warm-bg:var(--paper-50);
  --amber:#b7791f; --amber-bg:#fdf3e0;
  --radius:var(--radius-md);
}
html{scroll-behavior:smooth;}
body{background:var(--warm-bg); color:var(--ink); font-family:'Barlow',system-ui,sans-serif;
  font-size:16px; line-height:1.6; -webkit-font-smoothing:antialiased;}
img,svg{max-width:100%; display:block;}
a{color:inherit;}

.container{max-width:1080px; margin:0 auto; padding:0 22px;}
.section{padding:88px 0;}
.section--white{background:var(--white); border-top:1px solid var(--border); border-bottom:1px solid var(--border);}
.section--dark{background:var(--black); color:#f4f4ef; border:none; position:relative; overflow:hidden;}

/* type voice (eyebrow labels removed 2026-07-11 per founder copy pass) */
.display{font-family:'Barlow Semi Condensed','Barlow',sans-serif; font-weight:700;
  font-size:clamp(34px,6vw,58px); line-height:1.06; letter-spacing:-.01em; color:var(--black); max-width:17ch;}
.display .accent{color:var(--green);}
.h2{font-family:'Barlow Semi Condensed','Barlow',sans-serif; font-weight:700;
  font-size:clamp(26px,4.2vw,38px); line-height:1.12; color:var(--black); max-width:24ch;}
.h2--light{color:#f4f4ef;}
.sub{font-size:clamp(16px,2.2vw,19px); color:var(--gray); max-width:56ch; margin-top:16px;}
.small{font-size:13px; color:var(--gray);}
.lockup{margin-bottom:44px;}

/* ---------- header ---------- */
.ivris-header{display:flex; align-items:center; justify-content:space-between; gap:14px;
  padding:16px 24px; border-bottom:1.5px solid var(--black); position:sticky; top:0;
  background:var(--white); z-index:20;}
.ivris-wordmark{font-size:19px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--black); text-decoration:none;}
.ivris-wordmark span{color:var(--green);}
.ivris-header-sub{font-size:11px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--gray);}
.header-nav{display:flex; align-items:center; gap:18px;}
.header-nav a.navlink{font-size:14px; font-weight:600; color:var(--gray); text-decoration:none;}
.header-nav a.navlink:hover{color:var(--black);}
@media(max-width:720px){.header-nav a.navlink{display:none;} .ivris-header-sub{display:none;}}

/* ---------- buttons ---------- */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:13px 22px; border-radius:var(--radius-md); border:1.5px solid var(--green);
  background:var(--green); color:#fff; font:600 15px 'Barlow',sans-serif;
  cursor:pointer; text-decoration:none; box-shadow:0 6px 18px rgba(106,173,63,.28);
  transition:all var(--dur-fast) var(--ease-out); white-space:nowrap;}
.btn:hover{background:var(--ivris-green-600); border-color:var(--ivris-green-600);}
.btn.ghost{background:transparent; color:var(--ivris-green-600); box-shadow:none;}
.btn.ghost:hover{background:var(--green); color:#fff;}
.btn.dark-ghost{background:transparent; border-color:rgba(255,255,255,.4); color:#fff; box-shadow:none;}
.btn.dark-ghost:hover{background:rgba(255,255,255,.12); border-color:#fff;}
.btn.big{padding:15px 28px; font-size:16px; border-radius:var(--radius-md);}
.btn.small{padding:9px 14px; font-size:13px; border-radius:var(--radius-sm);}
.btn.block{width:100%;}

/* ---------- hero ---------- */
.hero{position:relative; overflow:hidden; padding:96px 0 84px; text-align:left;}
.hero::before{content:''; position:absolute; top:-260px; right:-200px; width:640px; height:640px;
  border-radius:50%; background:radial-gradient(closest-side, rgba(106,173,63,.16), transparent 70%); pointer-events:none;}
.hero-ctas{display:flex; flex-wrap:wrap; gap:14px; margin-top:32px;}
.hero-chips{display:flex; flex-wrap:wrap; gap:10px; margin-top:34px; list-style:none;}
.hero-chips li{font-size:13px; font-weight:600; color:var(--green-dark); background:var(--green-light);
  border:1px solid rgba(106,173,63,.35); padding:7px 14px; border-radius:20px;}
.hero-note{margin-top:26px; font-size:14px; color:var(--gray);}

/* ---------- live demo (embedded Wisteria home + QR) ---------- */
.demo-grid{display:grid; grid-template-columns:1fr 250px; gap:18px; align-items:stretch;}
.demo-stage{display:flex; flex-direction:column; gap:12px; min-width:0;}
.demo-frame{width:100%; aspect-ratio:16/10; border:1.5px solid var(--black); border-radius:var(--radius-lg);
  background:linear-gradient(160deg,#1d1e2b,#2b2d40); box-shadow:var(--shadow-lg); display:block;}
.demo-hint{font-size:13px; color:var(--gray); text-align:center;}
.qr-card{background:var(--warm-bg); border:1px solid var(--border); border-radius:var(--radius-lg);
  padding:24px 22px; display:flex; flex-direction:column; gap:12px; align-items:flex-start;}
.qr-card .qr-svg{width:132px; height:132px; border:6px solid #fff; border-radius:var(--radius-sm);
  box-shadow:var(--shadow-sm); background:#fff;}
.qr-card h3{font-size:17px; font-weight:700; color:var(--black); line-height:1.3;}
.qr-card p{font-size:13.5px; color:var(--gray); line-height:1.55;}
.qr-open{font-size:13.5px; font-weight:700; color:var(--green-dark); text-decoration:none; margin-top:auto;}
.qr-open:hover{color:var(--green);}
.ar-pill{display:none;}
@media(max-width:720px){
  .demo-grid{grid-template-columns:1fr;}
  .qr-card{display:none;} /* can't scan the screen you're holding */
  .ar-pill{display:inline-flex; justify-self:center;}
  .demo-frame{aspect-ratio:4/5;}
}

/* ---------- try it / proof ---------- */
.try-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:18px; align-items:stretch;}
.try-card{background:var(--white); border:1px solid var(--border); border-radius:var(--radius-lg);
  padding:30px 28px; display:flex; flex-direction:column; gap:12px; align-items:flex-start;}
.try-card h3{font-family:'Barlow Semi Condensed','Barlow',sans-serif; font-size:22px; font-weight:700;
  color:var(--black); line-height:1.2;}
.try-card p{font-size:14.5px; color:var(--gray); line-height:1.6; flex:1;}
.try-card p strong{color:var(--ink);}
.try-card--accent{border:1.5px solid var(--green); background:var(--green-light);
  box-shadow:0 10px 34px rgba(106,173,63,.14);}

/* ---------- how it works ---------- */
.steps{display:grid; grid-template-columns:repeat(auto-fit,minmax(185px,1fr)); gap:18px; counter-reset:step;}
.step{background:var(--white); border:1px solid var(--border); border-radius:var(--radius); padding:24px 20px;}
.section--white .step{background:var(--warm-bg);}
.step-num{display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px;
  border-radius:50%; background:var(--ivris-green-600); color:#fff; font-weight:700; font-size:15px; margin-bottom:14px;}
.step h3{font-size:16.5px; font-weight:700; color:var(--black); margin-bottom:6px; line-height:1.3;}
.step p{font-size:13.5px; color:var(--gray); line-height:1.55;}
.step .cost{display:inline-block; margin-top:8px; font-size:12px; font-weight:700; color:var(--amber);
  background:var(--amber-bg); padding:2px 9px; border-radius:12px;}
.how-notes{margin-top:30px; display:grid; gap:12px; max-width:820px;}
.how-note{font-size:14px; color:var(--gray); line-height:1.6; padding-left:18px; position:relative;}
.how-note::before{content:''; position:absolute; left:0; top:9px; width:7px; height:7px; border-radius:50%; background:var(--green);}
.how-note strong{color:var(--ink);}

/* ---------- why it sticks ---------- */
.why-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:18px;}
.why-card{background:var(--white); border:1px solid var(--border); border-radius:var(--radius); padding:26px 24px;}
.why-card .icon{width:42px; height:42px; border-radius:11px; background:var(--green-light);
  display:flex; align-items:center; justify-content:center; margin-bottom:16px; color:var(--green-dark);}
.why-card h3{font-size:18px; font-weight:700; color:var(--black); margin-bottom:8px; line-height:1.3;}
.why-card p{font-size:14.5px; color:var(--gray);}
.why-card p strong{color:var(--ink);}

/* forever band (dark callout) */
.forever{margin-top:26px; background:var(--black); border-radius:20px; padding:52px 40px; position:relative; overflow:hidden;}
.forever::before{content:''; position:absolute; inset:auto -120px -220px auto; width:520px; height:520px;
  border-radius:50%; background:radial-gradient(closest-side, rgba(106,173,63,.35), transparent 70%);}
.forever-inner{position:relative;}
.forever h3{font-family:'Barlow Semi Condensed','Barlow',sans-serif; font-weight:700;
  font-size:clamp(26px,4vw,40px); line-height:1.1; color:#fff; max-width:20ch;}
.forever h3 .accent{color:var(--green);}
.forever p{margin-top:16px; font-size:16px; color:rgba(244,244,239,.75); max-width:62ch; line-height:1.65;}
.forever p strong{color:#fff;}
@media(max-width:560px){.forever{padding:38px 24px;}}

/* ---------- pricing ---------- */
.tier-cards{display:grid; grid-template-columns:repeat(auto-fit,minmax(228px,1fr)); gap:18px; align-items:stretch;}
.tier-card{background:var(--white); border:1.5px solid var(--border); border-radius:var(--radius);
  padding:26px 22px; display:flex; flex-direction:column; gap:10px; position:relative;}
.section--white .tier-card{background:var(--warm-bg);}
.tier-card.highlight{border-color:var(--green); box-shadow:0 10px 34px rgba(106,173,63,.14);}
.tier-flag{position:absolute; top:-11px; left:50%; transform:translateX(-50%);
  background:var(--ivris-green-600); color:#fff; font-size:11px; font-weight:700; letter-spacing:.08em;
  text-transform:uppercase; padding:3px 12px; border-radius:20px; white-space:nowrap;}
.tier-name{font-size:15px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--black);}
.tier-price{font-size:32px; font-weight:700; color:var(--black); line-height:1;}
.tier-price small{font-size:14px; font-weight:500; color:var(--gray);}
.tier-homes{font-size:13.5px; font-weight:600; color:var(--green-dark);}
.tier-feats{list-style:none; font-size:13.5px; color:var(--gray); line-height:2; flex:1;}
.tier-feats li::before{content:'✓  '; color:var(--green); font-weight:700;}
.tier-feats li.no{color:#b6b6b0;}
.tier-feats li.no::before{content:'✕  '; color:#c9c9c3;}
.pricing-foot{margin-top:28px; font-size:14px; color:var(--gray); max-width:72ch; line-height:1.65;}
.pricing-foot strong{color:var(--ink);}

/* ---------- FAQ ---------- */
.faq{max-width:780px;}
.faq details{background:var(--white); border:1px solid var(--border); border-radius:var(--radius);
  padding:0; margin-bottom:12px; overflow:hidden;}
.faq summary{list-style:none; cursor:pointer; padding:20px 54px 20px 22px; font-size:16.5px; font-weight:600;
  color:var(--black); position:relative; user-select:none;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:'+'; position:absolute; right:22px; top:50%; transform:translateY(-50%);
  font-size:22px; font-weight:400; color:var(--green); transition:transform .18s;}
.faq details[open] summary::after{transform:translateY(-50%) rotate(45deg);}
.faq .faq-body{padding:0 22px 22px; font-size:14.5px; color:var(--gray); line-height:1.7;}
.faq .faq-body strong{color:var(--ink);}
.legal-flag{display:inline-block; margin-left:8px; vertical-align:2px; font-size:10px; font-weight:800;
  letter-spacing:.08em; text-transform:uppercase; color:var(--amber); background:var(--amber-bg);
  border:1px solid rgba(183,121,31,.35); padding:2px 8px; border-radius:10px;}

/* ---------- final CTA ---------- */
.final{text-align:center;}
.final .h2{margin:0 auto;}
.final .sub{margin:16px auto 0;}
.final-ctas{display:flex; flex-wrap:wrap; gap:14px; justify-content:center; margin-top:34px;}
.final-trust{margin-top:26px; font-size:13px; color:rgba(244,244,239,.55);}
.section--dark::before{content:''; position:absolute; top:-200px; left:50%; transform:translateX(-50%);
  width:760px; height:520px; border-radius:50%;
  background:radial-gradient(closest-side, rgba(106,173,63,.25), transparent 70%); pointer-events:none;}
.section--dark .container{position:relative;}

/* ---------- footer (dark ink band, matches get.ivris.ai) ---------- */
.footer{background:var(--ink-band); color:var(--ink-300); padding:30px 0;}
.footer-inner{display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:14px;}
.footer .ivris-wordmark{font-size:16px;}
.footer .ivris-wordmark img{display:block;}
.footer-links{display:flex; flex-wrap:wrap; gap:20px;}
.footer-links a{font-size:13px; color:var(--ink-300); text-decoration:none; font-weight:600;}
.footer-links a:hover{color:var(--ivris-green);}
.footer-micro{margin-top:14px; font-size:12px; color:var(--ink-300);}

/* ---------- nav: Request Service tab (done-for-you) ---------- */
.navlink--dfy{color:var(--green-dark)!important; font-weight:700;}
.navlink--dfy:hover{color:var(--green)!important;}

/* ---------- proof band (ported value stats, no-LiDAR pitch) ---------- */
.proof{margin-top:26px; display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:18px;}
.proof-stat{background:var(--warm-bg); border:1px solid var(--border); border-radius:var(--radius);
  padding:24px 22px; display:flex; flex-direction:column; gap:8px;}
.section--white .proof-stat{background:var(--white);}
.proof-num{font-family:'Barlow Semi Condensed','Barlow',sans-serif; font-weight:700;
  font-size:clamp(30px,5vw,42px); line-height:1; color:var(--green-dark);}
.proof-label{font-size:14px; color:var(--ink); line-height:1.5;}
.proof-cite{font-size:11.5px; font-weight:600; letter-spacing:.03em; text-transform:uppercase; color:var(--ink-300);}

/* ---------- testimonials (real published reviews, no stars/images) ---------- */
.testimonials{display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:18px; margin-bottom:26px;}
.testimonial{background:var(--white); border:1px solid var(--border); border-radius:var(--radius-lg);
  padding:28px 26px; display:flex; flex-direction:column; gap:14px;}
.testimonial blockquote{font-size:15.5px; color:var(--ink); line-height:1.65;}
.testimonial blockquote::before{content:'\201C'; color:var(--green); font-weight:700; font-size:20px; margin-right:2px;}
.testimonial figcaption{display:flex; flex-direction:column; gap:2px;}
.testimonial .t-name{font-weight:700; color:var(--black); font-size:14.5px;}
.testimonial .t-role{font-size:12.5px; color:var(--gray);}

/* ---------- done-for-you ($350) section ---------- */
.dfy .dfy-card{background:var(--black); border-radius:24px; padding:52px 44px; position:relative; overflow:hidden;}
.dfy .dfy-card::before{content:''; position:absolute; inset:auto -140px -240px auto; width:560px; height:560px;
  border-radius:50%; background:radial-gradient(closest-side, rgba(106,173,63,.32), transparent 70%);}
.dfy-copy{position:relative; max-width:64ch;}
.dfy-kicker{display:inline-block; font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  color:var(--green); background:rgba(106,173,63,.14); border:1px solid rgba(106,173,63,.4);
  padding:5px 12px; border-radius:20px; margin-bottom:16px;}
.dfy .h2{color:#fff;}
.dfy .h2 .accent{color:var(--green);}
.dfy .sub{color:rgba(244,244,239,.78);}
.dfy-feats{list-style:none; margin:22px 0 0; display:grid; gap:9px; max-width:52ch;}
.dfy-feats li{font-size:14.5px; color:rgba(244,244,239,.82); line-height:1.5; padding-left:26px; position:relative;}
.dfy-feats li::before{content:'✓'; position:absolute; left:0; top:0; color:var(--green); font-weight:700;}
.dfy-region{margin-top:22px; font-size:14px; color:rgba(244,244,239,.72); line-height:1.6; max-width:56ch;}
.dfy-region strong{color:#fff;}
.dfy-region a{color:var(--green); font-weight:600; text-decoration:none;}
.dfy-region a:hover{text-decoration:underline;}
.dfy-ctas{display:flex; flex-wrap:wrap; gap:14px; margin-top:28px;}
.dfy-ctas .btn.dark-ghost,.dfy-ctas .btn.ghost{background:transparent; border-color:rgba(255,255,255,.4); color:#fff; box-shadow:none;}
.dfy-ctas .btn.ghost:hover{background:rgba(255,255,255,.12); border-color:#fff; color:#fff;}
@media(max-width:560px){.dfy .dfy-card{padding:38px 24px;} .dfy-ctas .btn{width:100%;}}

@media(max-width:560px){
  .section{padding:64px 0;}
  .hero{padding:66px 0 60px;}
  .hero-ctas .btn{width:100%;}
  .final-ctas .btn{width:100%;}
}
