/* CR Services — site Christine Rousselin */
@import url('colors_and_type.css');

*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;scroll-padding-top:96px;}
body{background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.6;
  -webkit-font-smoothing:antialiased;}
a{color:inherit;text-decoration:none;}
img{display:block;max-width:100%;}
button{font-family:inherit;cursor:pointer;}

.wrap{max-width:1120px;margin:0 auto;padding:0 32px;}
.section{padding:96px 0;}
.section--sm{padding:64px 0;}

.eyebrow{font-family:var(--font-display);font-size:12px;font-weight:600;letter-spacing:.18em;
  text-transform:uppercase;color:var(--turq-600);}
.eyebrow--coral{color:var(--coral-500);}
.h-display{font-family:var(--font-heading);font-weight:600;font-size:clamp(40px,5.4vw,68px);line-height:1.05;
  letter-spacing:-.005em;color:var(--blue-700);text-wrap:balance;}
.h1{font-family:var(--font-heading);font-weight:600;font-size:clamp(32px,4vw,50px);line-height:1.12;
  letter-spacing:0;color:var(--blue-700);text-wrap:balance;}
.h2{font-family:var(--font-heading);font-weight:600;font-size:clamp(27px,3vw,38px);line-height:1.16;
  color:var(--blue-700);text-wrap:balance;}
.h3{font-family:var(--font-heading);font-weight:600;font-size:23px;color:var(--blue-700);}
.lead{font-size:clamp(17px,1.5vw,20px);line-height:1.6;color:var(--ink-2);text-wrap:pretty;}
.muted{color:var(--ink-2);}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:9px;font-family:var(--font-display);font-weight:600;
  font-size:15px;border:none;border-radius:var(--r-pill);padding:14px 26px;transition:all .22s ease;}
.btn:active{transform:scale(.98);}
.btn-primary{background:var(--turq-500);color:#fff;box-shadow:var(--shadow-sm);}
.btn-primary:hover{background:var(--turq-600);box-shadow:var(--shadow-turq);}
.btn-secondary{background:transparent;color:var(--blue-700);border:1.5px solid var(--blue-700);}
.btn-secondary:hover{background:var(--blue-700);color:#fff;}
.btn-coral{background:var(--coral-500);color:#fff;box-shadow:var(--shadow-sm);}
.btn-coral:hover{background:var(--coral-600);box-shadow:0 12px 28px rgba(216,113,81,.34);transform:translateY(-1px);}
.btn-light{background:#fff;color:var(--blue-700);box-shadow:var(--shadow-sm);}
.btn-light:hover{box-shadow:var(--shadow-md);transform:translateY(-1px);}
/* white outline button for dark sections */
.btn-outline-light{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.6);}
.btn-outline-light:hover{background:#fff;color:var(--blue-700);border-color:#fff;}
.btn svg{width:19px;height:19px;}

/* card */
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:28px;
  box-shadow:var(--shadow-md);transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;}
.card--warm{background:var(--cream-100);border-color:transparent;}

.icon-badge{width:52px;height:52px;border-radius:16px;display:flex;align-items:center;justify-content:center;
  background:var(--turq-100);color:var(--turq-600);}
.icon-badge svg{width:26px;height:26px;}
.icon-badge--coral{background:var(--coral-200);color:var(--coral-600);}
.icon-badge--yellow{background:var(--yellow-300);color:#a8631c;}
.icon-badge--blue{background:var(--blue-050);color:var(--blue-600);}

.chip{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-display);font-weight:600;
  font-size:12.5px;padding:7px 14px;border-radius:var(--r-pill);background:var(--turq-100);color:var(--turq-700);}
.chip--coral{background:var(--coral-200);color:var(--coral-600);}
.script-accent{font-family:var(--font-heading);font-style:italic;font-weight:500;color:var(--coral-500);line-height:1;}

/* service feature list */
.svc-list{list-style:none;display:flex;flex-direction:column;gap:11px;margin-top:20px;}
.svc-list li{display:flex;align-items:flex-start;gap:11px;font-size:14.5px;line-height:1.45;color:var(--ink-2);}
.svc-list li svg{flex-shrink:0;margin-top:2px;}

/* form */
.field{display:flex;flex-direction:column;gap:7px;}
.field label{font-family:var(--font-display);font-weight:600;font-size:13px;color:var(--blue-700);}
.field input,.field textarea{font-family:var(--font-body);font-size:15px;color:var(--ink);background:#fff;
  border:1.5px solid var(--line);border-radius:var(--r-sm);padding:13px 15px;outline:none;width:100%;transition:border-color .18s,box-shadow .18s;}
.field input:focus,.field textarea:focus{border-color:var(--turq-500);box-shadow:0 0 0 3px var(--focus-ring);}
.field textarea{resize:vertical;min-height:120px;}

/* reveal-on-scroll (supports staggered delay via --rd) */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .65s ease, transform .65s ease;transition-delay:var(--rd,0ms);}
.reveal.in{opacity:1;transform:none;}

/* gentle ambient motion */
@keyframes riseIn{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}
@keyframes drift{0%,100%{transform:translateY(0);}50%{transform:translateY(-14px);}}
@keyframes floaty{0%,100%{transform:translateY(0);}50%{transform:translateY(-9px);}}
.anim-rise{opacity:1;}
@media (prefers-reduced-motion:no-preference){
  .anim-rise{opacity:0;animation:riseIn .7s cubic-bezier(.22,.61,.36,1) forwards;animation-delay:var(--ad,0ms);}
  .drift{animation:drift 15s ease-in-out infinite;will-change:transform;}
  .floaty{animation:floaty 6.5s ease-in-out infinite;will-change:transform;}
}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none;}html{scroll-behavior:auto;}}

/* image placeholder */
.photo{background:linear-gradient(135deg,var(--cream-100),var(--cream-300));border-radius:var(--r-lg);
  position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;color:var(--ink-3);}

@media(max-width:760px){
  .section{padding:64px 0;}
  .wrap{padding:0 22px;}
}
