/* Section rules (DESIGN.md §7). */

/* Hero ------------------------------------------------------------------ */
.section--hero{position:relative;overflow-x:clip}
.hero__curves{position:absolute;top:0;left:0;right:0;height:calc((var(--hero-min-h) + 32px) / 1.27);pointer-events:none;z-index:0;isolation:isolate}
.hero__curves-svg{position:absolute;top:0;left:0;width:100%;height:100%;overflow:visible;opacity:var(--curve-opacity)}
.hero__ellipse{stroke-width:var(--curve-stroke)}
.hero__stop--1{stop-color:var(--curve-1)}
.hero__stop--2{stop-color:var(--curve-2)}
.hero__stop--3{stop-color:var(--curve-3)}
.hero__stop--4{stop-color:var(--curve-4)}
.section--hero[data-rings="on"] .hero__curves{visibility:hidden}
.hero__rings{position:absolute;top:0;left:0;width:100%;height:0;pointer-events:none;z-index:0}
.hero__body{position:relative;z-index:1;min-height:var(--hero-min-h);display:grid;place-items:center}
.hero__content{width:100%;max-width:1040px;padding:calc(var(--header-h) + 40px) var(--gutter) 64px;text-align:center}
.hero__title{margin:0;font-size:var(--fs-hero);font-weight:var(--fw-bold);line-height:var(--lh-tight);letter-spacing:.04em;text-wrap:balance;word-break:auto-phrase}
.hero__lead{margin:clamp(20px,2.4vw,32px) auto 0;max-width:40em;font-size:var(--fs-hero-lead);font-weight:var(--fw-medium);line-height:1.85;letter-spacing:.08em;color:var(--color-text);text-wrap:pretty;word-break:auto-phrase}
@media (min-width:768px) and (max-width:1199px){.hero__curves-svg{width:150%;left:-25%}}
@media (max-width:767px){.hero__curves-svg{width:190%;left:-45%}}

/* Cover: the hero stays pinned (motion.js sets data-cover="on" and top) while the following
   sections rise over it as one sheet with a rounded top edge. */
.section--hero[data-cover="on"]{position:sticky;z-index:0}
.section--hero~*{position:relative;z-index:1}
:where(.section--hero~*){background:var(--color-surface)}
.section--hero+*{border-top:var(--border-width) solid var(--color-border);border-radius:var(--radius-sheet) var(--radius-sheet) 0 0;box-shadow:var(--shadow-sheet)}
@media (prefers-reduced-motion:reduce){.section--hero[data-cover="on"]{position:relative;top:auto!important}}

/* Problems -------------------------------------------------------------- */
.section--problems{position:relative;z-index:1;padding-bottom:clamp(72px,8vw,112px)}
.problems__title{margin:0 0 clamp(36px,4.4vw,56px);font-size:var(--fs-problems-title);font-weight:var(--fw-semibold);line-height:1.5;letter-spacing:.06em;text-align:center;word-break:keep-all;overflow-wrap:anywhere}
.problems__title::after{content:"";display:block;width:48px;height:3px;margin:clamp(14px,1.6vw,20px) auto 0;background:var(--color-link)}
.problem-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,2vw,24px);max-width:1080px;margin:0 auto;padding:0;list-style:none}
.item--problem{position:relative;display:flex;align-items:center;gap:clamp(16px,2vw,28px);padding:clamp(24px,2.6vw,34px) clamp(22px,3vw,40px);background:var(--color-bg);border-radius:var(--radius-problem)}
.problem__fold{position:absolute;top:0;left:0;width:14px;height:14px;background:var(--color-link);clip-path:polygon(0 0,100% 0,0 100%);border-top-left-radius:var(--radius-problem)}
.problem__check{flex:none;display:grid;place-items:center;width:clamp(36px,3.4vw,42px);height:clamp(36px,3.4vw,42px);border-radius:var(--radius-problem);background:var(--color-heading);color:var(--color-action-text)}
.problem__check .icon{width:20px;height:20px;stroke-width:2.6}
.problem__text{margin:0;min-width:0;font-family:var(--font-heading);font-size:var(--fs-problem);font-weight:var(--fw-medium);line-height:1.75;letter-spacing:.05em;color:var(--color-text);word-break:keep-all;overflow-wrap:anywhere}
.problem__before{display:block}
.problem__emphasis{font-weight:var(--fw-bold);color:var(--color-heading);text-decoration:underline;text-decoration-color:var(--color-surface);text-decoration-thickness:.42em;text-underline-offset:-.16em;text-decoration-skip-ink:none}
@media (max-width:767px){.problem-list{grid-template-columns:minmax(0,1fr)}.item--problem{padding:22px 20px}}

