/* Företagsfoto – redaktionell kontaktkarta med varm studiokänsla. */
.photo-service-page { background: #f5f0ea; }
.photo-service-page h1,.photo-service-page h2,.photo-service-page h3 { font-weight:430; }
.photo-service-page h1 em,.photo-service-page h2 em { font-weight:370; }
.photo-hero { position: relative; overflow: hidden; padding: calc(var(--header-height) + var(--hero-space-top)) 0 var(--hero-space-bottom); background: linear-gradient(135deg,#f4eee7,#e8ded3); }
.photo-hero::before { position: absolute; top: -18rem; left: -12rem; width: 42rem; aspect-ratio: 1; border: 1px solid rgba(137,83,57,.1); border-radius: 50%; box-shadow: 0 0 0 7rem rgba(255,255,255,.18),0 0 0 14rem rgba(137,83,57,.025); content: ""; }
.photo-hero-grid { position: relative; display: grid; min-height:clamp(40rem,68vh,49rem); align-items: center; grid-template-columns: minmax(0,.78fr) minmax(440px,1fr); gap: clamp(2.5rem,5vw,6rem); }
.photo-hero-copy h1 { max-width: 13.5ch; margin: 0 0 1.5rem; font-size: var(--type-page-title); letter-spacing:-.055em; line-height: 1.01; }
.photo-hero-copy h1 em { color: #995f49; }
.photo-hero-copy > p { max-width: 44rem; margin:0; color: var(--slate); font-size: var(--text-lead); line-height: 1.7; }
.photo-hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1.2rem; margin-top: 2rem; }
.photo-hero-actions .button { background: #995f49; border-color: #995f49; }
.photo-hero-actions > a { border-bottom: 1px solid rgba(30,31,32,.35); color: var(--coal); font-size: var(--text-action); font-weight: 600; }
.photo-contact-sheet { position: relative; display: grid; min-height:clamp(31rem,42vw,36rem); padding: .75rem; border: 1px solid rgba(62,39,29,.15); border-radius: 1.6rem; background: #25211f; box-shadow: 0 2.2rem 5rem rgba(64,42,32,.2); grid-template-columns: 1.2fr .8fr; grid-template-rows: 1.15fr .85fr; gap: .55rem; transform: rotate(1.5deg); }
.photo-frame { position: relative; display: flex; min-height: 230px; justify-content: space-between; overflow: hidden; padding: 1rem; border-radius: .9rem; background: #35423e; color: #fff; flex-direction: column; isolation: isolate; }
.photo-frame::before,.photo-frame::after { position: absolute; z-index: -1; content: ""; }
.photo-frame::before { inset: 0; background: linear-gradient(180deg,rgba(12,16,15,.34),transparent 43%,rgba(10,14,13,.78)); }
.photo-frame::after { z-index:1; inset:.5rem; border:1px solid rgba(255,255,255,.2); border-radius:.58rem; pointer-events:none; }
.photo-frame img { position:absolute; z-index:-2; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.2,.7,.2,1); }
.photo-frame:hover img { transform:scale(1.025); }
.photo-frame span,.photo-frame small { position:relative; z-index:2; font-family: var(--font-mono); font-size: .66rem; letter-spacing: .04em; text-shadow:0 1px 1rem rgba(0,0,0,.75); text-transform: uppercase; }
.photo-frame-people { grid-row: span 2; }
.photo-frame-people img { object-position:58% center; }
.photo-frame-place img { object-position:56% center; }
.photo-frame-detail img { object-position:56% 58%; }
.photo-sheet-mark { position: absolute; right: 1.4rem; bottom: -1.7rem; color: rgba(38,33,31,.54); font-family: var(--font-mono); font-size: .7rem; font-weight: 500; }

.photo-use { padding: var(--section-space) 0 0; background:#fbf8f4; }
.photo-use-heading { display:grid; align-items:end; grid-template-columns:minmax(0,1fr) minmax(300px,.52fr); gap:clamp(3rem,8vw,9rem); }
.photo-use-heading h2 { max-width:15ch; margin:0; font-size:var(--type-section-title); letter-spacing:-.045em; line-height:1.08; }
.photo-use-heading h2 em { color:#995f49; }
.photo-use-heading p { max-width:40rem; margin:0; color:var(--slate); font-size:var(--text-lead); line-height:1.7; }
.photo-use-rail { display:grid; margin-top:var(--content-space); grid-template-columns:repeat(4,minmax(260px,1fr)); overflow-x:auto; scrollbar-width:none; }
.photo-use-rail::-webkit-scrollbar { display:none; }
.photo-use-rail article { min-height:230px; padding:clamp(1.3rem,2.4vw,2rem); border-block:1px solid rgba(30,31,32,.14); border-right:1px solid rgba(30,31,32,.14); background:var(--rail-bg); }
.photo-use-rail article:nth-child(1){--rail-bg:#efe1d7}.photo-use-rail article:nth-child(2){--rail-bg:#e0e8e3}.photo-use-rail article:nth-child(3){--rail-bg:#e8e2ea}.photo-use-rail article:nth-child(4){--rail-bg:#e8e0d2}
.photo-use-rail span { color:#7e503d; font-family:var(--font-mono); font-size:var(--text-label); font-weight:500; text-transform:uppercase; }
.photo-use-rail h3 { max-width:330px; margin:clamp(2.5rem,5vw,4.5rem) 0 0; font-size:var(--type-card-title); line-height:1.28; }

.photo-scope { padding-block:var(--section-space); background:#fbf8f4; }
.photo-scope-grid { display:grid; grid-template-columns:minmax(0,.75fr) minmax(430px,.85fr); gap:clamp(3rem,8vw,9rem); }
.photo-scope-title { align-self:start; position:sticky; top:calc(var(--header-height) + 2rem); }
.photo-scope-title h2 { max-width:14ch; margin:0; font-size:var(--type-section-title); letter-spacing:-.045em; line-height:1.08; }
.photo-scope-title p { max-width:40rem; margin:1.4rem 0 0; color:var(--slate); font-size:var(--text-lead); line-height:1.7; }
.photo-scope-list { margin:0; padding:0; list-style:none; border-top:1px solid var(--line); }
.photo-scope-list li { display:grid; min-height:160px; align-items:end; padding:1.5rem 0; border-bottom:1px solid var(--line); grid-template-columns:3rem 1fr; gap:1.2rem; }
.photo-scope-list li > span { align-self:start; color:#995f49; font-family:var(--font-mono); font-size:.72rem; }
.photo-scope-list strong { display:block; margin-bottom:.55rem; font-size:var(--type-card-title-small); font-weight:500; }
.photo-scope-list p { margin:0; color:var(--slate); font-size:var(--text-support); line-height:1.6; }

.photo-price { padding-block:var(--section-space-feature); background:#2c4a45; color:#fff; }
.photo-price-heading { display:grid; align-items:end; grid-template-columns:minmax(0,1fr) minmax(300px,.5fr); gap:clamp(3rem,8vw,9rem); }
.photo-price-heading h2 { max-width:15ch; margin:0; color:#fff; font-size:var(--type-section-title); letter-spacing:-.045em; line-height:1.08; }
.photo-price-heading h2 em { color:#d9b8a7; }
.photo-price-heading p { max-width:39rem; margin:0; color:rgba(255,255,255,.68); font-size:var(--text-lead); line-height:1.7; }
.photo-price-options { display:grid; margin-top:var(--content-space); grid-template-columns:repeat(2,minmax(0,1fr)); gap:.85rem; }
.photo-price-options article { display:grid; min-height:330px; padding:clamp(1.4rem,3vw,2.5rem); border:1px solid rgba(255,255,255,.16); border-radius:1.6rem; background:rgba(255,255,255,.055); }
.photo-price-options article > span { color:#d9b8a7; font-family:var(--font-mono); font-size:var(--text-label); text-transform:uppercase; }
.photo-price-options strong { align-self:end; margin-top:3rem; color:#fff; font-size:clamp(2.6rem,4.5vw,4.7rem); font-weight:430; letter-spacing:-.06em; line-height:.95; }
.photo-price-options small { margin-top:.45rem; color:rgba(255,255,255,.58); }
.photo-price-options p { max-width:580px; margin:1.5rem 0 0; color:rgba(255,255,255,.68); line-height:1.65; }
.photo-price-note { max-width:920px; margin:1.3rem 0 0; color:rgba(255,255,255,.62); font-size:var(--text-action); line-height:1.6; }

.photo-plan { padding-block:var(--section-space); background:#e9e2db; }
.photo-plan-grid { display:grid; grid-template-columns:minmax(0,.7fr) minmax(430px,.9fr); gap:clamp(3rem,8vw,9rem); }
.photo-plan-copy h2 { max-width:14ch; margin:0; font-size:var(--type-section-title); letter-spacing:-.045em; line-height:1.08; }
.photo-plan-copy p { max-width:40rem; margin:1.4rem 0 0; color:var(--slate); font-size:var(--text-lead); line-height:1.7; }
.photo-plan-list { margin:0; padding:0; list-style:none; counter-reset:plan; }
.photo-plan-list li { display:grid; padding:1.25rem 0; border-top:1px solid rgba(30,31,32,.15); grid-template-columns:6rem 1fr; gap:1rem; }
.photo-plan-list li:last-child { border-bottom:1px solid rgba(30,31,32,.15); }
.photo-plan-list li > span { color:#995f49; font-family:var(--font-mono); font-size:var(--text-label); text-transform:uppercase; }
.photo-plan-list strong { display:block; margin-bottom:.35rem; font-weight:500; }
.photo-plan-list p { margin:0; color:var(--slate); font-size:var(--text-support); line-height:1.6; }

.photo-drone { padding-block:var(--section-space-feature); background:#d7e1dc; }
.photo-drone-inner { display:grid; align-items:center; grid-template-columns:minmax(250px,.5fr) minmax(0,1fr); gap:clamp(3rem,7vw,8rem); }
.photo-drone-visual { position:relative; width:min(100%,410px); margin:0 auto; }
.photo-drone-visual img { position:relative; width:100%; height:auto; filter:drop-shadow(0 .8rem 1rem rgba(38,53,49,.12)); animation:photo-drone-float 7s ease-in-out infinite; }
@keyframes photo-drone-float { 50% { transform:translateY(-.55rem) rotate(.35deg); } }
.photo-drone h2 { max-width:15ch; margin:0; font-size:var(--type-section-title); letter-spacing:-.045em; line-height:1.08; }
.photo-drone h2 em { color:var(--deep); }
.photo-drone p { max-width:48rem; margin:1.4rem 0 0; color:var(--slate); font-size:var(--text-lead); line-height:1.7; }

.photo-faq { padding-block:var(--section-space); background:#fbf8f4; }
.photo-faq-grid { display:grid; grid-template-columns:minmax(260px,.55fr) minmax(440px,1fr); gap:clamp(3rem,8vw,9rem); }
.photo-faq-grid > div:first-child { position:sticky; top:calc(var(--header-height) + 2rem); }
.photo-faq-grid h2 { max-width:13ch; margin:0; font-size:var(--type-section-title-compact); letter-spacing:-.04em; line-height:1.08; }
.photo-faq-grid > div:first-child p { max-width:32rem; margin:1.3rem 0 0; color:var(--slate); line-height:1.7; }
.photo-faq-list { border-top:1px solid var(--line); }
.photo-faq-list details { border-bottom:1px solid var(--line); }
.photo-faq-list summary { display:flex; min-height:4.6rem; align-items:center; justify-content:space-between; gap:1rem; cursor:pointer; font-weight:500; list-style:none; }
.photo-faq-list summary::-webkit-details-marker { display:none; }
.photo-faq-list summary i { width:.8rem; height:.8rem; border-right:1px solid #995f49; border-bottom:1px solid #995f49; transform:rotate(45deg); transition:transform 180ms ease; }
.photo-faq-list details[open] summary i { transform:rotate(225deg); }
.photo-faq-list details p { max-width:760px; margin:0; padding:0 2rem 1.4rem 0; color:var(--slate); line-height:1.7; }
.photo-final { padding-block:var(--section-space-cta); background:#d6b8a8; }
.photo-final-inner { display:flex; align-items:end; justify-content:space-between; gap:3rem; }
.photo-final h2 { max-width:18ch; margin:0 0 1rem; font-size:var(--type-section-title-compact); letter-spacing:-.04em; line-height:1.08; }
.photo-final p { max-width:700px; margin:0; color:#4c423d; line-height:1.7; }
.photo-final .button { flex:0 0 auto; background:#6f4435; border-color:#6f4435; }

@media(max-width:980px){
  .photo-hero-grid,.photo-use-heading,.photo-scope-grid,.photo-price-heading,.photo-plan-grid,.photo-drone-inner,.photo-faq-grid{grid-template-columns:1fr}
  .photo-hero-grid{min-height:0}.photo-contact-sheet{width:100%;max-width:760px}.photo-scope-title,.photo-faq-grid > div:first-child{position:static}.photo-price-options{grid-template-columns:1fr}.photo-final-inner{align-items:flex-start;flex-direction:column}.photo-drone-visual{width:min(100%,340px);margin-inline:0}
}
@media(max-width:640px){
  .photo-hero-grid{gap:2.7rem}.photo-hero-actions{align-items:flex-start;flex-direction:column}.photo-contact-sheet{min-height:0;grid-template-columns:1fr;grid-template-rows:auto;transform:none}.photo-frame{min-height:220px}.photo-frame-people{grid-row:auto}.photo-use-rail{grid-template-columns:repeat(4,minmax(235px,1fr));overflow-y:hidden;overscroll-behavior-inline:contain;scroll-snap-type:x mandatory}.photo-use-rail article{scroll-snap-align:start;scroll-snap-stop:always}.photo-price-options article{min-height:280px}.photo-plan-list li{grid-template-columns:1fr}.photo-drone-visual{width:min(100%,280px);margin-inline:auto}
}
@media(prefers-reduced-motion:reduce){.photo-drone-visual img{animation:none}.photo-frame img{transition:none}}
