/* ============================================================
   IRIS — inner page components
   ============================================================ */

/* breadcrumb row under hero */
.crumbrow{padding:22px 0}

/* two-column statement intro */
.statement{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(34px,6vw,90px);align-items:start}
.statement h2{font-size:clamp(28px,3.6vw,46px);line-height:1.1;letter-spacing:-.02em}
.statement h2 em{color:var(--teal)}
@media(max-width:900px){.statement{grid-template-columns:1fr;gap:24px}}

/* punch line (single big serif statement) */
.punch{font-family:var(--serif);font-size:clamp(28px,4.4vw,56px);line-height:1.12;letter-spacing:-.02em;max-width:20ch}
.punch em{color:var(--teal)}

/* included / feature split */
.split2{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(34px,5vw,70px);align-items:center}
.split2.rev{grid-template-columns:.95fr 1.05fr}
.split2 .s2-media{position:relative;border-radius:var(--rad-lg);overflow:hidden;aspect-ratio:4/5;box-shadow:var(--shadow)}
.split2 .s2-media.wide{aspect-ratio:4/3}
@media(max-width:900px){.split2,.split2.rev{grid-template-columns:1fr;gap:30px}.split2 .s2-media{aspect-ratio:16/11;max-height:380px;order:-1}}

.micro{font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--teal);margin:0 0 18px;display:flex;align-items:center;gap:10px}
.micro::before{content:"";width:22px;height:1px;background:var(--teal);opacity:.6}

/* ticks list */
.ticks{list-style:none;display:grid;gap:2px}
.ticks li{position:relative;padding:16px 0 16px 38px;font-size:17px;color:var(--ink);line-height:1.45;border-top:1px solid var(--line-2)}
.ticks li:first-child{border-top:0}
.ticks li::before{content:"";position:absolute;left:4px;top:19px;width:16px;height:16px;border-radius:50%;border:2px solid var(--teal)}
.ticks li::after{content:"";position:absolute;left:9px;top:23px;width:6px;height:6px;border-radius:50%;background:var(--teal)}

/* who/where block */
.whowhere{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:10px}
.ww-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--rad);padding:30px 28px}
.ww-card h4{font-size:21px;margin-bottom:10px}
.ww-card p{font-size:15.5px;color:var(--ink-soft);line-height:1.6}
@media(max-width:680px){.whowhere{grid-template-columns:1fr}}