/* Solution band --------------------------------------------------------- */
.section--solution{position:relative;background:var(--color-link);color:var(--color-action-text);padding:clamp(56px,6vw,76px) 20px clamp(40px,4.6vw,60px);text-align:center}
.solution__bubble{position:absolute;top:0;left:50%;transform:translate(-50%,-50%);margin:0;padding:10px clamp(24px,3vw,36px);border-radius:var(--radius-pill);background:var(--color-heading);color:var(--color-action-text);font-family:var(--font-heading);font-size:var(--fs-bubble);font-weight:var(--fw-semibold);letter-spacing:.1em;line-height:1.5;white-space:nowrap}
.solution__tail{position:absolute;left:50%;bottom:-7px;width:14px;height:8px;transform:translateX(-50%);background:var(--color-heading);clip-path:polygon(0 0,100% 0,50% 100%)}
.solution__body{max-width:1080px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:clamp(10px,1.4vw,18px)}
.solution__title{margin:0;color:var(--color-action-text);font-size:var(--fs-solution-title);font-weight:var(--fw-bold);line-height:1.4;letter-spacing:.06em;word-break:keep-all;overflow-wrap:anywhere}
.solution__lead{margin:0;color:var(--color-action-text);font-family:var(--font-heading);font-size:var(--fs-solution-lead);font-weight:var(--fw-medium);line-height:1.8;letter-spacing:.08em;word-break:keep-all;overflow-wrap:anywhere}

/* Services -------------------------------------------------------------- */
.service-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--card-gap)}
@media (max-width:899px){.service-list{grid-template-columns:minmax(0,1fr);max-width:560px;margin-inline:auto}}
.item--service{position:relative;display:flex;flex-direction:column;height:100%;overflow:hidden;background:var(--color-bg);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-card);box-shadow:var(--shadow-card);color:var(--color-text);text-decoration:none;cursor:default;transition:transform var(--dur-base) var(--ease-standard),box-shadow var(--dur-base) var(--ease-standard)}
a.item--service{cursor:pointer}
a.item--service:hover{color:var(--color-text);transform:translateY(-4px);box-shadow:var(--shadow-card-hover)}
a.item--service:focus-visible{outline:var(--focus-ring-width) solid var(--color-focus-ring);outline-offset:var(--focus-ring-offset)}
.service__media{order:-1;aspect-ratio:16/10;overflow:hidden}
.service__img{width:100%;height:100%;object-fit:cover}
.item--service.is-pending .service__media{opacity:.7}
.service__body{display:flex;flex-direction:column;align-items:center;gap:14px;padding:clamp(22px,2.4vw,30px) clamp(20px,2.4vw,30px) clamp(26px,2.8vw,34px);text-align:center}
.service__badge{position:absolute;top:14px;right:14px;z-index:1;background:var(--color-bg);color:var(--color-heading);border:var(--border-width) solid var(--color-border)}
.service__title{margin:0;font-size:var(--fs-card);font-weight:var(--fw-semibold);line-height:1.5;letter-spacing:var(--ls-heading);color:var(--color-heading);word-break:auto-phrase;text-wrap:balance}
.service__title::after{content:"";display:block;width:32px;height:2px;margin:14px auto 0;background:var(--color-link)}
.service__desc{margin:0;font-family:var(--font-heading);font-size:var(--fs-body);font-weight:var(--fw-medium);line-height:1.9;letter-spacing:var(--ls-heading);color:var(--color-text);word-break:auto-phrase;text-wrap:pretty}
.service__more{display:inline-flex;align-items:center;gap:10px;margin-top:4px;font-size:var(--fs-small);font-weight:var(--fw-bold);letter-spacing:.06em;color:var(--color-link)}
.service__arrow{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;border:var(--border-width) solid var(--color-border);font-family:var(--font-latin);font-size:13px;transition:transform 200ms var(--ease-standard),background-color var(--dur-fast),color var(--dur-fast),border-color var(--dur-fast)}
a.item--service:hover .service__arrow{transform:translateX(3px);background:var(--color-link);border-color:var(--color-link);color:var(--color-action-text)}

/* Reasons --------------------------------------------------------------- */
.reason-list{display:flex;flex-direction:column;gap:var(--reason-gap)}
.item--reason{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:clamp(40px,6vw,96px)}
.item--reason-reverse .reason__text{order:2}
.item--reason-text-only{grid-template-columns:minmax(0,1fr)}
@media (min-width:900px){
	.reason-list>.item--reason:nth-child(2):not(.item--reason-text-only){grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr)}
	.reason-list>.item--reason:nth-child(3):not(.item--reason-text-only){grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}
}
.reason__num{display:block;margin:0 0 18px;font-family:var(--font-latin);font-size:var(--fs-reason-num);font-weight:var(--fw-semibold);line-height:1;letter-spacing:.12em;color:var(--color-accent)}
.reason__title{margin:0;font-size:var(--fs-reason);font-weight:var(--fw-semibold);line-height:1.6;letter-spacing:var(--ls-heading);word-break:keep-all;overflow-wrap:anywhere}
.reason__accent{color:var(--color-accent)}
.reason__body{margin:clamp(24px,2.6vw,36px) 0 0;font-size:var(--fs-body);font-weight:var(--fw-regular);line-height:var(--lh-relaxed);letter-spacing:var(--ls-heading);color:var(--color-text);word-break:auto-phrase;text-wrap:pretty}
.reason__media{overflow:hidden;border-radius:var(--radius-image);background:var(--color-bg)}
.reason__img{width:100%;height:auto}
@media (max-width:899px){.item--reason{grid-template-columns:minmax(0,1fr);gap:28px}.item--reason-reverse .reason__text{order:0}}