/* pairs-well / location chips */
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}
.chip{display:inline-flex;align-items:center;gap:9px;font-family:var(--sans);font-weight:600;font-size:13.5px;color:var(--teal);border:1px solid var(--teal-100);background:var(--teal-50);border-radius:999px;padding:10px 18px;transition:.25s var(--ease);white-space:nowrap}
.chip:hover{background:var(--teal);color:#fff;transform:translateY(-2px)}
.chip .ci{width:17px;height:17px}
.chip.loc{background:var(--paper);border-color:var(--line);color:var(--ink)}
.chip.loc:hover{background:var(--teal);color:#fff;border-color:var(--teal)}

/* section labels with rule */
.lbl-row{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:42px;flex-wrap:wrap}
.lbl-row h2{font-size:clamp(28px,3.6vw,46px);line-height:1.08;letter-spacing:-.02em;max-width:18ch}
.lbl-row h2 em{color:var(--teal)}

/* services hub detail rows */
.svc-row{padding:46px 0;border-top:1px solid var(--line)}
.svc-row:first-of-type{border-top:0}
.svc-row-grid{display:grid;grid-template-columns:64px 1fr auto;gap:34px;align-items:center}
.svc-row .sr-ic{width:64px;height:64px;border-radius:18px;background:var(--teal-50);color:var(--teal);display:grid;place-items:center;transition:.3s var(--ease)}
.svc-row:hover .sr-ic{background:var(--teal);color:#fff;transform:rotate(-6deg)}
.svc-row .sr-ic svg{width:30px;height:30px}
.svc-row h3{font-size:clamp(24px,2.6vw,34px);line-height:1.04}
.svc-row p{font-size:16px;color:var(--ink-soft);margin-top:8px;max-width:60ch;line-height:1.55}
.svc-row .sr-go{flex:none;width:54px;height:54px;border-radius:50%;border:1.5px solid var(--line);display:grid;place-items:center;color:var(--ink);transition:.3s var(--ease)}
.svc-row:hover .sr-go{background:var(--teal);border-color:var(--teal);color:#fff;transform:translateX(4px)}
.svc-row .sr-go svg{width:20px;height:20px}
.svc-row .sr-num{font-family:var(--mono);font-size:12px;color:var(--ink-faint);letter-spacing:.1em}
@media(max-width:760px){.svc-row-grid{grid-template-columns:52px 1fr;gap:20px}.svc-row .sr-ic{width:52px;height:52px}.svc-row .sr-ic svg{width:24px;height:24px}.svc-row .sr-go{display:none}}

/* pricing factors */
.factors{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.factor{background:var(--paper);border:1px solid var(--line);border-radius:var(--rad);padding:34px 30px;transition:.35s var(--ease)}
.factor:hover{box-shadow:var(--shadow);transform:translateY(-5px)}
.factor .fk{font-family:var(--serif);font-style:italic;font-size:34px;color:var(--teal);line-height:1}
.factor h3{font-size:23px;margin:18px 0 9px}
.factor p{font-size:15.5px;color:var(--ink-soft);line-height:1.6}
@media(max-width:680px){.factors{grid-template-columns:1fr}}

.getbox{background:var(--teal-ink);color:#dff0ec;border-radius:var(--rad-lg);padding:clamp(36px,5vw,60px);display:grid;grid-template-columns:1fr auto;gap:36px;align-items:center}
.getbox h3{color:#fff;font-size:clamp(26px,3vw,38px);max-width:20ch;line-height:1.1}
.getbox p{color:#9fc1b9;margin-top:14px;font-size:16.5px;max-width:46ch}
@media(max-width:760px){.getbox{grid-template-columns:1fr;padding:34px 28px}}

/* FAQ accordion */
.faqset{max-width:900px;margin:0 auto}
.faq-cat{font-family:var(--serif);font-size:clamp(22px,2.6vw,32px);margin:56px 0 8px}
.faq-cat:first-child{margin-top:0}
.faq-cat em{color:var(--teal)}
.faq{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:26px 0;font-family:var(--serif);font-size:clamp(19px,2vw,24px);color:var(--ink);transition:color .2s}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--teal)}
.faq summary .pm{flex:none;width:34px;height:34px;border-radius:50%;border:1.5px solid var(--line);position:relative;transition:.3s var(--ease)}
.faq summary .pm::before,.faq summary .pm::after{content:"";position:absolute;background:var(--teal);border-radius:2px;left:50%;top:50%;transform:translate(-50%,-50%)}
.faq summary .pm::before{width:14px;height:2px}
.faq summary .pm::after{width:2px;height:14px;transition:.3s var(--ease)}
.faq[open] summary .pm{border-color:var(--teal);background:var(--teal);transform:rotate(90deg)}
.faq[open] summary .pm::before,.faq[open] summary .pm::after{background:#fff}
.faq[open] summary .pm::after{transform:translate(-50%,-50%) scaleY(0)}
.faq .ans{padding:0 60px 28px 0;color:var(--ink-soft);font-size:16.5px;line-height:1.7;max-width:78ch}
.faq .ans a{color:var(--teal);font-weight:600;border-bottom:1px solid rgba(0,154,128,.35)}

/* contact form */
.contact-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(40px,6vw,84px);align-items:start}
@media(max-width:900px){.contact-grid{grid-template-columns:1fr;gap:40px}}
.form{background:var(--paper);border:1px solid var(--line);border-radius:var(--rad-lg);padding:clamp(28px,4vw,44px);box-shadow:var(--shadow-sm)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.field{display:flex;flex-direction:column;gap:8px}
.field.full{grid-column:1/-1}
.field label{font-size:13px;font-weight:600;color:var(--ink)}
.field label .req{color:var(--teal)}
.field input,.field select,.field textarea{font-family:var(--sans);font-size:15.5px;color:var(--ink);background:var(--bg);border:1.5px solid var(--line);border-radius:12px;padding:14px 16px;transition:.2s;width:100%}
.field textarea{resize:vertical;min-height:120px}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 4px rgba(0,154,128,.12);background:#fff}
.field input::placeholder,.field textarea::placeholder{color:#9aa39c}
@media(max-width:560px){.form-grid{grid-template-columns:1fr}}
.form-actions{display:flex;gap:14px;align-items:center;margin-top:22px;flex-wrap:wrap}
.form-note{font-size:13.5px;color:var(--ink-soft);margin-top:14px}
.form-success{display:none;text-align:center;padding:30px 20px}
.form.sent .form-body{display:none}
.form.sent .form-success{display:block}
.form-success .ok{width:70px;height:70px;border-radius:50%;background:var(--teal-50);color:var(--teal);display:grid;place-items:center;font-size:32px;margin:0 auto 22px}
.form-success h3{font-size:28px}
.form-success p{color:var(--ink-soft);margin-top:10px}

/* contact info rows */
.nap-list{display:flex;flex-direction:column}
.nap-row{display:flex;gap:18px;align-items:flex-start;padding:22px 0;border-top:1px solid var(--line)}
.nap-row:first-child{border-top:0}
.nap-row .ic{flex:none;width:46px;height:46px;border-radius:13px;background:var(--teal-50);color:var(--teal);display:grid;place-items:center}
.nap-row .ic svg{width:21px;height:21px}
.nap-row b{display:block;font-size:13px;font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);font-weight:500;margin-bottom:5px}
.nap-row a,.nap-row span{color:var(--ink);font-size:17px}
.nap-row a:hover{color:var(--teal)}
.token{font-family:var(--mono);font-size:.9em;color:var(--ink-soft);background:var(--bg-2);border:1px dashed var(--line);border-radius:6px;padding:1px 7px}

/* about narrative */
.about-lead{font-family:var(--serif);font-size:clamp(24px,3.2vw,40px);line-height:1.22;letter-spacing:-.01em;max-width:24ch}
.about-lead em{color:var(--teal)}
.prose{font-size:19px;line-height:1.8;color:var(--ink-soft);max-width:62ch}
.prose strong{color:var(--ink)}
.prose p+p{margin-top:24px}

/* stat strip */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.stat{padding:30px 0;border-top:2px solid var(--teal)}
.stat b{font-family:var(--serif);font-size:clamp(34px,4vw,52px);color:var(--ink);line-height:1;display:block}
.stat span{font-size:14.5px;color:var(--ink-soft);margin-top:10px;display:block}
@media(max-width:760px){.stats{grid-template-columns:1fr 1fr}}

/* steps (how we work) */
.steps{display:grid;gap:0}
.step{display:grid;grid-template-columns:90px 1fr;gap:30px;padding:36px 0;border-top:1px solid var(--line)}
.step:first-child{border-top:0}
.step .sn{font-family:var(--serif);font-style:italic;font-size:46px;color:var(--teal);line-height:1}
.step h3{font-size:clamp(22px,2.4vw,30px);line-height:1.08}
.step p{font-size:16.5px;color:var(--ink-soft);margin-top:10px;max-width:60ch;line-height:1.6}
@media(max-width:680px){.step{grid-template-columns:1fr;gap:8px}.step .sn{font-size:36px}}

/* location grid (areas page extra) */
.loc-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.loc-card{position:relative;border-radius:var(--rad);overflow:hidden;min-height:230px;display:flex;align-items:flex-end;background:#0b3a31;isolation:isolate}
.loc-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-1;transition:transform 1s var(--ease)}
.loc-card::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,transparent 30%,rgba(4,33,26,.86) 100%)}
.loc-card:hover img{transform:scale(1.07)}
.loc-card .lc-b{padding:22px;color:#fff}
.loc-card .lc-b span{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--sky)}
.loc-card .lc-b h4{font-size:21px;margin-top:6px;line-height:1.1}
@media(max-width:860px){.loc-cards{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.loc-cards{grid-template-columns:1fr}}