/* Works ----------------------------------------------------------------- */
.work-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--card-gap)}
@media (max-width:899px){.work-list{grid-template-columns:minmax(0,1fr);max-width:560px;margin-inline:auto}}
.item--work{display:flex;flex-direction:column;gap:12px;padding:var(--card-pad);border-radius:var(--radius-card);background:var(--color-bg);border:var(--border-width) solid var(--color-border);box-shadow:var(--shadow-card)}
.work__media{margin:calc(var(--card-pad) * -1) calc(var(--card-pad) * -1) 8px;aspect-ratio:16/10;overflow:hidden;border-radius:var(--radius-card) var(--radius-card) 0 0}
.work__img{width:100%;height:100%;object-fit:cover}
.work__kind{font-size:var(--fs-caption);font-weight:var(--fw-bold);letter-spacing:.06em;color:var(--color-text-sub)}
.work__title{margin:0;font-size:var(--fs-card);font-weight:var(--fw-bold);line-height:1.5}
.work__title a{color:inherit}
.work__summary{margin:0;font-size:var(--fs-body);line-height:var(--lh-body)}
.work__scope{margin:0;font-size:var(--fs-small);color:var(--color-text-sub)}

/* Company intro --------------------------------------------------------- */
.section--company{padding-block:clamp(48px,6vw,80px)}
.company-card{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px 40px;padding:var(--card-pad);border-radius:var(--radius-card);background:var(--color-bg);border:var(--border-width) solid var(--color-border);box-shadow:var(--shadow-card)}
.company-card__name{margin:0;font-size:var(--fs-card);font-weight:var(--fw-semibold);line-height:1.5;letter-spacing:var(--ls-heading)}

/* Consultation ---------------------------------------------------------- */
.step-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:minmax(0,1fr) 40px minmax(0,1fr) 40px minmax(0,1fr);align-items:stretch;gap:12px}
.item--step{display:flex;flex-direction:column;gap:18px;padding:var(--card-pad);border-radius:var(--radius-card);background:var(--color-bg);border:var(--border-width) solid var(--color-border);box-shadow:var(--shadow-card)}
.step__head{display:flex;align-items:center;justify-content:space-between}
.step__icon{width:56px;height:56px;border-radius:50%;background:var(--color-bg);border:var(--border-width) solid var(--color-border);color:var(--color-text);display:grid;place-items:center}
.step__num{font-family:var(--font-latin);font-size:var(--fs-reason-num);font-weight:var(--fw-semibold);letter-spacing:.12em;color:var(--color-accent)}
.step__title{margin:0;font-size:var(--fs-card);font-weight:var(--fw-semibold);line-height:1.5;letter-spacing:var(--ls-heading);word-break:keep-all;overflow-wrap:anywhere}
.step__body{margin:0;font-size:var(--fs-step);font-weight:var(--fw-regular);line-height:var(--lh-relaxed);letter-spacing:var(--ls-heading);color:var(--color-text);text-wrap:pretty}
.step-list__arrow{display:grid;place-items:center;color:var(--color-text-sub)}
.step-list__arrow .icon{width:22px;height:22px}
.consultation__cta{display:flex;justify-content:center;margin-top:clamp(40px,5vw,64px)}
@media (max-width:899px){.step-list{grid-template-columns:minmax(0,1fr)}.step-list__arrow .icon{transform:rotate(90deg)}}

/* Pages ----------------------------------------------------------------- */
.profile-table{margin:0;padding:8px var(--card-pad);border-radius:var(--radius-card);background:var(--color-bg);border:var(--border-width) solid var(--color-border);box-shadow:var(--shadow-card)}
.profile-table__row{display:grid;grid-template-columns:160px minmax(0,1fr);border-bottom:var(--border-width) solid var(--color-border)}
.profile-table__row:last-child{border-bottom:0}
.profile-table dt{padding:22px 0;font-size:var(--fs-small);font-weight:var(--fw-bold);color:var(--color-text-sub)}
.profile-table dd{margin:0;padding:22px 0}
@media (max-width:639px){.profile-table__row{grid-template-columns:minmax(0,1fr)}.profile-table dt{padding:22px 0 0}.profile-table dd{padding:6px 0 22px}}

.contact__notice{margin:calc(clamp(40px,5vw,72px) * -0.5) auto clamp(40px,5vw,72px);display:flex;justify-content:center}

.legal{display:flex;flex-direction:column;gap:24px}
.legal .section-heading{margin-bottom:0}
.legal__notice{margin:0;padding:20px 24px;border-radius:var(--radius-input);border:1px dashed var(--color-border);color:var(--color-text-sub)}
.legal__body>*{margin:0 0 1.2em}
.legal__body h2,.legal__body h3{font-size:var(--fs-card);font-weight:var(--fw-semibold);line-height:1.5;margin-top:1.6em}
.legal__back{align-self:flex-start}
